1.设置提示
python
from langchain.prompts import ChatPromptTemplate
prompt_template = ChatPromptTemplate.from_messages(
[
("system", "你是一位专业的翻译,能够将{input_language}翻译成{output_language},并且输出文本会根据用户要求的任何语言风格进行调整。请只输出翻译后的文本,不要有任何其它内容。"),
("human", "文本:{text}\n语言风格:{style}"),
]
)
2.输出提示模板
python
prompt_template.input_variables
['input_language', 'output_language', 'style', 'text']
3.提示中输入值
python
prompt_value = prompt_template.invoke({"input_language": "英语", "output_language": "汉语",
"text":"I'm so hungry I could eat a horse", "style": "文言文"})
prompt_value
ChatPromptValue(messages=[SystemMessage(content='你是一位专业的翻译,能够将英语翻译成汉语,并且输出文本会根据用户要求的任何语言风格进行调整。请只输出翻译后的文本,不要有任何其它内容。'), HumanMessage(content="文本:I'm so hungry I could eat a horse\n语言风格:文言文")])
4.取出提示
python
prompt_value.messages
[SystemMessage(content='你是一位专业的翻译,能够将英语翻译成汉语,并且输出文本会根据用户要求的任何语言风格进行调整。请只输出翻译后的文本,不要有任何其它内容。'),
HumanMessage(content="文本:I'm so hungry I could eat a horse\n语言风格:文言文")]
5.输入模型
python
model = ChatOpenAI(model="gpt-3.5-turbo",base_url="https://api.chatanywhere.tech/v1")
response = model.invoke(prompt_value)
6.获得结果
python
response
AIMessage(content='吾今飢極,如欲食馬也。', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 17, 'prompt_tokens': 109, 'total_tokens': 126, 'completion_tokens_details': {'reasoning_tokens': 0}}, 'model_name': 'gpt-3.5-turbo-0125', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None}, id='run-9d752bd9-468e-4fe1-9ff9-e379561c957b-0', usage_metadata={'input_tokens': 109, 'output_tokens': 17, 'total_tokens': 126})
7.取出结果
python
response.content
'吾今飢極,如欲食馬也。'
8.多行示例
python
input_variables = [
{
"input_language": "英语",
"output_language": "汉语",
"text": "I'm so hungry I could eat a horse",
"style": "文言文"
},
{
"input_language": "法语",
"output_language": "英语",
"text": "Je suis désolé pour ce que tu as fait",
"style": "古英语"
},
{
"input_language": "俄语",
"output_language": "意大利语",
"text": "Сегодня отличная погода",
"style": "网络用语"
},
{
"input_language": "韩语",
"output_language": "日语",
"text": "너 정말 짜증나",
"style": "口语"
}
]
10.输入模型
python
for input in input_variables:
response = model.invoke(prompt_template.invoke({"input_language": input["input_language"], "output_language": input["output_language"],
"text":input["text"], "style": input["style"]}))
print(response.content)
输出:
吾今饥饱难忍,实有食马之心也。
I am sorry for what thou hast done.
Oggi tempo fantastico
お前本当にイライラするな