72 lines
3.8 KiB
Markdown
72 lines
3.8 KiB
Markdown
# LangChain 对话机器人项目需求文档
|
||
|
||
## 1. 产品概述
|
||
基于 LangChain 和 LangGraph 构建的智能对话机器人,支持意图识别和订单诊断功能,使用 Ollama 本地模型提供流式对话体验。
|
||
- 主要解决问题:提供智能客服对话和订单问题诊断功能,降低人工客服成本,提升用户体验。
|
||
- 目标用户:需要智能客服解决方案的企业和开发者,用于演示和学习 LangChain/LangGraph 技术栈。
|
||
|
||
## 2. 核心功能
|
||
|
||
### 2.1 用户角色
|
||
本项目为演示项目,不区分用户角色,所有用户均可直接使用所有功能。
|
||
|
||
### 2.2 功能模块
|
||
我们的对话机器人项目包含以下主要功能模块:
|
||
1. **简单对话机器人**:基于 LangChain Chain 实现的基础对话功能,支持命令行交互。
|
||
2. **智能工作流**:基于 LangGraph 实现的复杂对话流程,包含意图分析和分支处理。
|
||
3. **流式对话接口**:提供 FastAPI 接口,支持实时流式输出对话内容。
|
||
|
||
### 2.3 页面详情
|
||
| 功能模块 | 子模块 | 功能描述 |
|
||
|----------|--------|----------|
|
||
| 简单对话机器人 | 命令行交互 | 启动命令行程序,与用户进行基础对话,使用 Ollama 本地模型生成回复 |
|
||
| 智能工作流 | 意图分析 | 分析用户输入意图,判断是订单诊断还是自然对话需求 |
|
||
| 智能工作流 | 订单诊断流程 | 输出思考过程,展示订单信息 JSON,提供诊断结果和工具调用演示 |
|
||
| 智能工作流 | 自然对话流程 | 处理日常对话需求,提供自然语言交互体验 |
|
||
| 流式对话接口 | FastAPI 接口 | 提供 HTTP 接口,支持流式输出,集成 LangGraph 工作流 |
|
||
| 监控配置 | LangSmith 集成 | 配置 LangSmith 用于监控和调试对话流程 |
|
||
|
||
## 3. 核心流程
|
||
|
||
### 用户操作流程
|
||
1. **命令行对话流程**:用户启动命令行程序 → 输入消息 → 系统调用 Ollama 模型 → 返回回复
|
||
2. **API 对话流程**:用户调用 API 接口 → 系统进行意图分析 → 根据意图选择对应流程 → 流式返回结果
|
||
3. **订单诊断流程**:用户输入订单相关问题 → 意图识别为订单诊断 → 输出思考过程 → 展示订单信息 → 提供诊断结果
|
||
4. **自然对话流程**:用户输入日常对话 → 意图识别为自然对话 → 调用对话模型 → 返回自然回复
|
||
|
||
```mermaid
|
||
graph TD
|
||
A[用户输入] --> B[意图分析]
|
||
B --> C{意图类型}
|
||
C -->|订单诊断| D[订单诊断流程]
|
||
C -->|自然对话| E[自然对话流程]
|
||
D --> F[输出思考过程]
|
||
F --> G[展示订单信息JSON]
|
||
G --> H[输出诊断结果]
|
||
E --> I[调用对话模型]
|
||
I --> J[生成自然回复]
|
||
H --> K[流式输出结果]
|
||
J --> K
|
||
```
|
||
|
||
## 4. 用户界面设计
|
||
|
||
### 4.1 设计风格
|
||
- **主色调**:终端绿色 (#00FF00) 和白色 (#FFFFFF)
|
||
- **交互风格**:命令行风格,简洁明了
|
||
- **字体**:等宽字体,便于阅读代码和日志
|
||
- **布局风格**:垂直布局,流式输出
|
||
- **图标风格**:使用 ASCII 字符和简单符号
|
||
|
||
### 4.2 界面设计概览
|
||
| 界面类型 | 模块名称 | UI 元素 |
|
||
|----------|----------|---------|
|
||
| 命令行界面 | 对话交互 | 提示符、用户输入区、模型回复区,使用不同颜色区分用户和机器人消息 |
|
||
| API 响应 | 流式输出 | JSON 格式的流式数据,包含消息类型、内容、时间戳等字段 |
|
||
| 日志界面 | 调试信息 | 结构化日志输出,包含意图分析结果、模型调用信息、执行时间等 |
|
||
|
||
### 4.3 响应性
|
||
本项目主要面向开发者和演示场景,采用命令行和 API 接口形式,无需考虑传统意义上的响应式设计。重点关注:
|
||
- 流式输出的实时性和稳定性
|
||
- 命令行界面的跨平台兼容性
|
||
- API 接口的高并发处理能力 |