logo

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

2024-08-05

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

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

你有过类似的想法吗?

在当今的数字环境中,充当虚拟助手和对话伙伴的聊天机器人越来越普遍。然而,一个关键的挑战在于设计能够以上下文感知的方式理解和响应用户查询的聊天机器人,模拟自然的对话流程。

开源框架 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圈求职,扫描上方二维码

 即可加入匠人学院求职群!


近期开课hot

Mooc系统项目实战课01期

start2025/07/14 08:25 (Sydney)

AI Agent & MCP 项目实战营

start2025/07/19 09:00 (Sydney)

AI for Data Analyst

start2025/07/19 09:00 (Sydney)

logo

Follow Us

linkedinfacebooktwitterinstagramweiboyoutubebilibilitiktokxigua

We Accept

/image/layout/pay-paypal.png/image/layout/pay-visa.png/image/layout/pay-master-card.png/image/layout/pay-airwallex.png/image/layout/pay-alipay.png

地址

Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)
Level 2, 171 La Trobe St, Melbourne VIC 3000
四川省成都市武侯区桂溪街道天府大道中段500号D5东方希望天祥广场B座45A13号
Business Hub, 155 Waymouth St, Adelaide SA 5000

Disclaimer

footer-disclaimerfooter-disclaimer

JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.

匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。 JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议

© 2017-2025 JR Academy Pty Ltd. All rights reserved.

ABN 26621887572