LangChain使用Prompt02

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

お前本当にイライラするな

相关推荐
Shell运维手记6 小时前
Shell 脚本入门课堂讲解
前端·chrome
Profile排查笔记6 小时前
有哪些开源指纹浏览器项目?先核对客户端、内核与许可证
前端·人工智能·后端·自动化
CodeGL6 小时前
16、Python Web开发
开发语言·前端·python
FRing036 小时前
JavaScript入门到精通二十九(内置构造函数(Object、Array))
开发语言·前端·javascript
AAA程序技术6 小时前
从 DOM 到屏幕:浏览器渲染管线六步拆解
前端·浏览器
zach6 小时前
useContext 深入讲解:组件透传、原理与最佳实践
前端
张一凡936 小时前
AI 改完代码,人却不知道它改了什么:架构漂移才是真正的成本
前端·后端·agent
sycmancia6 小时前
Qml——Text元素
java·前端·html
DevChronosands_6 小时前
浅谈感受之 React 与 Vue 😒
前端
代码猎人6 小时前
前端怎么掌握模块化
前端