ai-courseware/langchain-project/.trae/documents/implementation_guide.md

193 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LangChain 对话机器人实施指南
## 项目概述
本指南将帮助您基于现有的 requirements.txt 和 .env 配置,快速搭建一个集成 LangChain 和 LangGraph 的智能对话机器人项目。
## 项目结构
```
langchain-project/
├── .env # 环境变量配置
├── requirements.txt # Python 依赖
├── src/ # 源代码目录
│ ├── __init__.py
│ ├── main.py # FastAPI 应用入口
│ ├── cli_chat.py # 命令行对话程序
│ ├── models/ # 数据模型
│ │ ├── __init__.py
│ │ └── chat_models.py
│ ├── services/ # 业务服务
│ │ ├── __init__.py
│ │ ├── ollama_service.py # Ollama 模型服务
│ │ └── langsmith_service.py # LangSmith 监控服务
│ ├── workflows/ # LangGraph 工作流
│ │ ├── __init__.py
│ │ ├── chat_workflow.py # 主要对话工作流
│ │ └── nodes/ # 工作流节点
│ │ ├── __init__.py
│ │ ├── intent_analysis.py
│ │ ├── order_diagnosis.py
│ │ └── natural_chat.py
│ ├── chains/ # LangChain 链
│ │ ├── __init__.py
│ │ └── simple_chat_chain.py
│ └── utils/ # 工具函数
│ ├── __init__.py
│ ├── config.py # 配置管理
│ └── logger.py # 日志配置
├── data/ # 数据目录
│ └── mock_orders.json # 模拟订单数据
└── tests/ # 测试目录
├── __init__.py
└── test_workflows.py
```
## 核心实现要点
### 1. 环境配置
您的 .env 文件已经配置完善,包含:
- Ollama 模型配置路由模型qwen3:8b对话模型deepseek-v3.1:671b-cloud
- LangSmith 监控配置
- FastAPI 服务配置
### 2. 简单 Chain 实现 (cli_chat.py)
```python
# 关键实现点:
# 1. 使用 LangChain 的 ChatOllama 连接本地模型
# 2. 创建简单的对话链
# 3. 命令行循环交互
# 4. 集成 LangSmith 监控
```
### 3. LangGraph 工作流实现 (chat_workflow.py)
```python
# 关键实现点:
# 1. 定义状态图节点:意图分析 -> 分支处理 -> 输出
# 2. 实现流式输出机制
# 3. 状态管理和上下文传递
# 4. 错误处理和重试机制
```
### 4. 意图分析节点 (intent_analysis.py)
```python
# 关键实现点:
# 1. 使用 qwen3:8b 模型进行意图分类
# 2. 结构化输出(订单诊断 vs 自然对话)
# 3. 置信度评估
# 4. 意图分析结果的状态传递
```
### 5. 订单诊断节点 (order_diagnosis.py)
```python
# 关键实现点:
# 1. 思考过程的流式输出
# 2. 模拟订单信息查询和展示
# 3. 工具调用演示mock tools
# 4. 诊断结果生成
```
### 6. FastAPI 流式接口 (main.py)
```python
# 关键实现点:
# 1. Server-Sent Events (SSE) 实现
# 2. 异步流式响应
# 3. 会话管理
# 4. 错误处理和状态码
```
## 快速启动步骤
### 1. 环境准备
```bash
# 激活虚拟环境
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
# 安装依赖(已有 requirements.txt
pip install -r requirements.txt
```
### 2. 启动 Ollama 服务
```bash
# 确保 Ollama 服务运行在 localhost:11434
ollama serve
# 拉取所需模型
ollama pull qwen3:8b
ollama pull deepseek-v3.1:671b-cloud
```
### 3. 配置 LangSmith可选
```bash
# 在 .env 文件中设置您的 LangSmith API Key
LANGCHAIN_API_KEY=your_actual_api_key_here
```
### 4. 运行项目
```bash
# 启动 FastAPI 服务
python src/main.py
# 或运行命令行对话程序
python src/cli_chat.py
```
## 测试用例
### 1. 命令行测试
```bash
python src/cli_chat.py
# 输入: "你好"
# 预期: 自然对话回复
# 输入: "我的订单12345有问题"
# 预期: 触发订单诊断流程
```
### 2. API 测试
```bash
curl -X POST "http://localhost:8200/chat/stream" \
-H "Content-Type: application/json" \
-d '{"message": "我的订单有问题", "session_id": "test_session"}'
```
## 关键技术点说明
### 1. 流式输出实现
- 使用 FastAPI 的 StreamingResponse
- 实现 Server-Sent Events 协议
- 异步生成器处理 LangGraph 输出
### 2. 状态管理
- LangGraph 状态图管理对话上下文
- 会话级别的状态持久化
- 节点间的数据传递机制
### 3. 模型集成
- Ollama 本地模型的异步调用
- 不同模型的角色分工(意图分析 vs 对话生成)
- 模型切换和负载均衡
### 4. 监控和调试
- LangSmith 集成用于链路追踪
- 结构化日志记录
- 性能指标收集
## 扩展建议
### 1. 功能扩展
- 添加更多意图类型(退款、投诉等)
- 实现真实的订单系统集成
- 添加多轮对话上下文管理
### 2. 性能优化
- 实现模型响应缓存
- 添加请求限流和熔断
- 优化流式输出的延迟
### 3. 部署优化
- Docker 容器化部署
- 添加健康检查和监控
- 实现水平扩展支持
这个实施指南为您提供了完整的项目搭建路径,您可以按照步骤逐步实现各个功能模块。