Ask Selected AI(划词问答)· VS Code 扩展
选中编辑器文字一键提问,复用 Cline 当前对话的消息前缀,命中同一个服务端 KV 缓存,流式回答。历史记录独立保存在本插件,不写入 Cline 会话。
对应用户原来的 Chrome 扩展「划词提问」,这是 VS Code 版本,API 配置由用户自行填写(需与 Cline 一致)。
特性
- ✂️ 编辑器划词 → 右键「针对选中内容提问」→ 自动打开面板并回填引用
- 🚀 与 Cline 命中同一 KV 缓存:请求前缀复用 Cline 当前对话的
api_conversation_history.json(逐字节一致),享受 prompt cache 成本优惠
- 💬 流式逐字回答,可随时停止
- 🔐 API Key 存 VS Code SecretStorage,不落盘明文
- 🕘 历史记录独立存储(globalState),与 Cline 完全隔离
- 📝 Markdown 渲染(marked + DOMPurify 安全过滤)
- ⚙️ 面板内置配置:Provider / BaseURL / 模型 / Key / 截取字数,实时一致性提示
使用方法
安装依赖:
npm install
F5 调试运行(或打包成 VSIX 安装)。
在扩展开发主机中配置:
- 编辑器选中文字 → 右键 →「针对选中内容提问」
- 面板「⚙️ API 配置」中填写:
- 提供商:
deepseek(需与 Cline 一致)
- Base URL:
https://api.deepseek.com/v1(或留空用默认)
- 模型:与 Cline 当前相同(如
deepseek-v4-flash)
- API Key:与 Cline 相同的 Key
- 点「保存配置」
提问:
- 输入问题 → Enter / 发送
- 面板会显示:
已复用 Cline 当前对话(任务 xxx)前缀 → 命中 KV 缓存
- 或
未获取到 Cline 对话前缀,使用独立请求(不会命中共享缓存)
命中 KV 缓存的必要条件
| 条件 |
说明 |
| 1. 消息前缀一致 |
自动满足:插件读取 Cline 当前对话历史作为前缀 |
| 2. Provider 一致 |
面板配置需与 Cline 相同 |
| 3. Base URL 一致 |
面板配置需与 Cline 相同 |
| 4. API Key 一致 |
面板配置需与 Cline 相同(缓存按账号隔离) |
| 5. 模型一致 |
面板配置需与 Cline 相同 |
面板会实时对比你的配置与 Cline 当前配置,不一致时给出警示。
项目结构
├── package.json # 清单:命令/菜单/配置
├── extension.js # 主入口:命令/面板/配置/历史/转发
├── apiClient.js # 流式请求客户端(前缀复用核心)
├── clineConfig.js # Cline 数据读取(只读,绝不写入)
├── media/
│ ├── webview.js # 面板逻辑
│ ├── webview.css # 面板样式
│ └── vendor/ # marked/purify(npm install 自动生成)
├── scripts/
│ ├── copyLibs.js # 依赖注入
│ └── gen_docx.py # 开发总结 docx 生成
├── docx/ # 开发总结(Word)
└── DESIGN.md # 设计方案
说明
- 本插件只读取 Cline 的对话历史用于构建请求前缀,从不修改 Cline 的任何文件。
- 支持提供商:Anthropic / OpenAI / DeepSeek / OpenAI 兼容 / Ollama / Gemini / OpenRouter。
- 降级模式:无 Cline 对话可复用时,使用独立请求(仍可提问,只是不命中共享缓存)。
| |