赞
踩
昨天我们用了40行代码搭建出了智能问答小客服,已经清晰LangChain的结构了,今天我们来尝试用25行代码实现出一个简易聊天机器人。希望通过这个例子能帮助大家更加理解LangChain。
组件一览:
组件 | 类型 | 子类型 |
HumanMessage | 索引组件 | 文本加载器 |
LLMChain | 链组件 | 对话链 |
ChatOpenAI | 模型组件 | LLM |
ConversationBufferMemory | 索引组件 | 储存 |
- pip install langchain
- pip install openai
- import os
- import openai os.environ["OPENAI_API_KEY"] = 'your_openai_key'
- os.environ['OPENAI_API_BASE'] = ''
- from langchain.llms import OpenAI
- from langchain.memory import ConversationBufferMemory
- from langchain.prompts import ChatPromptTemplate,MessagesPlaceholder,SystemMessagePromptTemplate,HumanMessagePromptTemplate
- from langchain.chains import LLMChain
- from langchain.schema import AIMessage,HumanMessage,SystemMessage
- from langchain.chat_models import ChatOpenAI
- chat = ChatOpenAI()
- chat([HumanMessage(content="Translate this sentence from English to French: I love programming.")])
创建对话内存实例,添加用户消息和AI消息
- memory = ConversationBufferMemory()
- memory.chat_memory.add_user_message("hi!")
- memory.chat_memory.add_ai_message("whats up?")
调用ChatOpenAI作为LLM。
llm = ChatOpenAI()
使用ChatPromptTemplate创建一个名为prompt的聊天提示,其中包含系统消息、消息占位符和人类消息。
- 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}")])
- memory = ConversationBufferMemory(memory_key="chat_history",return_messages=True)
- 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变量中,使用不同的问题进行对话。
- response = conversation({"question": "hi"})
- response = conversation({"question": "Translate this sentence from English to French: I love programming."})
- response = conversation({"question": "Now translate the sentence to German."})
以上就是我在配置并使用LangChian实现一个简易聊天机器人分享,希望可以帮到各位!欢迎关注或发私信与我共同讨论更多大模型领域知识~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。