48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
# 诊断会话表:diagnosis_session
|
||
|
||
**状态**:当前主表
|
||
**来源**:`V005__create_session_storage.sql`、`V008__add_answer_to_diagnosis_session.sql`、`DiagnosisSession`
|
||
|
||
## 定位
|
||
|
||
`diagnosis_session` 是一次 Chat 或 AIOps 诊断的会话级主记录,负责保存用户问题、执行状态、最终答案、总体统计和自评估结果。
|
||
|
||
## 字段
|
||
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
|---|---|---|---|
|
||
| `id` | BIGINT | 是 | 自增主键 |
|
||
| `session_id` | VARCHAR(64) | 是 | 会话唯一 ID,Trace API 和反馈接口使用它 |
|
||
| `query` | TEXT | 是 | 用户原始问题或 AIOps 输入摘要 |
|
||
| `status` | VARCHAR(16) | 否 | `PENDING`、`RUNNING`、`SUCCESS`、`FAILED` |
|
||
| `agent_flow` | VARCHAR(32) | 否 | `CHAT` 或 `AI_OPS` |
|
||
| `total_duration_ms` | INT | 否 | 总耗时,单位毫秒 |
|
||
| `total_token_count` | INT | 否 | 总 Token 消耗 |
|
||
| `step_count` | INT | 否 | Agent 步骤数 |
|
||
| `tool_call_count` | INT | 否 | 工具调用次数 |
|
||
| `answer` | LONGTEXT | 否 | 返回给用户的最终答案 |
|
||
| `self_evaluation` | JSON | 否 | rule、verifier、aiops 等自评估结果容器 |
|
||
| `feedback` | VARCHAR(16) | 否 | 用户反馈:`useful`、`not_useful` 或空 |
|
||
| `created_at` | DATETIME | 是 | 创建时间 |
|
||
| `updated_at` | DATETIME | 是 | 更新时间 |
|
||
|
||
## 索引
|
||
|
||
| 索引 | 字段 | 用途 |
|
||
|---|---|---|
|
||
| `session_id` unique | `session_id` | 会话唯一约束 |
|
||
| `idx_created_at` | `created_at` | 按时间查询 |
|
||
| `idx_status` | `status` | 按状态筛选 |
|
||
| `idx_agent_flow` | `agent_flow` | 区分 Chat / AIOps |
|
||
|
||
## 关系
|
||
|
||
- `agent_step.session_id` 逻辑关联 `diagnosis_session.session_id`。
|
||
- `tool_invocation.session_id` 逻辑关联 `diagnosis_session.session_id`。
|
||
- `case_library.diagnosis_id` 在自动生成案例时保存 `diagnosis_session.session_id`。
|
||
|
||
## 注意点
|
||
|
||
- 当前没有数据库外键,Trace 聚合依赖 `session_id`。
|
||
- `self_evaluation` 是扩展容器,里面可能包含 `rule_evaluation`、`verifier_evaluation`、`aiops_rule_evaluation`。
|