2024-06-28 13:59:53 +08:00
|
|
|
|
import logging
|
2024-05-29 11:12:59 +08:00
|
|
|
|
|
2024-07-08 18:50:01 +08:00
|
|
|
|
from dashscope import Generation
|
2024-07-22 15:54:11 +08:00
|
|
|
|
from requests import RequestException
|
|
|
|
|
|
from retry import retry
|
|
|
|
|
|
|
|
|
|
|
|
from app.core.config import QWEN_API_KEY
|
2024-05-29 11:12:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# os.environ["http_proxy"] = "http://127.0.0.1:7890"
|
|
|
|
|
|
# os.environ["https_proxy"] = "http://127.0.0.1:7890"
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-08 18:50:01 +08:00
|
|
|
|
# llm = ChatOpenAI(model_name=OPENAI_MODEL,
|
|
|
|
|
|
# openai_api_key=OPENAI_API_KEY,
|
|
|
|
|
|
# temperature=0)
|
2024-05-29 11:12:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
2024-06-28 13:59:53 +08:00
|
|
|
|
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.
|
2024-05-29 11:12:59 +08:00
|
|
|
|
If there are grammatical errors, correct them and then output the sentence."""
|
|
|
|
|
|
)
|
2024-07-23 17:44:56 +08:00
|
|
|
|
|
|
|
|
|
|
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".
|
|
|
|
|
|
"""
|
|
|
|
|
|
)
|
2024-07-08 18:50:01 +08:00
|
|
|
|
messages = [
|
2024-07-23 17:44:56 +08:00
|
|
|
|
# {
|
|
|
|
|
|
# Translate the entire text and ensure the output is a complete and coherent sentence in English.
|
|
|
|
|
|
# "content": template, # 系统message
|
|
|
|
|
|
# "role": "system"
|
|
|
|
|
|
# },
|
2024-07-08 18:50:01 +08:00
|
|
|
|
{
|
|
|
|
|
|
# "content": input('请输入:'), # 用户message
|
2024-07-23 17:44:56 +08:00
|
|
|
|
"content": prefix + text, # 用户message
|
2024-07-08 18:50:01 +08:00
|
|
|
|
"role": "user"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
first_response = get_response(messages)
|
|
|
|
|
|
assistant_output = first_response.output.choices[0].message
|
2024-07-23 17:44:56 +08:00
|
|
|
|
print("input : {}, translate result : {}".format(text, assistant_output.content))
|
2024-07-08 18:50:01 +08:00
|
|
|
|
return assistant_output.content
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-22 15:54:11 +08:00
|
|
|
|
@retry(exceptions=RequestException, tries=3, delay=1)
|
2024-07-08 18:50:01 +08:00
|
|
|
|
def get_response(messages):
|
|
|
|
|
|
response = Generation.call(
|
2024-07-23 17:44:56 +08:00
|
|
|
|
model='qwen-turbo',
|
2024-07-22 15:54:11 +08:00
|
|
|
|
api_key= QWEN_API_KEY,
|
2024-07-08 18:50:01 +08:00
|
|
|
|
messages=messages,
|
|
|
|
|
|
# seed=random.randint(1, 10000), # 设置随机数种子seed,如果没有设置,则随机数种子默认为1234
|
|
|
|
|
|
result_format='message', # 将输出设置为message形式
|
|
|
|
|
|
enable_search='True'
|
2024-05-29 11:12:59 +08:00
|
|
|
|
)
|
2024-07-08 18:50:01 +08:00
|
|
|
|
return response
|
2024-05-29 11:12:59 +08:00
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
|
|
"""Main function"""
|
2024-06-28 13:59:53 +08:00
|
|
|
|
text = translate_to_en("fire")
|
|
|
|
|
|
print(text)
|
2024-05-29 11:12:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
main()
|