AI 自动化自媒体写作与一键发布 Chrome 插件
一站式内容生产闭环:热点发现 → 内容抓取 → AI 生成 → 一键发布
| 环境 | 版本要求 | 说明 |
|---|---|---|
| Node.js | ≥ 18.x | 推荐 20.x LTS |
| npm/pnpm | ≥ 9.x | pnpm 更快更省空间 |
| Chrome | ≥ 100 | 支持 MV3 扩展 |
| Docker | ≥ 20.x | 可选,用于容器部署 |
- 热点聚合:知乎热榜、微博热搜、头条热榜一站式查看
- 内容提取:一键提取知乎、微博、头条、小红书文章内容
- AI 生成:三种模式(改写润色/深度重构/融合创作)
- 平台适配:小红书 emoji 风格、公众号长文、知乎问答体
- 一键发布:自动填充到小红书、公众号、知乎发布页
- 管理后台:Web 界面管理文章、设置、发布记录
writepilot/
├── server/ # NestJS 后台服务
│ ├── src/ # 源码(modules: article/ai/publish/settings)
│ ├── prisma/ # 数据库模型(Article, Settings, PublishRecord)
│ └── data/ # SQLite 数据库
├── extension/ # Chrome 插件(Plasmo MV3)
│ ├── src/ # 源码(popup/sidepanel/background/content-scripts)
│ │ ├── contents/ # 内容提取器 + 发布填充脚本
│ │ └── popup/ # 插件弹窗 UI
│ └── build/ # 构建产物
├── admin/ # Web 管理后台(Vite + React + Antd)
│ ├── src/ # 源码(api/pages/layouts)
│ └── index.html # 入口
├── data/ # 数据存储目录
└── docker-compose.yml
┌──────────────────────────────────────────────────────────────────┐
│ 用户交互层 │
├─────────────────────┬─────────────────────┬──────────────────────┤
│ Chrome 插件 │ 管理后台 │ API 接口 │
│ (extension/) │ (admin/) │ (server/) │
├─────────────────────┴─────────────────────┴──────────────────────┤
│ 服务层 │
├──────────────────────────────────────────────────────────────────┤
│ NestJS Server (localhost:3000) │
│ ├─ Article Service (文章 CRUD) │
│ ├─ AI Service (生成/测试/模型列表) │
│ ├─ Publish Service (发布记录管理) │
│ └─ Settings Service (API 配置管理) │
├──────────────────────────────────────────────────────────────────┤
│ 数据层 │
├──────────────────────────────────────────────────────────────────┤
│ SQLite (Prisma ORM) → data/writepilot.db │
├──────────────────────────────────────────────────────────────────┤
│ 外部服务 │
├──────────────────────────────────────────────────────────────────┤
│ OpenAI Compatible API (各平台 AI 服务) │
│ 目标平台 (知乎/微博/头条/小红书/公众号) │
└──────────────────────────────────────────────────────────────────┘
cd writepilot/server
npm install
# 首次运行:初始化数据库
npx prisma generate
npx prisma migrate dev
# 启动服务
npm run start:dev # 开发模式(热重载)
# 或
npm run build && npm run start:prod # 生产模式服务运行在 http://localhost:3000
cd writepilot/admin
npm install
npm run dev管理后台运行在 http://localhost:5173
cd writepilot/extension
npm install
npm run build # 生产构建
# 或
npm run dev # 开发模式(热重载)- 打开 Chrome →
chrome://extensions/ - 开启右上角「开发者模式」
- 点击「加载已解压的扩展程序」
- 选择
writepilot/extension/build/chrome-mv3-prod/目录
# 一键启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f writepilot-server
# 停止服务
docker-compose down服务运行在 http://localhost:3000,数据持久化到 ./data 目录。
注意:Docker 模式仅部署后端服务,Chrome 插件需单独构建安装。
点击插件图标 → 点击 ⚙️ 设置按钮:
| 字段 | 说明 | 示例 |
|---|---|---|
| API 地址 | OpenAI 兼容格式 | https://api.openai.com/v1 |
| API Key | 你的密钥 | sk-xxx |
| 模型 | 模型名称 | gpt-4o, qwen-plus |
常用平台配置:
| 平台 | API 地址 | 模型 |
|---|---|---|
| OpenAI | https://api.openai.com/v1 |
gpt-4o |
| 阿里云灵积 | https://dashscope.aliyuncs.com/compatible-mode/v1 |
qwen-plus |
| 智谱AI | https://open.bigmodel.cn/api/paas/v4 |
glm-4 |
- 点击插件图标
- 输入关键字,选择平台
- 点击搜索,自动打开搜索页
- 在目标文章页点击右下角「M」按钮
- 选择「提取当前文章」
- 打开任意知乎/微博/头条文章页
- 点击右下角浮动按钮「M」
- 选择「提取当前文章」
- 点击插件 → 「历史」标签
- 点击已提取的文章
- 选择生成模式和目标平台
- 点击「生成文章」
- 生成完成后点击「一键发布」
- 自动打开发布页并填充内容
- 检查后点击发布
# 查看文章列表
curl http://localhost:3000/api/articles
# 查看设置
curl http://localhost:3000/api/settingscd writepilot/server
npx prisma studio --port 5555打开 http://localhost:5555 可视化管理数据
数据库文件:writepilot/server/data/writepilot.db
sqlite3 writepilot/server/data/writepilot.db "SELECT * FROM Article;"| 模块 | 方法 | 接口 | 说明 |
|---|---|---|---|
| 设置 | GET | /api/settings |
获取配置 |
| 设置 | PUT | /api/settings |
更新配置 |
| 文章 | GET | /api/articles |
文章列表 |
| 文章 | GET | /api/articles/:id |
文章详情 |
| 文章 | POST | /api/articles |
创建文章 |
| 文章 | DELETE | /api/articles/:id |
删除文章 |
| AI | POST | /api/ai/generate |
生成文章 |
| AI | POST | /api/ai/test |
测试连接 |
| AI | GET | /api/ai/models |
可用模型 |
| 发布 | GET | /api/publish/records |
发布记录 |
| 发布 | POST | /api/publish/create |
创建发布任务 |
cd server
npm install
npm run start:dev # 开发模式(热重载)
npm run build # 编译
npm run prisma:studio # 数据库可视化cd extension
npm install
npm run dev # 开发模式(热重载)
npm run build # 生产构建
npm run package # 打包 .crx 文件cd admin
npm install
npm run dev # 开发模式
npm run build # 生产构建
npm run preview # 预览构建结果cd server
npx prisma migrate dev --name xxx # 创建迁移
npx prisma generate # 生成客户端
npx prisma studio # 打开可视化- 关键字搜索抓取(知乎、微博、头条)
- 热榜聚合展示
- AI 改写生成(三种模式)
- 小红书发布模板 + 一键填充
- 中转服务 API 配置
- 管理后台基础功能
- 公众号发布填充
- 知乎发布填充
- 小红书内容抓取
- 发布记录管理完善
- 图片素材提取
- 内容数据回看分析
- 多账号管理
- 定时发布
- 图片素材管理
- 批量操作支持
详见 功能文档.md
- Fork 本仓库
- 创建功能分支:
git checkout -b feature/xxx - 提交代码:
git commit -m 'feat: xxx' - 推送分支:
git push origin feature/xxx - 创建 Pull Request
代码规范:
- 后端遵循 NestJS 风格,使用 class-validator 校验
- 前端使用 TypeScript,组件命名 PascalCase
- 提交信息遵循 Conventional Commits(feat/fix/docs/style/refactor)
# Windows 查找并结束进程
netstat -ano | findstr :3000
taskkill /PID <PID> /F- 确认后端服务已启动
- 刷新插件(chrome://extensions/ → 刷新按钮)
- 刷新目标网页
- 检查 API 地址是否正确(不要带末尾
/) - 检查 API Key 是否有效
- 检查模型名称是否匹配平台
| 模块 | 技术栈 |
|---|---|
| 后端 | NestJS + Prisma + SQLite |
| 插件 | Plasmo (Chrome MV3) + React |
| 管理后台 | Vite + React + Antd + Zustand |
| AI | OpenAI Compatible API |
MIT