问题背景

在开发 AI 对话平台时,我们遇到几个核心挑战:

  1. 如何同时调用多个 AI 模型并实时展示结果?
  2. 如何实现类似 Git 的对话分支管理?
  3. 如何让 AI 对话知识可积累、可检索?

我们在 YeeroAI(yeero.ai)中实现了这些功能,分享下设计思路。


一、多模型并行对话

方案:SSE + OpenRouter + 虚拟线程

  • 前端使用 EventSource 监听 SSE 流
  • 后端通过 SseEmitter 实现流式输出
  • OpenRouter 统一调用 300+ 模型(OpenAI/Anthropic/Google/DeepSeek/Meta 等)
  • 虚拟线程并行执行多个模型请求
  • 首包时间 < 3s

前端状态管理:每个模型独立状态(准备中→推理中→输出中→已完成/错误/已取消)


二、Git 式对话分支

数据模型

Chat → Branch[] → BranchMessageNode[] → Message[]

分支操作

操作实现
Fork基于某个 Node 之前的消息创建新 Branch
Merge将源 Branch 的 Message 追加到目标 Branch
Pick标记 Node 中哪条 Message 是主路径
强制指向更新 Branch 的 HEAD 指向

每个 Branch 独立配置:模型列表、工具、参数(温度/采样/推理强度等)。

多标签页管理:同时打开多个对话标签页,IDE 风格切换,右键菜单支持刷新/关闭/关闭其他等操作。


三、知识沉淀 + 向量检索

流程

  1. AI 回复完成 → 异步提取知识条目(标题+摘要+标签)
  2. bge-m3 模型生成 1024 维向量
  3. 存入 PostgreSQL pgvector
  4. 用户发消息时,向量检索最相关 Top-K 知识注入上下文

记忆系统:AI 自动提取用户偏好/习惯,按稳定性分 6 级(FIXED → WEAK),自动检索注入。

上下文摘要压缩:AI 将历史消息压缩成摘要,大幅减少 Token 消耗。


四、后台推流——SSE 连接不断开

关闭或刷新页面后,后端与大模型的 SSE 连接不断开,继续在后台流式接收数据。

后端实现

  • IceUser 表新增 backgroundStreamEnabled 字段(持久化全局开关)
  • Redis List 存储每个 chunk + Redis Channel 广播新 chunk
  • ChatStreamHub 封装后台流状态管理
  • /checkActiveStream 查询活跃流 + /resume SSE 重连接口

前端实现

  • use-chat-sse.tsresumeStream 处理 CATCH_UP(替换模式)和后续流事件
  • MessageList.tsx 检测 STREAMING 消息自动触发重连
  • Settings 页面全局开关

多实例解耦:Redis Pub/Sub + Redis List 双轨机制,无论用户重连到哪个实例都能恢复。


五、AI 语义搜索

  • 消息搜索:向量语义匹配 + 相似度百分比
  • 文件搜索:关键词 + AI 语义搜索双模式(v1.3.0)
  • 全局搜索:Ctrl+K,跨类型(对话/消息/文件/应用/文件夹)
  • AI 图片语义搜索:AI 生成的图片建向量索引,语义搜索直接找

六、推理过程展示 + 多模态

推理过程展示:支持 o1/o3 等推理模型,MessageKnowledgeReasoningBlock 组件实现推理内容折叠/展开,SseMessageCard 流式输出时实时展示推理内容。

多模态输入输出:支持图片、音频、视频输入对话,AI 跨媒体类型理解与回应。图片生成支持多种尺寸和比例。

模型广场:独立页面浏览 300+ 模型详情,按供应商/模态/价格/免费筛选,ModelCard + ModelFilters + ModelPagination 组件实现。


五、技术栈

技术
前端Next.js 16 + React 19 + TypeScript
UIshadcn/ui + Tailwind CSS
后端Spring Boot 3.5 + Kotlin 2.3
数据库PostgreSQL + pgvector
缓存Redis + Caffeine
AISpring AI → OpenRouter
向量bge-m3 (1024维)
流式SSE

六、本周新功能

  • 后台推流(关页面不断流,SSE 自动重连)
  • 邀请有礼(邀请好友双方获积分)
  • AI 语义搜索增强
  • 应用讨论面板 + 云端同步
  • 文件库 + 多格式预览
  • 存储额度管理

体验:yeero.ai(注册送 10,000 积分)

标签: none

添加新评论