LangChain入门:4.调用OpenAI的聊天机器人-提示模板

本次目的是编写一个简单的聊天机器人,该聊天机器人可以使用OpenAI的聊天机器人模型进行交互。在这个学习中,我们将创建了一个简单的聊天模板,用户可以输入任何文本,聊天机器人会根据预定义的提示消息模板生成回复,通过提示模板来指导聊天机器人的响应。提示模板用于将原始用户输入转换为更好的 LLM 输入。

效果对比:

我们先来直观感受使用提示模版和没有提示模版的回复内容

  1. 没有提示模版

content=‘当我们违反交通规则时,不仅会影响自己的安全,也会危害到他人的生命。例如,闯红灯可能导致交通事故,不系安全带可能造成受伤,超速行驶可能引发交通事故等等。遵守交通规则是保护自己和他人安全的重要举措,希望你能意识到这些危害,遵守交通规则,保护自己和他人的生命。’ response_metadata={‘token_usage’: {‘completion_tokens’: 153, ‘prompt_tokens’: 49, ‘total_tokens’: 202}, ‘model_name’: ‘gpt-3.5-turbo’, ‘system_fingerprint’: ‘fp_3bc1b5746c’, ‘finish_reason’: ‘stop’, ‘logprobs’: None}

  1. 使用了提示模版

content=‘小朋友,违反交通规则是非常危险的行为,可能会给自己和他人带来严重的危害。比如,闯红灯会导致交通事故发生,不仅会受伤,还可能造成其他人的伤亡。不遵守交通信号灯和交通标志也会导致交通混乱,给道路上的其他车辆和行人带来危险。\n\n此外,酒驾、超速和不系安全带等行为也会增加发生交通事故的风险,给自己和他人的生命安全造成严重威胁。所以,我们一定要遵守交通规则,保护自己和他人的安全,让道路变得更加安全和有序。希望你能认真听从交通规则,不要做危险的事情。’ response_metadata={‘token_usage’: {‘completion_tokens’: 265, ‘prompt_tokens’: 30, ‘total_tokens’: 295}, ‘model_name’: ‘gpt-3.5-turbo’, ‘system_fingerprint’: ‘fp_3bc1b5746c’, ‘finish_reason’: ‘stop’, ‘logprobs’: None}

从上面的结果对比,还是能够看出当我们使用了提示模版之后,回答的的时候,机器人会有角色身份,会根据当前的身份角色回答更为符合场景的话语。

代码内容

#首先,从langchain_openai库中导入ChatOpenAI类,该类负责与OpenAI的聊天机器人进行交互。
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

#创建一个ChatOpenAI对象llm,传入所需的API密钥、基础URL和预训练的聊天机器人模型(在本例中为gpt-3.5-turbo)。
llm = ChatOpenAI(
    openai_api_key='替换为你的API密钥', 
    base_url='https://api.chatanywhere.tech/v1',
    model='gpt-3.5-turbo',
)

#创建一个ChatPromptTemplate对象prompt_template,从用户输入和系统回复中构建一个提示消息。本例中,我们使用了一个预定义的提示消息模板,该模板包含用户和系统的消息。
prompt_template = ChatPromptTemplate.from_messages([
    ("system", "你是一个很出色的交通警察."),
    ("user", "{input}")
])

#使用|操作符将prompt_template和llm连接在一起,创建一个chain对象。
chain =prompt_template | llm

#使用invoke方法调用chain对象,传入用户的输入,并获取响应。
response = chain.invoke(input="请你给违反交通规则的小朋友讲解危害!")

print(response)

注意事项:

  1. 请确保已安装langchain_openai和langchain_core库。如果尚未安装,请使用以下命令安装:
pip install langchain_openai
pip install langchain_core
  1. 请将openai_api_key替换为你的OpenAI API密钥。如果没有,请在这里获取
  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hugo_Hoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值