119 Stars 🍴 7 Forks 👀 119 Watchers TypeScript agpl-3.0
GitHub 链接https://github.com/yusixian/moe-copy-ai
项目简介✨ 萌萌哒的 AI 网页数据提取助手 ✨
创建时间2025-02-26
更新时间2026-02-08
📖 README English
# Moe Copy AI 简体中文 | [English](./README.en.md) [![](https://github.com/yusixian/moe-copy-ai/blob/main/assets/docs/logo.webp?raw=true)](https://chromewebstore.google.com/detail/moe-copy-ai/dfmlcfckmfgabpgbaobgapdfmjiihnck) <p align="center"> <b>✨ 萌萌哒的 AI 网页数据提取助手 ✨</b> </p> ## 简介 Moe Copy AI 是一个基于 Plasmo 框架,使用 xsAI SDK 开发的浏览器扩展,能够智能识别并提取网页中的结构化数据,为 AI 模型提供高质量输入。 > 需求很简单,是我想在手机端 kiwi 浏览器访问的时候能够直接复制全文、标题、作者和网页元信息等,排除干扰,然后进行摘要,就类似 [llms.txt](https://llmstxt.org/) 那样。这个项目也算是跟 AI 结合的一个尝试,对代码质量没有很高要求,优先满足需求。 本插件还处于早期开发阶段~欢迎 Star 关注一下。 这个项目也算是跟 AI 结合的一个尝试,所以对代码质量没有很高要求,优先满足需求。并且因为是插件,想尽可能减少包体积(安利 [xsAI](https://github.com/moeru-ai/xsai) 真的超级轻量)和注入网页对原网页的破坏,样式上不做大要求,纯工具性质 side project ~ ## 安装 已上架 [Chrome 应用商店](https://chromewebstore.google.com/detail/moe-copy-ai/dfmlcfckmfgabpgbaobgapdfmjiihnck) | [Firefox 附加组件](https://addons.mozilla.org/zh-CN/firefox/addon/moe-copy-ai/) - 也可以:从 Github 最新 Release 页面获取插件 zip 包 ( chrome-mv3-prod.zip ) ,然后打开浏览器的插件管理页面,启用**开发者模式**,点击“加载已解压的拓展程序”,选择刚刚下载并解压的插件文件夹,就可以完成安装。 ## ✨ 功能 ![example](/assets/docs/example.webp) ![example-2](/assets/docs/example-2.webp) ![example-3](/assets/docs/example-3.webp) ### 弹窗模式 (Popup) - **一键解析**: 点击插件图标或浮动按钮,快速解析当前网页内容 - **实时编辑**: 支持手动编辑提取的内容,满足自定义需求 - **内容实时预览**: 在编辑内容时可实时预览效果 - **全屏预览**: Markdown 内容支持全屏预览模式,提供更佳的阅读体验 - **智能识别**: 自动识别文章主体、标题、作者和发布日期 - **多种抓取模式**: - **选择器模式**: 使用 CSS 选择器精确提取内容,适合博客等结构化网站 - **Readability 模式**: 基于 Mozilla Firefox 阅读模式算法,智能识别文章内容 - **混合模式**: 同时使用两种方式,自动选择最佳结果(推荐) - **双版本输出**: - 原始格式版: 保留 Markdown 格式和原始换行,适合需要保留格式的场景 - 紧凑版: 清理多余空格和换行,使文本更加精简,优化 AI 模型输入 - **智能清理**: 自动去除干扰元素、多余空白和无意义内容 - **字数与 Token 统计**: 显示内容实际字数和估算的 AI 模型 token 数量,分词展示(使用 [gpt-tokenizer](https://github.com/niieani/gpt-tokenizer)) - **移动端适配**: 响应式设计,支持移动设备使用 - **智能图片提取**: 从文章中提取出所有图片及其元信息 - **页面元数据**: 自动提取 og:title、og:description 等元标签信息,以表格形式展示 - **自定义抓取选择器**: 允许用户自定义 CSS 选择器规则 - **AI 内容摘要**: - 通过自由组合抓取到的内容与 AI 对话( `{{content}}` 等) - 支持自定义摘要生成提示词,满足不同摘要需求 - 自动保存摘要历史记录,方便后续查看和参考 - **数据导出功能**: 支持将抓取内容和摘要导出为 JSON 格式,便于数据存储和共享 ### 侧边栏模式 (Side Panel) 🆕 全新的侧边栏界面,提供更高效的工作流程。 - **批量抓取**: 一次性抓取多个链接中的文档内容 - 可视化元素选择器,在页面上直接选择包含链接的区域 - 智能链接提取与管理(添加、编辑、删除、同域名过滤) - 正则过滤:自定义正则或使用 8 个内置预设规则筛选链接 - 分页抓取:支持选择"下一页"按钮,自动翻页收集链接 - 三种抓取策略:Fetch API / 后台标签页 / 当前标签页 - ZIP 打包导出所有抓取结果 - **内容提取**: 选择页面元素,提取内容为 HTML / Markdown / 纯文本 ### 国际化支持 🌍 - **多语言界面**: 完整支持简体中文和英语 - 自动检测浏览器语言,首次使用时自动设置 - 支持手动切换语言(设置页面) - 语言偏好通过 Chrome sync storage 跨设备同步 - **本地化内容**: 所有用户界面、错误信息、AI 提示词均已本地化(452 个翻译键) - **欢迎贡献翻译**: 查看 [贡献指南](./CONTRIBUTING.md#-翻译贡献) 了解如何改进翻译或添加新语言 ### **配置选项** - **抓取模式设置**: 支持选择器模式、Readability 模式或混合模式,根据网站特点选择最佳方案 - **抓取时机设置**: 支持配置为页面加载后自动抓取或仅在用户手动触发时抓取,默认为**仅在用户手动触发时抓取** - **调试面板控制**: 可配置是否显示调试信息面板 - **日志级别设置**: 提供从跟踪到静默的多个日志级别选项 - **AI 提供商设置**: - 基于 [xsAI](https://xsai.js.org/docs/packages/overview) 提供 AI 提供商配置功能 - API 密钥配置: 支持设置 OpenAI 或其他兼容提供商的 API 密钥 - 模型选择: 支持选择和获取可用的 AI 模型列表 - 系统提示词定制: 自定义 AI 摘要的默认行为和风格 ### 待实现功能(画饼) #### AI 增强功能 - 集成 xsai 或其他 AI SDK,提供更智能的内容处理能力 - 支持 AI 驱动的内容分析和理解 - 图片 OCR 功能 & AI 图片 OCR 功能,提取图片中的主要文本信息 #### 更多的自定义 - 为特定网站创建和保存抓取模板 - 支持导入/导出自定义选择器配置 - 提供常用网站的预设配置库 #### 功能优化 - 提供关键信息提取和重点标记 - 结构化数据导出:支持将抓取内容导出为 JSON、Markdown 等格式 - 提供数据清洗和格式转换工具 ## 📋 开发计划 - [x] 实现基础 UI 框架与插件架构 - [x] 开发核心网页内容提取功能 - [x] 添加基本文本格式化与预览功能 - [x] 网页元数据抓取 - [x] 移动端适配 - [x] 完成基础错误处理和日志记录 - [x] 添加简单的用户配置选项 - [x] 自定义抓取的选择器 - [x] 集成 AI 摘要功能 - [x] 添加临时关闭悬浮窗功能 - [x] 添加 AI 摘要历史记录功能 - [x] 支持 JSON 结构化导出 - [x] 侧边栏 (Side Panel) 功能 - [x] 批量抓取多个链接 - [x] 内容提取(多格式输出) - [x] ZIP 打包导出 - [x] i18n 国际化 - [ ] 完善工程化 & CI(一开始只是想让 ai 野蛮发展) - [ ] 简单文档站 - [ ] 增加图片的 AI OCR 功能 ## 开发指南 ### 环境设置 这是一个 [Plasmo](https://docs.plasmo.com/) 编写的浏览器扩展项目。 ```bash # 安装依赖 pnpm i # 或 npm i # 运行开发服务器 pnpm dev # 或 npm run dev ``` 打开浏览器并加载相应的开发构建。例如,对于 Chrome 浏览器(manifest v3),使用: `build/chrome-mv3-dev`。 ### 构建生产版本 ```bash pnpm build # 或 npm run build ``` 这将创建一个生产包,可以打包并发布到各扩展商店。 ## 🤝 贡献 欢迎各种形式的贡献,包括新功能、Bug 修复、文档改进和翻译贡献! ### 翻译贡献 我们欢迎改进现有翻译或添加新语言支持: - 📝 **反馈翻译问题**: 在 [GitHub Issues](https://github.com/yusixian/moe-copy-ai/issues) 创建 issue,使用 "translation" 标签 - 🌐 **提交翻译 PR**: 查看 [贡献指南](./CONTRIBUTING.md#-翻译贡献) 了解详细步骤 - ✨ **添加新语言**: 查看 [i18n 开发者指南](./docs/developer-guide/i18n-guide.mdx) 了解如何添加新语言 ### 代码贡献 1. Fork 项目 2. 从 dev 分支创建特性分支 (`git checkout -b feat/amazing-feature`) 3. 提交更改 (`git commit -m 'feat: add some amazing feature'`) 4. 推送到分支 (`git push origin feat/amazing-feature`) 5. 创建 Pull Request 给 dev 分支 详细贡献指南请查看 [CONTRIBUTING.md](./CONTRIBUTING.md) ## 致谢 - Logo 及样式灵感来源 [xsai](https://github.com/moeru-ai/xsai) (对 萌 A 拙劣的模仿~) ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=yusixian/moe-copy-ai&type=date&legend=top-left)](https://www.star-history.com/#yusixian/moe-copy-ai&type=date&legend=top-left) ## License GNU Affero General Public License version 3 (AGPL-3.0)