English README · 在浏览网页时与 DeepSeek 对话——总结全文、提炼要点、自由问答。
目前 DeepPage 以开发者模式加载(尚未上架 Chrome Web Store):
- 打开
chrome://extensions - 开启右上角 开发者模式
- 点击 加载已解压的扩展程序
- 选择项目目录
安装后首次使用需配置 API Key:
- 点击扩展栏的 DeepPage 图标 → 右键 → 选项
- 选择你的 AI 提供商(DeepSeek / OpenAI / Anthropic 等)
- 输入 API Key(例如从 platform.deepseek.com 获取)
- 设置即自动保存
- 打开任意网页,点击右下角 DeepSeek 图标 展开对话面板
- 点击快捷按钮:总结全文 / 提炼要点 / 翻译
- 或在输入框中自由提问
- 选中网页段落,自动弹出 💬 对此段提问 按钮,快速追问
- 内嵌对话面板 — 点击右下角按钮,在当前页面直接展开聊天气泡;支持全屏模式(header 按钮 / Esc 切换,铺满视口留 24px 边距),适合深入长对话
- 注入状态指示 — 悬浮按钮图标随当前配置的 AI 提供商切换,悬停可见完整「提供商 · 模型」,切换配置实时刷新
- 一键快捷操作 — 可自定义的快捷按钮,默认支持总结全文、提炼要点、翻译;选项页支持拖拽排序调整按钮顺序
- 全文理解 — 自动提取页面正文作为对话上下文
- 对话记忆 — 同一页面保持完整聊天历史,关闭面板不丢失
- 聊天历史 — 自动保存所有对话记录,历史列表随时回顾/切换/删除/重命名,支持关键词搜索(匹配标题或消息内容);首轮回复后自动生成 AI 标题
- 页面上下文保存 — 对话附带页面内容,重启面板上下文不丢
- 复制回复 — AI 回复气泡 hover 显示复制按钮,一键复制到剪贴板
- 流式输出 — AI 回复逐 token 实时显示,打字机效果无需等待完整响应;可在选项页关闭流式(兼容仅支持非流式响应的 API)
- 流式渲染优化 — rAF 帧合并 + 长文本降频,超长回复依然流畅不卡顿
- 选中文本提问 — 选中页面段落自动弹出浮动按钮,以网页内容为背景结合 AI 知识解释选中内容
- 对话上下文裁剪 — 自动裁剪最早的消息轮次(默认 20 轮),避免超出模型 token 限制,选项页可自定义
- 页面内容截断可配置 — 发送给 AI 的页面正文最大字符数可调(默认 15000,范围 2000-50000),长页面不再一刀切
- 一键清除上下文 — 面板标题栏清除按钮,保留最新消息,清空历史轻松重置对话
- 对话导出 — 导出按钮支持复制 Markdown / 复制纯文本 / 下载 .md 文件 / 下载 PDF(气泡截图式 A4,中文友好)/ 下载 Word 文档(标准 .docx,代码块等宽样式),含页面标题和 URL;纯文本导出自动剥离 Markdown 语法
- 操作反馈 Toast — 导出 PDF/Word 成功与失败、复制成功、清除上下文、设置保存、API 测试均有即时 Toast 提示(SweetAlert2),失败不再静默
- 可拖拽 / 可调整大小 — 面板位置随意拖动,大小自由缩放,初始垂直居中
- Markdown 渲染 — 对话回复支持标题、列表、表格、代码块、引用、任务列表等完整 GFM(基于 marked)
- 多语言 — 内置 10 种语言(中文/English/日本語/한국어/Español/Français/Deutsch/Русский/Tiếng Việt),面板和选项页均可切换
- Dark Mode — 自动适配系统暗色主题,面板和选项页均可手动切换
- 多 API 格式 — 支持 OpenAI 兼容接口(DeepSeek、Ollama、Groq 等)和 Anthropic 原生接口
- 自定义接口地址 — 可设置任意 Base URL,自由对接自部署或第三方服务(内置提供商域名均已授权,自部署服务需允许浏览器跨域请求)
- 站点黑名单 — 指定不想使用 DeepPage 的网站(选项页「站点访问」):支持精确域名 / 通配子域名 / 端口 / 端口区间,
#注释;「禁用所有本地地址」一键屏蔽 localhost、127.0.0.1 等本地开发地址;保存即时生效
- 插件仅读取当前网页的文本内容(不包含图片、样式、脚本)
- 网页内容仅用于向你所选的 AI 提供商 API 发送请求,不会上传到其他第三方
- 使用你自己的 API Key,数据不经过任何第三方中转
┌──────────────────────┐ chrome.runtime ┌──────────────────────┐
│ Content Script │ ──────────────────→│ Service Worker │
│ (Inline Chat UI) │ │ (API Calls) │
│ Extract Content │ ←──────────────────│ Fetch Response │
│ User Interaction │ │ api.deepseek.com │
└──────────────────────┘ └──────────┬───────────┘
│
POST /v1/chat/completions
│
┌──────▼──────┐
│ DeepSeek │
│ Official │
│ API │
└─────────────┘
- 直接调用 DeepSeek 官方 API(标准 OpenAI 兼容接口)
- 支持
deepseek-v4-flash等 DeepSeek 模型(模型名可在选项页自定义) - 无需隐藏标签页、无需处理 PoW 反爬
纯原生 Chrome Extension(Manifest V3),无构建步骤。
git clone https://github.com/daxmate/deeppage.git在 chrome://extensions → 加载已解压的扩展程序 → 选择项目目录。
项目内置 Playwright 端到端测试框架(mock 服务器模拟 OpenAI 兼容 API,无需真实 Key):
npm install
npm test # 自动运行 i18n 校验 + 40 个 E2E 用例完整开发指南(添加 API 提供商 / 写测试 / i18n)见 docs/DEVELOPMENT.md
├── background/ # Service Worker(API 调用)
│ └── background.js
├── content/ # 内容脚本(注入网页的面板 UI)
│ ├── content.js # 入口(启动面板)
│ ├── sidebar.js # 面板 UI + 拖拽 + 选中按钮
│ ├── chat.js # 对话管理 + API 调用 + 导出
│ ├── spa-patch.js # SPA 导航补丁(主世界,清理选中按钮)
│ └── content.css # 聊天面板样式(manifest 自动注入)
├── options/ # 设置页面
│ ├── options.html
│ ├── options.css
│ └── options.js
├── js/ # 共享模块
│ ├── i18n.js # 多语言加载器(数据在 i18n-data/)
│ ├── utils.js # 工具函数
│ ├── providers.js # API 提供商配置(单一数据源,background/options 共享)
│ └── provider-icons.js # 提供商图标映射(悬浮按钮状态指示)
├── lib/ # 第三方依赖
│ ├── marked.umd.min.js # Markdown 渲染引擎(marked v15)
│ ├── html2pdf.bundle.min.js # PDF 导出
│ └── docx.bundle.min.js # Word 导出(docx.js,标准 .docx)
├── i18n-data/ # 翻译数据(标准 messages.json 格式,10 种语言)
│ └── <语言>.json
├── _locales/ # Chrome 标准 i18n 目录(default_locale,供 manifest 国际化)
│ └── zh_CN/messages.json
├── tests/ # Playwright E2E 测试(40 个用例)
│ ├── mock-server.js # OpenAI 兼容 mock API
│ └── fixtures.mjs # 扩展 context / storage / mock 控制 fixture
├── scripts/
│ ├── check-i18n.mjs # i18n 校验(i18n-data 结构/空值/引用)
│ └── migrate-i18n.mjs # 旧版 TRANSLATIONS → i18n-data 一次性迁移
├── manifest.json # 扩展配置
├── icons/ # DeepSeek 图标
└── .github/workflows/ # CI 发布配置(push tag 自动打包发版)
- 新建
i18n-data/<code>.json,key 集合与现有语言完全一致(可复制i18n-data/zh_CN.json后逐个翻译) - 在
js/i18n.js的LANGUAGES数组添加语言显示名(语言选择器用) - 如需浏览器自动检测,更新
detectLanguage()
修改后运行 npm run check:i18n 校验 10 个语言文件 key 集合一致(npm test 也会自动执行)。
欢迎提交 Issue 或 Pull Request!参与前请先了解以下约定:
- 先对齐思路再动手:较大的改动先说明方案再写代码
- 不造轮子:通用需求优先用成熟方案(如 marked 做 markdown)
- 测试覆盖:新功能/修复尽量补 E2E 用例,改菜单类多分支功能时每个分支都要覆盖
- 发版必更日志:CHANGELOG.md + GitHub Release notes 双语
- i18n:新增 UI 文案必须补全 10 种语言,跑
npm run check:i18n
完整开发指南(添加 API 提供商 / 写测试 / i18n)见 docs/DEVELOPMENT.md
这个扩展最初是写给自己的 —— 浏览网页时想随时和 DeepSeek 聊几句,于是就有了它。
由 daxmate 维护,如果觉得好用,欢迎 Star,或在 Issues 里聊聊你的想法。
MIT