From 600ca77d9092ecae0e2a13685c49b99b41a901b7 Mon Sep 17 00:00:00 2001 From: xupei Date: Mon, 2 Dec 2024 18:20:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BF=BB=E8=AF=91=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BD=BF=E7=94=A8llama3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit bc9aa034458be245ad7cc8d7be6258da14e83e60) --- .../chatgpt_for_translation.py | 75 +++++++++---------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/app/service/prompt_generation/chatgpt_for_translation.py b/app/service/prompt_generation/chatgpt_for_translation.py index e541781..05d85fb 100644 --- a/app/service/prompt_generation/chatgpt_for_translation.py +++ b/app/service/prompt_generation/chatgpt_for_translation.py @@ -1,6 +1,5 @@ import json -import logging -import time + import requests from dashscope import Generation @@ -9,8 +8,6 @@ from retry import retry from app.core.config import QWEN_API_KEY -logger = logging.getLogger(__name__) - # os.environ["http_proxy"] = "http://127.0.0.1:7890" # os.environ["https_proxy"] = "http://127.0.0.1:7890" @@ -20,35 +17,35 @@ logger = logging.getLogger(__name__) # openai_api_key=OPENAI_API_KEY, # temperature=0) -# prefix_for_llama = ( -# """ -# Translate everything within the brackets [] into English. -# Never translate or modify any English input. -# The input must be fully translated into coherent English sentences. -# Please only output the translated result.\n -# """ -# ) +prefix_for_llama = ( + """ + Translate everything within the brackets [] into English. + Never translate or modify any English input. + The input must be fully translated into coherent English sentences. + Please only output the translated result.\n + """ + ) def translate_to_en(text): - # template = ( - # """You are a translation expert, proficient in various languages. - # And can translate various languages into English. - # Please translate to grammatically correct English regardless of the input language. - # If the input is already in English, or consists of letters or numbers such as "cat", "abc", or "1", - # output the input text exactly as it is without any modifications or additions. - # If there are grammatical errors, correct them and then output the sentence.""" - # ) - # - # prefix = ( - # """ - # Translate everything within the brackets [] into English. - # Never translate or modify any English input. - # The input must be fully translated into coherent English sentences. - # Never present the translation results in the format - # "The translation of \"Material suave\" into English would be \"Smooth material.\"". Instead, directly output "Smooth material". - # """ - # ) + template = ( + """You are a translation expert, proficient in various languages. + And can translate various languages into English. + Please translate to grammatically correct English regardless of the input language. + If the input is already in English, or consists of letters or numbers such as "cat", "abc", or "1", + output the input text exactly as it is without any modifications or additions. + If there are grammatical errors, correct them and then output the sentence.""" + ) + + prefix = ( + """ + Translate everything within the brackets [] into English. + Never translate or modify any English input. + The input must be fully translated into coherent English sentences. + Never present the translation results in the format + "The translation of \"Material suave\" into English would be \"Smooth material.\"". Instead, directly output "Smooth material". + """ + ) messages = [ # { # Translate the entire text and ensure the output is a complete and coherent sentence in English. @@ -57,7 +54,7 @@ def translate_to_en(text): # }, { # "content": input('请输入:'), # 用户message - "content": text, # 用户message + "content": prefix + text, # 用户message "role": "user" } ] @@ -77,7 +74,7 @@ def translate_to_en(text): def get_response(messages): response = Generation.call( model='qwen-turbo', - api_key=QWEN_API_KEY, + api_key= QWEN_API_KEY, messages=messages, # seed=random.randint(1, 10000), # 设置随机数种子seed,如果没有设置,则随机数种子默认为1234 result_format='message', # 将输出设置为message形式 @@ -87,39 +84,37 @@ def get_response(messages): def get_translation_from_llama3(text): - start_time = time.time() - url = "http://10.1.1.240:11434/api/generate" + url = "http://localhost:11434/api/generate" # url = "http://10.1.1.240:1143/api/generate" - # prompt = f"System: {prefix_for_llama}\nUser:[{text}]" + prompt = f"System: {prefix_for_llama}\nUser:[{text}]" # 创建请求的负载 payload = { - "model": "translator", - "prompt": f"[{text}]", + "model": "llama3.2", + "prompt": prompt, "stream": False } # 将负载转换为 JSON 格式 headers = {'Content-Type': 'application/json'} response = requests.post(url, data=json.dumps(payload), headers=headers) + # 处理响应 if response.status_code == 200: # print("Response from server:") # print(response.json()) resp = json.loads(response.content).get("response") - logger.info(f"translation server runtime is {time.time() - start_time} , response is {resp}") print("input : {}, translate result : {}".format(text, resp)) return resp else: - logger.info(f"translation server runtime is {time.time() - start_time} , response is {response.content}") print(f"Request failed with status code {response.status_code}") print(response.text) def main(): """Main function""" - text = get_translation_from_llama3("[火焰]") + text = translate_to_en("fire") print(text)