当前位置:   article > 正文

用LangChian实现一个简易聊天机器人仅需25行代码?_langchat

langchat

昨天我们用了40行代码搭建出了智能问答小客服,已经清晰LangChain的结构了,今天我们来尝试用25行代码实现出一个简易聊天机器人。希望通过这个例子能帮助大家更加理解LangChain。

框架设计

 

组件一览:

组件类型子类型
HumanMessage索引组件文本加载器
LLMChain链组件对话链
ChatOpenAI模型组件LLM
ConversationBufferMemory索引组件储存

准备工作

安装依赖

  1. pip install langchain
  2. pip install openai

设置密钥

  1. import os
  2. import openai os.environ["OPENAI_API_KEY"] = 'your_openai_key'
  3. os.environ['OPENAI_API_BASE'] = ''

导入库

  1. from langchain.llms import OpenAI
  2. from langchain.memory import ConversationBufferMemory
  3. from langchain.prompts import ChatPromptTemplate,MessagesPlaceholder,SystemMessagePromptTemplate,HumanMessagePromptTemplate
  4. from langchain.chains import LLMChain
  5. from langchain.schema import AIMessage,HumanMessage,SystemMessage
  6. from langchain.chat_models import ChatOpenAI

开始编码

ChatOpenAI响应信息

  1. chat = ChatOpenAI()
  2. chat([HumanMessage(content="Translate this sentence from English to French: I love programming.")])

记忆

创建对话内存实例,添加用户消息和AI消息

  1. memory = ConversationBufferMemory()
  2. memory.chat_memory.add_user_message("hi!")
  3. memory.chat_memory.add_ai_message("whats up?")

对话

调用ChatOpenAI作为LLM。

llm = ChatOpenAI()

使用ChatPromptTemplate创建一个名为prompt的聊天提示,其中包含系统消息、消息占位符和人类消息。

  1. prompt = ChatPromptTemplate(messages=[SystemMessagePromptTemplate.from_template("You are a nice chatbot having a conversation with a human."),MessagesPlaceholder(variable_name="chat_history"),HumanMessagePromptTemplate.from_template("{question}")])
  2. memory = ConversationBufferMemory(memory_key="chat_history",return_messages=True)
  3. conversation = LLMChain(llm=llm,prompt=prompt,verbose=True,memory=memory)

ConversationBufferMemory是一个对话内存的类,用于存储和管理对话的历史记录。通过设置memory_key参数,可以指定对话内存的键值,以便在后续的代码中引用。设置return_messages参数为True,表示在对话内存中存储的消息将被返回,以便在后续的代码中使用。

LLMChain是一个对话链的类,用于构建和管理聊天机器人的对话流程。通过设置llm参数为llm,prompt参数为prompt,verbose参数为True,memory参数为memory,可以创建一个具有指定参数的对话链实例。这个对话链实例将用于后续的对话交互,包括向聊天机器人提问并获取响应。

运行

使用conversation向LLMChain实例传递一个包含问题的字典,然后将返回的响应存储在response变量中,使用不同的问题进行对话。

  1. response = conversation({"question": "hi"})
  2. response = conversation({"question": "Translate this sentence from English to French: I love programming."})
  3. response = conversation({"question": "Now translate the sentence to German."})

执行结果演示

 

 

完整代码(点击即可进入)

小结

以上就是我在配置并使用LangChian实现一个简易聊天机器人分享,希望可以帮到各位!欢迎关注或发私信与我共同讨论更多大模型领域知识~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/129718
推荐阅读
相关标签
  

闽ICP备14008679号