1.6 KiB
1.6 KiB
聊天会话表:chat_session
状态:当前会话目录表
来源:V011__add_session_run_isolation.sql、ChatSession
定位
chat_session 保存多轮 Chat 会话的元数据,用于把同一个 sessionId 下的多次诊断运行组织在一起。它不保存完整对话历史;正文消息仍由 Redis SessionContext.messageHistory 管理。
字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
BIGINT | 是 | 自增主键 |
session_id |
VARCHAR(64) | 是 | 会话目录 ID,外部 API 仍通过它定位会话 |
status |
VARCHAR(16) | 否 | ACTIVE、EXPIRED、CLOSED |
message_pair_count |
INT | 否 | Redis 会话中问答轮次数的快照 |
created_at |
DATETIME | 是 | 创建时间 |
last_active_at |
DATETIME | 否 | 最近活跃时间 |
expires_at |
DATETIME | 否 | 目录元数据,可为空;Redis 消息历史可独立过期 |
索引
| 索引 | 字段 | 用途 |
|---|---|---|
session_id unique |
session_id |
会话目录唯一约束 |
idx_chat_session_last_active |
last_active_at |
最近会话列表和排查 |
idx_chat_session_status |
status |
按状态筛选 |
idx_chat_session_expires_at |
expires_at |
过期目录排查 |
关系
diagnosis_run.session_id逻辑关联chat_session.session_id。- 当前不强制数据库外键,服务层校验 run/session ownership。
- 一个
chat_session可以拥有多个diagnosis_run。
注意点
chat_session是会话元数据,不是诊断执行记录。- 不要把 query、answer、self_evaluation、feedback 写入该表;这些属于
diagnosis_run。