1.引入提示模板
python
from langchain.prompts import (
SystemMessagePromptTemplate,
AIMessagePromptTemplate,
HumanMessagePromptTemplate,
)
2.设置系统提示
python
system_template_text="你是一位专业的翻译,能够将{input_language}翻译成{output_language},并且输出文本会根据用户要求的任何语言风格进行调整。请只输出翻译后的文本,不要有任何其它内容。"
system_prompt_template = SystemMessagePromptTemplate.from_template(system_template_text)
3.输出系统提示
python
system_prompt_template
SystemMessagePromptTemplate(prompt=PromptTemplate(input_variables=['input_language', 'output_language'], template='你是一位专业的翻译,能够将{input_language}翻译成{output_language},并且输出文本会根据用户要求的任何语言风格进行调整。请只输出翻译后的文本,不要有任何其它内容。'))
4.输出系统提示参数值
python
system_prompt_template.input_variables
输出:['input_language', 'output_language']
5.设置用户提示
python
human_template_text="文本:{text}\n语言风格:{style}"
human_prompt_template = HumanMessagePromptTemplate.from_template(human_template_text)
6.输出用户提示
python
human_prompt_template.input_variables
输出:['style', 'text']
7.为系统提示输入值并输出
python
system_prompt = system_prompt_template.format(input_language="英语", output_language="汉语")
system_prompt
输出:SystemMessage(content='你是一位专业的翻译,能够将英语翻译成汉语,并且输出文本会根据用户要求的任何语言风格进行调整。请只输出翻译后的文本,不要有任何其它内容。')
8.为用户提示设置值并输出
python
human_prompt = human_prompt_template.format(text="I'm so hungry I could eat a horse", style="文言文")
human_prompt
输出:HumanMessage(content="文本:I'm so hungry I could eat a horse\n语言风格:文言文")
9.将提示输入模型
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-3.5-turbo",base_url="https://api.chatanywhere.tech/v1")
response = model.invoke([
system_prompt,
human_prompt
])
10.输出结果
python
print(response.content)
输出:吾今飢甚,可食馬矣。
11.多个示例输入
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": "口语"
}
]
12.输出
python
for input in input_variables:
response = model.invoke([
system_prompt_template.format(input_language=input["input_language"], output_language=input["output_language"]),
human_prompt_template.format(text=input["text"], style=input["style"])])
print(response.content)
输出:
吾今飢甚,可食馬也。
I am sorry for what thou hast done
Oggi il tempo è fantastico.
お前、マジでイライラするな。