Files

1 line
9.4 KiB
JSON
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.
{"repo": "ch1nyzzz/zotero-llm-reader", "files": {"doc/PRD.md": {"a6ac18b3681a4e1df66d0baa1b6d63abe0da2b1b": {"t": 1785746481.6516209, "n": 2625, "h": "fc29ee8ca01c37d0", "c": "# Zotero LLM Reader 插件 PRD\n\n## 背景与目标\n- 在 Zotero 内直接把选中文献或 PDF 交给 LLM(GPT/Gemini/自定义兼容接口),生成总结并可继续问答,减少切换成本。\n- 提供统一的多厂商接入层:OpenAI/Gemini + PDF `api.pdf` 中列出的国内外主流兼容接口(Minimax、Kimi/Moonshot、智谱 GLM、DeepSeek、Qwen)。\n- 保留可插入 Zotero 笔记的结构化总结与对话记录,便于检索和复用。\n\n## 用户故事\n- 我选中一篇论文,点击“LLM 总结”,几秒后得到结构化摘要,并能一键写入该条目笔记。\n- 我在 PDF 中选中高亮,提问“这段的核心贡献是什么?”,获得基于高亮上下文的回答。\n- 我能在偏好页配置自己的 API Key/模型/代理,并测试连通性和限流。\n- 我想保留总结/对话历史,下次打开条目可快速查看或刷新。\n\n## 范围\n- Zotero 7 插件;支持主窗口与 Reader 面板。\n- 交互:总结、一问一答、流式输出、插入笔记、历史查看/清除。\n- 内容:元数据 + PDF 文本/高亮提取,分块/截断控制上下文大小。\n- 配置:多 Provider 参数、默认 Prompt、调试日志。\n- 不含:账号体系、本地模型部署。\n\n## 功能需求\n- Provider 统一接口:`summarize`、`chat`(可流式)。支持 OpenAI 兼容协议 + Gemini 原生 + 下列 API:\n - **Minimax (MiniMax-M2)**:`base_url=https://api.minimax.io/v1`,`model=MiniMax-M2` 或 `MiniMax-M2-Stable`,路径 `/chat/completions`(OpenAI 兼容)。\n - **Kimi / Moonshot**:`base_url=https://api.moonshot.ai/v1`,路径 `/chat/completions`,模型 `kimi-latest`、`kimi-k2-*`(含 `kimi-k2-thinking`)。\n - **智谱 GLM(z.ai)**:HTTP POST `https://api.z.ai/api/paas/v4/chat/completions`,`Authorization: Bearer <API_KEY>`,`model=glm-4.6`。\n - **DeepSeek**:`base_url=https://api.deepseek.com`,路径 `/chat/completions`,模型 `deepseek-chat`、`deepseek-reasoner`。\n - **Qwen(通义千问)**:兼容模式 `base_url=https://dashscope-intl.aliyuncs.com/compatible-mode/v1`(国际)或 `https://dashscope.aliyuncs.com/compatible-mode/v1`(北京),路径 `/chat/completions`,模型 `qwen3-max`、`qwen-plus`、`qwen-flash`。\n- 参数支持:API Key、Base URL(可自定义代理)、模型名、超时、最大 tokens、温度、是否流式、是否上传全文/仅元数据/仅高亮。\n- 内容提取:元数据(题目/作者/摘要/标签)+ PDF 文本/高亮;过大时提示降级(仅元数据/高亮)。\n- UI 入口:\n - 右键/工具栏:对选中条目触发“发送到 LLM 总结”。\n - Item Pane / Reader 自定义面板:展示总结、历史,输入框+发送/取消,Provider/模型下拉。\n - 结果操作:复制、刷新、插入到条目笔记(追加 “LLM Summary” 小节)。\n- 流式与状态:支持流式增量渲染;显示加载/错误/取消;并发队列串行化,支持取消。\n- 日志与测试:调试日志开关(默认关,日志不含正文,可选仅记录元数据和错误);偏好页“测试连接”。\n- 国际化:至少中/英字符串占位。\n\n## 非功能需求\n- 性能:常规总结响应目标 < 8 秒;大文档分块;UI 不阻塞主线程。\n- 兼容:Zotero 7;macOS/Windows/Linux。\n- 安全与隐私:API Key 仅本地存储;默认不把正文写入日志;上传全文需显式提示。\n- 可维护性:模块化(提取/LLM/偏好/UI);TypeScript 类型完备;错误分类明确(鉴权/超时/限流/内容过大/网络)。\n\n## 关键接口设计(内部)\n- `extractContent(item, mode)` -> `{ meta, textChunks?, highlights? }`\n- `summarize(payload, options)` -> `summary`(可流式回调)\n- `chat(payload, options)` -> `answer`(可流式)\n- `saveNote(item, content)` -> `noteId`\n- `testConnection(config)` -> `ok | error`\n\n## 配置项(偏好页)\n- Provider 选择:OpenAI / Gemini / Minimax / Kimi(Moonshot) / GLM(z.ai) / DeepSeek / Qwen / 自定义。\n- API Key、Base URL、模型名、超时、最大 tokens、温度、流式开关。\n- 上传范围:全文 / 仅元数据 / 仅高亮。\n- 默认总结 Prompt;调试日志开关;“测试连接”按钮。\n\n## 里程碑(建议)\n- M1:清理模板、完成偏好页、多 Provider 客户端骨架(含上述 API)。\n- M2:PDF/高亮提取、总结/聊天流程、UI 面板和右键入口、流式显示。\n- M3:笔记写入、历史缓存、错误与隐私防护、双语文案。\n- M4:测试与打包发布(`npm run build`/`release`),编写用户指南。\n"}, "ae5c8289abe7003ca912476cfc570d7b934cef6e": {"t": 1785764794.133238, "n": 2625, "h": "fc29ee8ca01c37d0", "c": "# Zotero LLM Reader 插件 PRD\n\n## 背景与目标\n- 在 Zotero 内直接把选中文献或 PDF 交给 LLM(GPT/Gemini/自定义兼容接口),生成总结并可继续问答,减少切换成本。\n- 提供统一的多厂商接入层:OpenAI/Gemini + PDF `api.pdf` 中列出的国内外主流兼容接口(Minimax、Kimi/Moonshot、智谱 GLM、DeepSeek、Qwen)。\n- 保留可插入 Zotero 笔记的结构化总结与对话记录,便于检索和复用。\n\n## 用户故事\n- 我选中一篇论文,点击“LLM 总结”,几秒后得到结构化摘要,并能一键写入该条目笔记。\n- 我在 PDF 中选中高亮,提问“这段的核心贡献是什么?”,获得基于高亮上下文的回答。\n- 我能在偏好页配置自己的 API Key/模型/代理,并测试连通性和限流。\n- 我想保留总结/对话历史,下次打开条目可快速查看或刷新。\n\n## 范围\n- Zotero 7 插件;支持主窗口与 Reader 面板。\n- 交互:总结、一问一答、流式输出、插入笔记、历史查看/清除。\n- 内容:元数据 + PDF 文本/高亮提取,分块/截断控制上下文大小。\n- 配置:多 Provider 参数、默认 Prompt、调试日志。\n- 不含:账号体系、本地模型部署。\n\n## 功能需求\n- Provider 统一接口:`summarize`、`chat`(可流式)。支持 OpenAI 兼容协议 + Gemini 原生 + 下列 API:\n - **Minimax (MiniMax-M2)**:`base_url=https://api.minimax.io/v1`,`model=MiniMax-M2` 或 `MiniMax-M2-Stable`,路径 `/chat/completions`(OpenAI 兼容)。\n - **Kimi / Moonshot**:`base_url=https://api.moonshot.ai/v1`,路径 `/chat/completions`,模型 `kimi-latest`、`kimi-k2-*`(含 `kimi-k2-thinking`)。\n - **智谱 GLM(z.ai)**:HTTP POST `https://api.z.ai/api/paas/v4/chat/completions`,`Authorization: Bearer <API_KEY>`,`model=glm-4.6`。\n - **DeepSeek**:`base_url=https://api.deepseek.com`,路径 `/chat/completions`,模型 `deepseek-chat`、`deepseek-reasoner`。\n - **Qwen(通义千问)**:兼容模式 `base_url=https://dashscope-intl.aliyuncs.com/compatible-mode/v1`(国际)或 `https://dashscope.aliyuncs.com/compatible-mode/v1`(北京),路径 `/chat/completions`,模型 `qwen3-max`、`qwen-plus`、`qwen-flash`。\n- 参数支持:API Key、Base URL(可自定义代理)、模型名、超时、最大 tokens、温度、是否流式、是否上传全文/仅元数据/仅高亮。\n- 内容提取:元数据(题目/作者/摘要/标签)+ PDF 文本/高亮;过大时提示降级(仅元数据/高亮)。\n- UI 入口:\n - 右键/工具栏:对选中条目触发“发送到 LLM 总结”。\n - Item Pane / Reader 自定义面板:展示总结、历史,输入框+发送/取消,Provider/模型下拉。\n - 结果操作:复制、刷新、插入到条目笔记(追加 “LLM Summary” 小节)。\n- 流式与状态:支持流式增量渲染;显示加载/错误/取消;并发队列串行化,支持取消。\n- 日志与测试:调试日志开关(默认关,日志不含正文,可选仅记录元数据和错误);偏好页“测试连接”。\n- 国际化:至少中/英字符串占位。\n\n## 非功能需求\n- 性能:常规总结响应目标 < 8 秒;大文档分块;UI 不阻塞主线程。\n- 兼容:Zotero 7;macOS/Windows/Linux。\n- 安全与隐私:API Key 仅本地存储;默认不把正文写入日志;上传全文需显式提示。\n- 可维护性:模块化(提取/LLM/偏好/UI);TypeScript 类型完备;错误分类明确(鉴权/超时/限流/内容过大/网络)。\n\n## 关键接口设计(内部)\n- `extractContent(item, mode)` -> `{ meta, textChunks?, highlights? }`\n- `summarize(payload, options)` -> `summary`(可流式回调)\n- `chat(payload, options)` -> `answer`(可流式)\n- `saveNote(item, content)` -> `noteId`\n- `testConnection(config)` -> `ok | error`\n\n## 配置项(偏好页)\n- Provider 选择:OpenAI / Gemini / Minimax / Kimi(Moonshot) / GLM(z.ai) / DeepSeek / Qwen / 自定义。\n- API Key、Base URL、模型名、超时、最大 tokens、温度、流式开关。\n- 上传范围:全文 / 仅元数据 / 仅高亮。\n- 默认总结 Prompt;调试日志开关;“测试连接”按钮。\n\n## 里程碑(建议)\n- M1:清理模板、完成偏好页、多 Provider 客户端骨架(含上述 API)。\n- M2:PDF/高亮提取、总结/聊天流程、UI 面板和右键入口、流式显示。\n- M3:笔记写入、历史缓存、错误与隐私防护、双语文案。\n- M4:测试与打包发布(`npm run build`/`release`),编写用户指南。\n"}}}}