# 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 接口的高并发处理能力