首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >LangChain聊天机器人教程

LangChain聊天机器人教程

作者头像
@小森
发布2025-07-25 08:07:39
发布2025-07-25 08:07:39
3420
举报
文章被收录于专栏:xiaosenxiaosen

🤖 LangChain 聊天机器人教程

欢迎来到 LangChain 聊天机器人的世界!🎉 在这个教程中,我们将学习如何使用 LangChain 构建智能聊天机器人,并探索两种不同的消息存储方式。

📚 项目概述

本教程包含两个核心:

  • 基础聊天功能和模型切换 💬
  • `消息历史存储(内存 vs 云端)📝

🚀 第一部分:基础聊天功能 (chat.py)

🔧 核心组件
1. 环境配置
代码语言:javascript
复制
import sys
sys.stdout.reconfigure(encoding='utf-8')  # 确保中文输出正常
from dotenv import load_dotenv
load_dotenv()  # 加载环境变量
2. 模型导入
代码语言:javascript
复制
from langchain_community.chat_models.moonshot import MoonshotChat
from langchain_community.chat_models import ChatZhipuAI
from langchain_core.messages import HumanMessage, SystemMessage, AIMessage

支持的模型:

  • 🌙 MoonshotChat (Kimi模型)
  • ChatZhipuAI (智谱GLM模型)
3. 消息类型详解

消息类型

作用

示例

SystemMessage

设定AI角色和行为

“你是一名社交媒体运营专家”

HumanMessage

用户输入的消息

“你好,介绍一下如何使用YouTube进行视频创作”

AIMessage

AI的回复消息

“您需要确定目标受众和内容主题呀主人~”

4. 完整代码解析

apikey可以设置到同级目录下的.env文件中

代码语言:javascript
复制
# 构建对话历史
messages = [
    SystemMessage("你是一名社交媒体运营专家"),  # 🎭 设定角色
    HumanMessage("你好,介绍一下如何使用YouTube进行视频创作"),  # 👤 用户问题
    AIMessage("您需要确定目标受众和内容主题呀主人~")  # 🤖 AI回复
]

# 初始化模型并获取回复
llm = ChatZhipuAI(model="GLM-4-FlashX-250414")
result = llm.invoke(messages)
print(f"GLM4-FlashX:{result.content}")
🔄 模型切换示例
代码语言:javascript
复制
# 方式1:使用Moonshot模型
# llm = MoonshotChat(model="kimi-k2-0711-preview")

# 方式2:使用智谱GLM模型
llm = ChatZhipuAI(model="GLM-4-FlashX-250414")

💾 第二部分:消息历史存储 (history.py)

📋 功能介绍

history.py 文件展示了两种消息存储方式:

  1. 内存存储 - 临时存储,程序结束后消失 🧠
  2. 云端存储 - 使用 Google Firestore 持久化存储 ☁️
🧠 方式一:内存存储(注释部分)
代码语言:javascript
复制
# 直接存入内存的方式
messages = []  # 简单的列表存储
system_message = SystemMessage("你是一名社交媒体运营专家")
messages.append(system_message)

# 聊天循环
while True:
    query = input("You:")
    if query.lower() == "exit":
        break
    messages.append(HumanMessage(content=query))  # 添加用户消息
    
    result = model.invoke(messages)
    response = result.content
    messages.append(AIMessage(content=response))  # 添加AI回复
    print(f"AI:{response}")

优点: ✅ 简单快速,无需配置 缺点: ❌ 程序重启后历史消失

☁️ 方式二:云端存储(Firestore)
1. 配置参数
代码语言:javascript
复制
PROJECT_ID = "..."        # 🏗️ Google Cloud项目ID
SESSION_ID = "user_session_new"       # 👤 用户会话ID
COLLECTION_NAME = "chat_history"      # 📁 Firestore集合名称
2. 初始化Firestore客户端
代码语言:javascript
复制
print("初始化Firestore客户端...")
client = firestore.Client(project=PROJECT_ID)

print("初始化Firestore聊天记录...")
chat_history = FirestoreChatMessageHistory(
    session_id=SESSION_ID,
    collection=COLLECTION_NAME,
    client=client
)
3. 持久化聊天循环
代码语言:javascript
复制
print("历史聊天记录:", chat_history.messages)  # 📜 显示历史记录

while True:
    query = input("You:")
    if query.lower() == "exit":
        break
    
    # 🔄 自动保存到Firestore
    chat_history.add_message(HumanMessage(content=query))
    
    result = model.invoke(chat_history.messages)
    response = result.content
    
    # 🔄 自动保存AI回复到Firestore
    chat_history.add_message(AIMessage(content=response))
    print(f"AI:{response}")

print("---Message History---")
print(chat_history.messages)  # 📋 显示完整历史
🆚 两种存储方式对比

特性

内存存储 🧠

Firestore存储 ☁️

持久性

❌ 临时

✅ 永久

配置复杂度

✅ 简单

⚠️ 需要配置

跨会话访问

❌ 不支持

✅ 支持

数据安全

⚠️ 易丢失

✅ 云端备份

性能

✅ 快速

⚠️ 网络延迟

成本

✅ 免费

💰 按使用付费

🛠️ 环境配置指南

1. 安装依赖
代码语言:javascript
复制
pip install langchain-community
pip install langchain-google-firestore
pip install google-cloud-firestore
pip install python-dotenv
2. 环境变量配置

创建 .env 文件:

代码语言:javascript
复制
# API密钥配置
ZHIPU_API_KEY=your_zhipu_api_key
MOONSHOT_API_KEY=your_moonshot_api_key

# Google Cloud配置
GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service-account-key.json
3. Google Firestore 设置
  1. 创建 Google Cloud 项目 🏗️
  2. 启用 Firestore API 🔧
  3. 创建服务账户密钥 🔑
  4. 下载 JSON 密钥文件 📄

🎯 实际应用场景

🧠 内存存储适用于:
  • 临时对话测试
  • 原型开发
  • 简单的一次性交互
☁️ Firestore存储适用于:
  • 生产环境应用
  • 需要历史记录的客服系统
  • 多用户聊天应用
  • 长期对话分析

🚀 运行示例

运行基础聊天
代码语言:javascript
复制
python chat.py
运行带历史记录的聊天
代码语言:javascript
复制
python history.py

🎉 总结

通过这个教程,你学会了:

  1. 🔧 LangChain基础使用 - 消息类型、模型调用
  2. 🔄 模型切换 - 支持多种AI模型
  3. 💾 存储策略 - 内存 vs 云端存储
  4. 🛠️ 实际部署 - 环境配置和最佳实践

现在你可以根据自己的需求选择合适的存储方式,构建属于自己的智能聊天机器人了!🎊


💡 小贴士: 在开发阶段建议使用内存存储进行快速测试,在生产环境中使用Firestore确保数据安全和持久性。

🔗 相关资源:

祝你编程愉快!🚀✨

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🤖 LangChain 聊天机器人教程
    • 📚 项目概述
    • 🚀 第一部分:基础聊天功能 (chat.py)
      • 🔧 核心组件
      • 🔄 模型切换示例
    • 💾 第二部分:消息历史存储 (history.py)
      • 📋 功能介绍
      • 🧠 方式一:内存存储(注释部分)
      • ☁️ 方式二:云端存储(Firestore)
      • 🆚 两种存储方式对比
    • 🛠️ 环境配置指南
      • 1. 安装依赖
      • 2. 环境变量配置
      • 3. Google Firestore 设置
    • 🎯 实际应用场景
      • 🧠 内存存储适用于:
      • ☁️ Firestore存储适用于:
    • 🚀 运行示例
      • 运行基础聊天
      • 运行带历史记录的聊天
    • 🎉 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档