""" Install the Google AI Python SDK $ pip install google-generativeai """ import os import google.generativeai as genai from dotenv import load_dotenv load_dotenv() api_key = os.getenv('GEMINI_API_KEY') genai.configure(api_key=api_key) # Create the model generation_config = { "temperature": 0, "top_p": 0.95, "top_k": 64, "max_output_tokens": 8192, "response_mime_type": "text/plain", } model = genai.GenerativeModel( model_name="gemini-1.5-pro-exp-0827", generation_config=generation_config, # safety_settings = Adjust safety settings # See https://ai.google.dev/gemini-api/docs/safety-settings ) def call_api(text): chat_session = model.start_chat( history=[ { "role": "user", "parts": [ "# Prompt:\n\"You are an expert in Vietnamese language normalization, specializing in transforming informal, professional, and complex text into clear, well-structured Vietnamese. Your task is to normalize a list of Vietnamese sentences to ensure they are grammatically correct, accurately convey the intended meaning, and are consistent with the writing conventions of formal Vietnamese.\n\n# Rules:\nI will give you a list of sentences to normalize.\nYour task is to transform the sentences into their most formal and correct form while maintaining the original meaning. This includes handling numbers, dates, measurements, abbreviations, names, and any polysemic words appropriately.\nEnsure that numbers (including decimals, fractions), time, currency, and units are expressed in full written form.\nIf there are informal expressions, rewrite them into formal, clear language.\nMaintain proper noun names, abbreviations, or technical terms as is when necessary.\nAbsolutely do not change the original content or remove any part of the text.\nDo not add any new words unless they are necessary for the process of normalization. Only add words if they are essential for formalizing or clarifying the original text (e.g., converting abbreviations or numeric forms into written language).\nFor words that have become commonly used in Vietnamese, such as \"nét\" (referring to \"internet\"), keep them as they are in the original text. Do not attempt to translate these words into their English equivalents. Focus on maintaining the natural usage of these words in the context of the sentence.\nFor all instances where numbers are used (e.g., U17, COVID-19, F12,G9), convert the numbers to their full written form in Vietnamese. For example, convert \"U17\" to \"U mười bảy\", \"COVID-19\" to \"COVID mười chín\", \"F12\" to \"F mười hai.\", \"G9\" to \"G chín\".\nFor sentences that do not require any normalization, keep them exactly as they are. Do not make any changes to such sentences.\nAvoid unnecessary rephrasing unless absolutely required to maintain clarity and fluency.\nReply with the normalized sentences only, without any explanation.\nIf a sentence is very complex or informal, aim to restructure it for maximum clarity and readability.\nAlways prioritize accuracy and fluency in your normalization.\"\n# Example\n- Input1:\n[\n \"TS Nguyễn Văn A mua 5kg gạo với giá 12.500 VND/kg từ 8h30 đến 10h30 ngày 12/03/2023. SĐT: 0909 123 456.\",\n \"Chị H thuê 3 căn hộ, mỗi căn rộng 120m2 với giá 8.000.000 VND/tháng từ tháng 01 đến tháng 03.\",\n \"V. là giai đoạn 2/3 của dự án với chi phí 1.500.000 VND và thời gian thực hiện từ 09:00 đến 17:00.\"\n]\n\n- Output1:\n[\n \"Tiến sĩ Nguyễn Văn A mua năm kilogram gạo với giá mười hai nghìn năm trăm đồng một kilogram từ tám giờ ba mươi phút đến mười giờ ba mươi phút ngày mười hai tháng ba năm hai nghìn không trăm hai mươi ba. Số điện thoại: không chín không chín một hai ba bốn năm sáu.\",\n \"Chị H thuê ba căn hộ, mỗi căn rộng một trăm hai mươi mét vuông với giá tám triệu đồng một tháng từ tháng một đến tháng ba.\",\n \"Năm là giai đoạn hai phần ba của dự án với chi phí một triệu năm trăm nghìn đồng và thời gian thực hiện từ chín giờ đến mười bảy giờ.\"\n]\n- Input 2:\n[\n \"Anh T dùng 1/4 giờ để chạy quãng đường 5km với vận tốc 20,25 km/h. Chi phí là 100.000 VND.\",\n \"Cô B đã hoàn thành cuộc thi trong 1/3 thời gian dự kiến và giành vị trí thứ 2. ROMAN III là đối thủ xếp sau.\",\n \"Số tiền 2.000.000 VND đã được gửi vào tài khoản lúc 15:45.\"\n]\n- Output2:\n[\n \"Anh T dùng một phần tư giờ để chạy quãng đường năm kilomet với vận tốc hai mươi phẩy hai lăm kilomet một giờ. Chi phí là một trăm nghìn đồng.\",\n \"Cô B đã hoàn thành cuộc thi trong một phần ba thời gian dự kiến và giành vị trí thứ hai. Ba theo La Mã là đối thủ xếp sau.\",\n \"Số tiền hai triệu đồng đã được gửi vào tài khoản lúc mười lăm giờ bốn mươi lăm phút.\"\n]\n- Input3:\n[\n\"Anh ấy dành 2 tiếng để lướt nét mỗi ngày.\",\n\"Cô ấy thường xuyên đăng ảnh lên phây.\",\n\"Họ gu gồ thông tin về chuyến du lịch sắp tới.\"\n]\n- Output3:\n[\n\"Anh ấy dành hai tiếng để lướt nét mỗi ngày.\",\n\"Cô ấy thường xuyên đăng ảnh lên phây.\",\n\"Họ gu gồ thông tin về chuyến du lịch sắp tới.\"\n]\n- Input 4 :\n[\"với những thông tin trên mà tài chính kinh doanh chia sẻ, hy vọng các bạn sinh viên sẽ tìm được một công việc phù hợp để kiếm thêm thu nhập nhé.\"]\n- Output 4:\n[\"với những thông tin trên mà tài chính kinh doanh chia sẻ, hy vọng các bạn sinh viên sẽ tìm được một công việc phù hợp để kiếm thêm thu nhập nhé.\"]\n- Input 5 :\n[\"Tuy nhiên, bạn cần chú ý đến mặt cạnh tranh và khả năng quảng cáo, marketing đặc biệt để tối ưu hóa khả năng kinh doanh.\",\"đầu tiên, bạn có thể xây dựng chuồng trại, nuôi các loại da súc, da cầm, sau đó có thể tận dụng chất thải từ chăn nuôi làm phân bón cho các loại cây.\" , \"Tuy nhiên, nếu mua con giống sinh sản, thiết nghĩ quý vị và các bạn nên chọn vùng đất dễ xây dựng chuồng vì giống dê này nhân đàn rất nhanh.\"]\n- Output 5 :\n[\"Tuy nhiên, bạn cần chú ý đến mặt cạnh tranh và khả năng quảng cáo, marketing đặc biệt để tối ưu hóa khả năng kinh doanh.\",\"đầu tiên, bạn có thể xây dựng chuồng trại, nuôi các loại da súc, da cầm, sau đó có thể tận dụng chất thải từ chăn nuôi làm phân bón cho các loại cây.\" , \"Tuy nhiên, nếu mua con giống sinh sản, thiết nghĩ quý vị và các bạn nên chọn vùng đất dễ xây dựng chuồng vì giống dê này nhân đàn rất nhanh.\"]\n- input 6 :\n[\"Trong khu chuồng nuôi, bà con cần chia thành ô chuồng nhỏ với diện tích từ 10 đến 20 m2, thường là vách ngăn được xây bằng gạch hoặc cắt thành gỗ kép lại.\"]\n- output 6 :\n[\"Trong khu chuồng nuôi, bà con cần chia thành ô chuồng nhỏ với diện tích từ mười đến hai mươi mét vuông, thường là vách ngăn được xây bằng gạch hoặc cắt thành gỗ kép lại.\"]\n- input 7 : \n['Nguyên Phong, Ninh Thuận, U17 Khánh Hòa, Star Kids, hay các trang truyền lửa cho bóng đá trên mạng xã hội.','Trên cánh đồng ngô nếp ở thôn 1, xã Tường Sơn, ngay từ sáng sớm người dân đã nhộn nhịp ra đồng thu hoạch để bán cho thương lái.', 'Tuy nhiên, trong giai đoạn dịch COVID-19 bùng phát, câu chuyện kêu gọi giải cứu thanh long đỏ gây sốt giới truyền thông cả trong và ngoài nước.',\"top 4 người tôi luôn tin tưởng nhất\"]\n- output 7 :\n['Nguyên Phong, Ninh Thuận, U mười bảy Khánh Hòa, Star Kids, hay các trang truyền lửa cho bóng đá trên mạng xã hội.', Trên cánh đồng ngô nếp ở thôn một, xã Tường Sơn, ngay từ sáng sớm người dân đã nhộn nhịp ra đồng thu hoạch để bán cho thương lái.','Tuy nhiên, trong giai đoạn dịch COVID mười chín bùng phát, câu chuyện kêu gọi giải cứu thanh long đỏ gây sốt giới truyền thông cả trong và ngoài nước.',\"top bốn người tôi luôn tin tưởng nhất\"]\n", ], }, { "role": "model", "parts": [ "- Output 7 :\n['Nguyên Phong, Ninh Thuận, U mười bảy Khánh Hòa, Star Kids, hay các trang truyền lửa cho bóng đá trên mạng xã hội.', 'Trên cánh đồng ngô nếp ở thôn một, xã Tường Sơn, ngay từ sáng sớm người dân đã nhộn nhịp ra đồng thu hoạch để bán cho thương lái.', 'Tuy nhiên, trong giai đoạn dịch COVID mười chín bùng phát, câu chuyện kêu gọi giải cứu thanh long đỏ gây sốt giới truyền thông cả trong và ngoài nước.', 'top bốn người tôi luôn tin tưởng nhất']", ], }, ] ) response = chat_session.send_message(text) print(response.text) return eval(response.text)