写代码能写出一个专属于我的聊天机器人吗......

教育   2024-08-02 17:00   法国  

“我想拥有一个专属于我的聊天机器人,

它能懂得我说的话,接收我的情绪,陪伴着我......”

你有过类似的想法吗?
在当今的数字环境中,充当虚拟助手和对话伙伴的聊天机器人越来越普遍。然而,一个关键的挑战在于设计能够以上下文感知的方式理解和响应用户查询的聊天机器人,模拟自然的对话流程。
开源框架 Langchain 凭借其创新的聊天模型在人机交互方面迈出了革命性的一步。这款强大的工具改变了我们与 ChatGPT 等大型语言模型 (LLM) 交互的方式,使它们能够在流畅的对话中进行理解和响应。

情境感知聊天机器人
🤔该怎么使用 LangChain 和类似聊天模型的LLM
 创建上下文感知聊天机器人呢?

传统的聊天机器人经常难以理解上下文,导致重复或不相关的回复。接下来介绍的这种方法通过构建一个记住过去互动并能调整其回复的聊天机器人来解决此问题。

代码分解

⬇️⬇️⬇️

1.Imports:
   Python

  • streamlit:创建一个用户友好的网络应用程序界面

  • langchain_openai:通过 LangChain 实现与 ChatGPT 的交互

  • langchain_core.messages:提供用于构建对话历史记录的消息对象类


2. Streamlit Configuration:

Python

  • 此部分设置 Web 应用程序的标题、图标和布局

  • 标题为聊天机器人界面创建了一个标题



3. Session State Initialization:

Python

  • 此代码检查 Streamlit 会话状态中是否存在“sessionMessages”键
  • 如果没有,它会初始化一个空列表来存储对话消息
  • 然后它添加来自聊天机器人的开始消息


4. load_answer Function:

Python

  • 该函数将用户问题作为输入

  • 它将问题作为 HumanMessage 对象添加到消息历史记录中

  • 然后它调用chat函数(稍后定义)来处理带有上下文的问题

  • 该函数从响应对象中提取答案内容并返回

  • 最后,它将聊天机器人的响应作为 AIMessage 对象添加到消息历史记录中




5. get_text Function:

Python


  • 此功能创建一个文本输入字段,供用户输入他们的问题。

  • 它设置一个占位符文本“You: ”和一个输入元素的唯一键。

  • 然后该函数返回用户输入的文本



6. ChatOpenAI Initialization:

Python

  • 此行ChatOpenAI从 LangChain 创建一个实例以与 ChatGPT 进行交互

  • 用您的实际 ChatGPT API 密钥替换“API_KEY”

  • temperature设置为 0,以获得更加真实和可控的响应方式


7. User Input:

Python

  • 此行调用get_text函数来检索用户的问题

8. Generate Button:

Python

  • 此代码创建一个标有“生成”的按钮

  • 单击按钮将触发条件语句

  • 如果用户输入了一些文本,它会调用该load_answer函数来处理它

  • 然后,ChatGPT 的回复将显示在“答案”子标题下

  • 如果用户单击按钮时输入的内容为空,则会出现警告消息



9. Conversation History:

Python

  • 此部分显示对话历史记录

  • 它遍历会话中的消息列表

🧑‍💻学会了吗?

以上就是今天的IT资讯分享

想了解更多关于澳洲IT圈的最新消息欢迎扫码进群~

    澳洲IT圈求职,扫描上方二维码
 即可加入匠人学院求职群!

澳洲IT圈
澳洲IT圈为广大澳洲IT以及关心澳洲的朋友们提供专业的工作内推、工作机会,拥有澳洲领先的IT社群,超过10000的成员
 最新文章