一个基于 Manifest V3 的学习辅助插件:自动提取网页中的题目内容,调用大模型 API 给出答案与简要讲解,并支持继续追问。
- 自动识别页面中的题目与选项
- 支持单题分析和批量分析
- 支持追问(连续对话)
- 浮动面板展示分析结果
- 快捷键操作
Alt + S:分析当前页面题目Alt + X:关闭分析面板
- 多模型服务商支持(含 OpenAI 兼容接口)
- SenseNova
- OpenAI
- Claude(Anthropic 原生协议)
- DeepSeek
- Moonshot(Kimi)
- 智谱 GLM
- 通义千问
- 自定义 OpenAI 兼容接口
study-assistant/
├─ manifest.json # 插件清单(MV3)
├─ popup.html # 配置弹窗
├─ popup.css # 弹窗样式
├─ popup.js # 弹窗逻辑(配置保存、连接测试)
├─ question-extractor.js# 题目提取核心(多策略候选与评分去重)
├─ content.js # 页面题目提取、面板展示、交互逻辑
├─ content.css # 页面浮动面板样式
├─ background.js # API 调用与消息中转
├─ lab/ # 本地识题实验站(多排版回归测试)
└─ icons/ # 插件图标
content.js在页面中提取题目和选项。- 提取结果通过
chrome.runtime.sendMessage发送给background.js。 background.js按服务商协议发起请求:- OpenAI 兼容:
/chat/completions - Claude 原生:
/v1/messages
- OpenAI 兼容:
- 返回结果在页面浮动面板中渲染展示,可继续追问。
- 打开 Chrome / Edge 扩展管理页。
- 开启「开发者模式」。
- 点击「加载已解压的扩展程序」。
- 选择本项目目录
study-assistant。
点击插件图标,在弹窗中完成以下配置:
API 提供商API Base URLAPI Key模型名称
然后点击:
保存:写入本地chrome.storage.local测试连接:验证接口可用性
- 打开包含题目的网页。
- 按
Alt + S触发分析(或通过页面交互触发)。 - 在右侧浮动面板查看答案和解释。
- 可在输入框继续追问。
- 按
Alt + X关闭面板。
provider:服务商标识baseUrl:接口地址(会自动清理多余斜杠)apiKey:鉴权密钥model:调用模型名
注意:Claude 使用原生协议头,其他服务商走 OpenAI 兼容格式。
- API Key 仅保存在浏览器本地存储(
chrome.storage.local) - 不会主动上传无关页面数据
- 实际传输内容取决于你在页面中触发的题目提取结果
排查顺序:
- 检查
API Key是否正确 - 检查
Base URL是否可访问 - 检查模型名是否存在
- 检查服务商协议是否匹配(Claude / OpenAI 兼容)
- 当前页面结构可能不在已有识别规则内
- 可刷新页面后重试
- 可在控制台查看 content script 是否正常注入
- 检查系统或浏览器是否占用了
Alt + S/Alt + X - 到浏览器扩展快捷键设置页手动改键
本项目是原生浏览器扩展,无构建步骤,修改后在扩展管理页点击「重新加载」即可生效。
用于快速验证“修复前/修复后”识题成功率对比(10 种排版场景)。
- 在项目根目录运行静态服务(任选其一):
python -m http.server 4173npx http-server -p 4173
- 打开:
http://127.0.0.1:4173/lab/index.html - 点击「运行全部场景」查看:
- 基线成功率(修复前规则)
- 当前成功率(修复后规则)
- 每个场景的通过/失败明细
- 优化更多站点题目提取兼容性
- 增加更细粒度的提示词和答题模式
- 增加题目导出和学习记录能力
本项目采用 MIT License,详见 LICENSE。