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