跳到主要内容

chatbox需求文档

1. 背景与目标​

背景:需要一款本地运行的桌面 Chatbox 工具,作为 AI 助手入口,支持 OpenAI 以及未来扩展到更多模型提供方(如 OpenAI、Anthropic、Google、Qwen等)。

目标

  • 端侧桌面应用:Windows/macOS(Linux 可选)
  • 支持聊天对话、会话管理、消息渲染、流式输出
  • OpenAI 可用、可配置(Key/Host/Model/Proxy)
  • “模型提供方”插件化:新增模型不改 UI 主流程
  • 本地数据可控:会话与设置本地存储、可导入导出

非目标(第一期不做)

  • 多端同步/账号体系
  • 团队协作、共享空间
  • 在线知识库、复杂 RAG(先预留接口)

2. 用户与使用场景​

用户画像

  • 开发者/产品/运营:需要快速问答、写作、代码辅助
  • 有隐私诉求:希望本地存储、可控数据

核心场景

  • 创建会话 -> 选择模型 -> 输入消息 -> 流式回复
  • 快速切换不同模型提供方/不同模型
  • 保存与搜索历史会话
  • 导出会话(Markdown/JSON)

3. 需求范围(MVP → v1 → v1.1)​

3.1 MVP(必须有)​

  1. 聊天
  • 单轮/多轮对话
  • 流式输出(SSE/流式 fetch)
  • 支持停止生成
  • 支持重试上一条、继续对话
  • 消息支持 Markdown 渲染(代码块、表格、引用)
  1. 会话管理
  • 新建/删除/重命名会话
  • 会话列表展示最近时间
  • 本地持久化(默认 SQLite 或 JSON/LevelDB 方案,见技术文档)
  1. 模型与配置
  • 内置 OpenAI Provider
  • 配置项:API Key、Base URL、默认模型、温度、最大 tokens(或输出长度)、代理(可选)
  • 多 Provider 结构:Provider 列表 + 每个 Provider 的模型列表
  • Provider 可启停(方便后续扩展)
  1. 基础设置
  • 主题(跟随系统/浅色/深色)
  • 语言(先中文,预留 i18n)
  • 数据存储路径(可选:高级设置)
  1. 安全与隐私
  • API Key 本地安全存储(系统 Keychain/credential vault)
  • 会话数据默认仅本地,不上传

3.2 v1(重要增强)​

  • 会话搜索(按标题/内容)
  • Prompt 模板(快速指令:写周报/翻译/代码审查)
  • 消息操作:复制、引用、删除单条
  • 导出:Markdown / JSON
  • 更新机制(可选:自动更新 or 手动检查)

3.3 v1.1(预留)​

  • 工具调用(function calling)统一抽象
  • 文件上下文(上传文本/图片/代码文件)→ 先做“附加文本”
  • 本地模型 Provider(Ollama/LM Studio)作为示例扩展

4. 产品信息架构(IA)​

  • 左侧:会话列表 + 新建按钮 + 搜索框
  • 中间:消息流(Markdown)+ 输入框 + 发送/停止
  • 右上:当前 Provider/Model 下拉
  • 设置页:Provider 配置、UI 设置、数据管理、关于

5. 关键交互与状态​

  • 发送后进入“生成中”状态:按钮变“停止”
  • SSE 流式:逐字更新 assistant 消息
  • 错误态:展示错误原因 + 一键重试
  • 断网/Key 无效:引导到设置页

6. 数据结构(业务视角)​

  • Conversation:id、title、createdAt、updatedAt、pinned?
  • Message:id、conversationId、role(user/assistant/system)、content、createdAt、modelMeta(provider/model/token usage 可选)
  • ProviderConfig:providerId、enabled、baseUrl、apiKeyRef、defaultModel、params

7. 验收标准(MVP)​

  • 可在桌面端运行,能配置 OpenAI Key 并成功对话
  • 流式输出可用,停止生成可用
  • 会话可保存、重启应用后仍存在
  • 可切换模型(至少支持同一 Provider 下不同 model 名称)
  • Key 不明文写入普通配置文件(使用安全存储)