26a61cb57c
## 🐛 Bug 修复 - 修复前端对话无响应:消除 ChatContainer 中的双重 WebSocket 连接,优化 sendMessage 失败提示 - 修复 Memory-Service 数据库迁移失败:ai-core 和 memory-service 均添加 ALTER TABLE ADD COLUMN IF NOT EXISTS 模式演化 - 修复语音/STT 不可用:添加 MediaRecorder API 降级方案,修复 whisper-cli 输出文件名错误 - 修复仪表盘数据库按钮失效:补充按钮 ID 属性,重写 controlDB() 控制逻辑 ## 🎨 UI 修复 - 修正用户消息头像位置:从 flex-row-reverse 改为 justify-end - 移除空聊天列表的 emoji 占位图标 ## ✨ 新功能 - devtools 新增 STT 处理日志面板(环形缓冲区 + WebSocket 广播 + 可视化表格) - 新增 ADMIN_NICKNAME 环境变量,支持自定义管理员昵称 ## 🔧 改进 - 注册流程增加昵称必填字段(前后端同步) ## 🏗️ 架构重构 - 重构自主思考逻辑:从定时器轮询改为事件驱动(对话后触发 + 静默检测),优化提示词使其更自然人性化 - 实现主-子会话架构:新增 4 种子会话类型(general/memory/iot/knowledge),意图分析 → 并行分发 → 结果合成流程 ## 📄 新增文档 - docs/architecture/main-session-sub-session-design.md — 子会话架构设计文档
42 lines
1.5 KiB
Go
42 lines
1.5 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
// Session 对话会话
|
|
type Session struct {
|
|
ID string `json:"id" db:"id"`
|
|
UserID string `json:"user_id" db:"user_id"`
|
|
Title string `json:"title" db:"title"`
|
|
Persona string `json:"persona" db:"persona"` // cyrene | ...
|
|
Mode string `json:"mode" db:"mode"` // text | voice_assistant
|
|
MessageCount int `json:"message_count" db:"message_count"`
|
|
IsActive bool `json:"is_active" db:"is_active"`
|
|
CreatedAt time.Time `json:"created_at" db:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
|
|
}
|
|
|
|
// SessionCreateParams 创建会话参数
|
|
type SessionCreateParams struct {
|
|
UserID string `json:"user_id"`
|
|
Title string `json:"title"`
|
|
Persona string `json:"persona"`
|
|
Mode string `json:"mode"`
|
|
}
|
|
|
|
// MainSession 主会话 — 用户可见的对话会话 (扩展 Session)
|
|
type MainSession struct {
|
|
ID string `json:"id"`
|
|
UserID string `json:"user_id"`
|
|
Title string `json:"title"`
|
|
Persona string `json:"persona"`
|
|
Mode string `json:"mode"`
|
|
Status MainSessionStatus `json:"status"`
|
|
MessageCount int `json:"message_count"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
|
|
// 新增字段
|
|
SubSessions []string `json:"sub_sessions"` // 关联的子会话 ID 列表
|
|
LastIntent *IntentResult `json:"last_intent"` // 最近一次意图分析结果
|
|
}
|