68 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: ai-assistant.session-save.howto
title: AI 助手会话自动保存
type: howto
feature: ai-assistant
scope: end-user
locale: zh
aliases:
- AI 会话保存
- AI 对话留底
- AI 会话不保留
- AI 没保存
- 手动保存 AI
related_tools: []
related_pages: []
prerequisites:
- 会话管理已启用(`sessionEnabled = true`,浮窗自动开启)
negative:
- 没有「立即保存」按钮,全部自动;不会丢失最新一条
- 嵌入入口未传 sessionKey 时不会启用保存(一次性对话)
- streaming / waiting 状态会被归一为 error 再写库,避免重启卡 loading
last_verified: v1.7.90
---
# AI 助手会话自动保存
## 是否需要手动保存
**不需要。** AI 助手浮窗的会话保存全自动。以下时机触发保存:
1. **流式回答完成**AI 最后一个 chunk 到达,标记 `completed` 后立即保存
2. **流式失败 / 用户中断**:归一未完成态为 `error` 后保存
3. **手动新建会话 / 切换会话 / 切桶**:先保存当前会话再切换
4. **常规编辑(删消息、编辑提问)**2 秒防抖批量写入
## 保存到哪
- 数据库表:`ai_assistant_sessions`,按 `userid` 隔离
- 接口:`POST api/assistant/session/save`
- 字段:`session_key``session_id``title``data`JSON 消息流)、`new_images`(新增图片 base64 列表)
## 标题如何生成
- 取首条 `role !== 'system'``prompt` 前 20 字
- 无任何用户提问时显示「新会话」
- 标题不可手动改
## 图片同步上传
- 保存时仅传**本次新增**的图片 base64
- 后端写入 `public/uploads/assistant/YYYYMM/{userid}/xxx.jpg`
- 返回 `image_urls` 映射,前端缓存到 `serverImageMap`,下次打开会话用 URL 显示
## 防抖与容错
- 普通编辑 2 秒防抖
- 流式结束 / 失败立即写入
- 写入失败仅 console.warn下次保存补上
## 什么时候不保存
- 嵌入入口未传 sessionKey → 该入口走「一次性对话」,关闭后不留底
- 当前会话内一条消息都没有 → 不创建空会话记录
## 不支持
- 不支持云端跨用户 / 跨工作区同步
- 不支持「保存到本地文件」选项
- 不支持暂停自动保存
## 相关
- [[ai-assistant.session.concept]]
- [[ai-assistant.session-list.howto]]
- [[ai-assistant.stop.howto]]