130 lines
3.3 KiB
Markdown
130 lines
3.3 KiB
Markdown
# 对话模块需求文档
|
|
|
|
## 1. 模块定位
|
|
|
|
Chat 模块负责 Agent 对话页面和用户交互,是复试演示时最核心的入口。
|
|
|
|
该模块接收用户问题,加载场景配置,调用 Agent Core 执行智能编排,并将结构化结果、引用来源、工具调用和审计信息展示给用户。
|
|
|
|
## 2. 模块目标
|
|
|
|
- 提供按场景进入的 Agent 对话页。
|
|
- 支持用户输入业务问题。
|
|
- 调用 Agent Core 执行完整 Agent 流程。
|
|
- 展示结构化输出。
|
|
- 展示 RAG 引用片段。
|
|
- 展示工具调用记录。
|
|
- 触发审计日志写入。
|
|
|
|
## 3. 职责边界
|
|
|
|
### 3.1 负责
|
|
|
|
- 对话页面渲染。
|
|
- 表单接收和校验。
|
|
- 当前场景上下文传递。
|
|
- 调用 Agent Core。
|
|
- 展示 Agent 返回结果。
|
|
|
|
### 3.2 不负责
|
|
|
|
- 不直接读取 YAML 场景文件。
|
|
- 不直接执行 RAG 检索。
|
|
- 不直接执行工具函数。
|
|
- 不直接调用大模型 API。
|
|
- 不直接写复杂审计细节。
|
|
|
|
## 4. 页面需求
|
|
|
|
### 4.1 Agent 对话页
|
|
|
|
路径:`/chat/<scenario_id>/`
|
|
|
|
页面区域:
|
|
|
|
- 当前场景摘要。
|
|
- 当前场景下已入库文档多选框。
|
|
- 用户问题输入框。
|
|
- 提交按钮。
|
|
- Agent 结构化输出区域。
|
|
- 引用来源区域。
|
|
- 工具调用区域。
|
|
- 执行耗时区域。
|
|
- 审计日志详情入口。
|
|
|
|
## 5. 表单需求
|
|
|
|
用户输入表单字段:
|
|
|
|
| 字段 | 类型 | 必填 | 说明 |
|
|
|---|---|---|---|
|
|
| `message` | textarea | 是 | 用户业务问题 |
|
|
| `document_ids` | list[int] | 否 | 本次对话指定使用的已入库文档 |
|
|
|
|
校验规则:
|
|
|
|
- 输入不能为空。
|
|
- 输入长度建议不超过 4000 字。
|
|
- 如果场景不存在,需要返回明确错误。
|
|
- `document_ids` 只能包含当前场景下状态为 `indexed` 的文档。
|
|
- 未选择文档时,默认使用当前场景下全部已入库文档作为 RAG 范围。
|
|
|
|
## 6. Agent 执行流程
|
|
|
|
Chat 模块调用 Agent Core 的流程:
|
|
|
|
```text
|
|
用户提交问题
|
|
↓
|
|
校验 scenario_id 和 message
|
|
↓
|
|
获取场景配置
|
|
↓
|
|
调用 `run_agent(scenario_config, user_input, options=None)`
|
|
↓
|
|
获取 AgentResult
|
|
↓
|
|
调用 Audit 模块记录日志
|
|
↓
|
|
渲染结果页面
|
|
```
|
|
|
|
## 7. AgentResult 展示需求
|
|
|
|
Agent Core 返回结果建议包含:
|
|
|
|
| 字段 | 说明 |
|
|
|---|---|
|
|
| `answer` | 自然语言回答 |
|
|
| `structured_output` | 结构化结果 |
|
|
| `references` | RAG 引用来源 |
|
|
| `tool_calls` | 工具调用记录 |
|
|
| `raw_output` | 模型原始输出 |
|
|
| `latency_ms` | 执行耗时 |
|
|
| `error` | 错误信息 |
|
|
|
|
页面需要优先展示结构化结果。如果结构化解析失败,则展示自然语言回答和错误提示。
|
|
|
|
## 8. 错误处理需求
|
|
|
|
需要处理以下错误:
|
|
|
|
| 错误 | 页面行为 |
|
|
|---|---|
|
|
| 场景不存在 | 显示场景不存在 |
|
|
| 用户输入为空 | 显示表单错误 |
|
|
| LLM API Key 缺失 | 显示模型配置缺失 |
|
|
| RAG 检索失败 | 显示检索失败,但允许模型基于已有信息回答 |
|
|
| 工具调用失败 | 显示工具失败信息,并继续生成结果 |
|
|
| 结构化解析失败 | 展示原始回答,并提示结构化解析失败 |
|
|
|
|
## 9. 验收标准
|
|
|
|
- 可以从场景列表进入对话页。
|
|
- 可以提交问题并获得 Agent 输出。
|
|
- 页面能展示结构化结果。
|
|
- 页面能展示引用来源。
|
|
- 页面能展示工具调用记录。
|
|
- 执行失败时有可理解的错误提示。
|
|
- 每次对话都会产生审计日志。
|