# Auto-wechat-writing **Repository Path**: Dwesome/Auto-wechat-writing ## Basic Information - **Project Name**: Auto-wechat-writing - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-07 - **Last Updated**: 2026-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 公众号写作神器 / Auto-Wechat Writing [中文](#中文文档) | [English](#english-documentation) --- ## 中文文档 AI Agent 驱动的一站式内容创作工具。输入主题,直接生成:正文 → 标题摘要 → 封面图。 ### 功能特性 - **风格化写作**:内置写作风格模板,AI 严格遵循风格约束,文章有辨识度 - **智能标题摘要**:基于正文一键批量生成 5 组标题+摘要,供挑选 - **AI 封面生成**:提炼关键内容点,生成 Prompt 并调用文生图模型,一键出图 - **即拿即用**:所有文本一键复制,封面图直接下载 - **流式输出**:正文实时生成,打字机效果流畅 - **OpenAI 兼容**:支持所有 OpenAI 兼容 API(含 GPT、Gemini、Qwen、GLM、DeepSeek等) - **API Key 安全**:密钥仅在浏览器本地存储,不传给服务器 - **自由创建写作风格**:在 `styles/` 目录添加 `.txt` 文件即可扩展写作风格,无需改代码 - **轻量架构**:无前端框架依赖,纯 HTML + Tailwind CSS ### 快速开始 **要求**:Node.js >= 18 ```bash # 1. 克隆项目 git clone https://github.com/lengyi2030/Auto-wechat-writing.git cd Auto-wechat-writing # 2. 安装依赖 npm install # 3. 启动服务 npm start ``` 打开浏览器访问 http://localhost:3000 首次使用会自动弹出 API 设置弹窗,填入 API 配置即可。 开发模式(自动重启): ```bash npm run dev ``` ### API 配置说明 | 配置项 | 文本模型 | 图片模型 | |------|----------|----------| | API URL | OpenAI 兼容 API 地址(如 `https://open.bigmodel.cn/api/paas/v4/chat/completions`) | 文生图 API 地址(如 `https://ark.cn-beijing.volces.com/api/v3/images/generations`) | | API Key | 你的 API Key | 你的 API Key | | 模型名称 | 如 `gpt-5.1`、`qwen3.6-plus`、`deepseek-v3.2` | 如 `doubao-seedream-5-0-260128`、`wan2.7-image` | 文本和图片模型可分别配置不同厂商,互不影响。 > **安全**:设置保存在浏览器 localStorage 中,不会传给服务器。 ### 使用流程 1. **设置 API**:首次访问弹出设置弹窗,填入 API 配置 2. **选择风格**:从下拉菜单选择写作风格 3. **输入主题**:输入你想写的主题或大纲 4. **生成正文**:点击生成,AI 按选定风格流式输出文章 5. **生成标题**:正文完成后一键生成 5 组标题+摘要 6. **生成封面**:AI 提炼关键点并生成封面图 Prompt,选择后生成图片 ### 项目结构 ``` Auto-wechat-writing/ ├── server/ │ ├── index.js # Express 服务入口,端口 3000 │ ├── routes/ │ │ ├── article.js # 正文 SSE 流式生成 (POST /api/article) │ │ ├── titles.js # 标题摘要生成 (POST /api/titles) │ │ └── cover.js # 封面 Prompt + 图片生成 + 代理 │ │ # POST /api/cover/prompts │ │ # POST /api/cover/generate │ │ # GET/POST /api/cover/proxy │ └── services/ │ ├── ai.js # AI API 封装(OpenAI/DashScope/火山引擎适配) │ └── styleLoader.js # 风格文件加载器(带缓存) ├── styles/ # 写作风格 Prompt 模板 │ └── 科技媒体评论.txt ├── public/ # 前端静态文件 │ ├── index.html │ ├── css/style.css │ └── js/app.js ├── .env.example # 环境变量示例 ├── package.json └── README.md ``` ### API 接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/styles` | 获取可用写作风格列表 | | POST | `/api/article` | 流式生成正文(SSE) | | POST | `/api/titles` | 生成 5 组标题+摘要 | | POST | `/api/cover/prompts` | 根据正文生成封面图 Prompt | | POST | `/api/cover/generate` | 根据 Prompt 生成封面图 | | GET | `/api/cover/proxy?url=` | 代理图片显示(解决跨域) | | POST | `/api/cover/proxy` | 代理图片下载 | ### 添加写作风格 在 `styles/` 目录下新建 `.txt` 文件即可。文件名即为风格名称。文件内容应包含结构化的 Prompt 指令(参考 `styles/科技媒体评论.txt`)。 无需改代码,重启服务即可生效。 ### 环境变量 | 变量 | 默认值 | 说明 | |------|--------|------| | `PORT` | `3000` | 服务监听端口 | ### 技术栈 - **后端**:Node.js + Express - **前端**:原生 HTML + Tailwind CSS(无框架依赖) - **AI 接口**:OpenAI 兼容协议(自动适配 DashScope、火山引擎等) - **通信方式**:SSE(Server-Sent Events)流式输出 ### 许可协议 MIT License --- ## English Documentation An AI Agent-powered, all-in-one content creation tool. Enter a topic and generate: full article → titles & summaries → cover image. ### Features - **Stylized Writing**: Built-in writing style templates. AI strictly follows style constraints for distinctive articles - **Smart Titles & Summaries**: One-click batch generation of 5 title + summary pairs based on the article - **AI Cover Generation**: Extracts key points, generates prompts, and calls image generation models - **Ready to Use**: One-click copy for all text, direct download for cover images - **Streaming Output**: Real-time article generation with smooth typewriter effect - **OpenAI Compatible**: Supports all OpenAI-compatible APIs (GPT, Qwen, GLM, DeepSeek, Volcengine, etc.) - **API Key Security**: Keys are stored locally in the browser, never sent to the server - **Extensible Styles**: Add `.txt` files in the `styles/` directory to add new writing styles — no code changes needed - **Lightweight Architecture**: No frontend framework dependencies — pure HTML + Tailwind CSS ### Quick Start **Requirements**: Node.js >= 18 ```bash # 1. Clone the repository git clone https://github.com/lengyi2030/Auto-wechat-writing.git cd Auto-wechat-writing # 2. Install dependencies npm install # 3. Start the server npm start ``` Open your browser and visit http://localhost:3000 On first use, an API settings dialog will appear automatically. Fill in your API configuration to get started. Development mode (auto-restart on file changes): ```bash npm run dev ``` ### API Configuration | Setting | Text Model | Image Model | |---------|-----------|-------------| | API URL | OpenAI-compatible API endpoint (e.g., `https://api.openai.com/v1/chat/completions`) | Image generation API endpoint (e.g., `https://ark.cn-beijing.volces.com/api/v3/images/generations`) | | API Key | Your API key | Your API key | | Model Name | e.g., `gpt-5.1`, `qwen3.6-plus`, `deepseek-v3.2` | e.g., `doubao-seedream-5-0-260128`, `wan2.7-image` | Text and image models can be configured with different providers independently. > **Security**: Settings are saved in the browser's localStorage and are never sent to the server. ### Usage Workflow 1. **Configure API**: On first visit, a settings dialog appears — enter your API configuration 2. **Select Style**: Choose a writing style from the dropdown menu 3. **Enter Topic**: Input the topic or outline you want to write about 4. **Generate Article**: Click generate — AI streams the article in the selected style 5. **Generate Titles**: After the article is complete, generate 5 title + summary pairs with one click 6. **Generate Cover**: AI extracts key points and generates cover image prompts, then generates the image ### Project Structure ``` Auto-wechat-writing/ ├── server/ │ ├── index.js # Express server entry, port 3000 │ ├── routes/ │ │ ├── article.js # Article SSE streaming generation (POST /api/article) │ │ ├── titles.js # Title & summary generation (POST /api/titles) │ │ └── cover.js # Cover prompt + image generation + proxy │ │ # POST /api/cover/prompts │ │ # POST /api/cover/generate │ │ # GET/POST /api/cover/proxy │ └── services/ │ ├── ai.js # AI API wrapper (OpenAI/DashScope/Volcengine compatible) │ └── styleLoader.js # Style file loader with caching ├── styles/ # Writing style prompt templates │ └── 科技媒体评论.txt ├── public/ # Frontend static files │ ├── index.html │ ├── css/style.css │ └── js/app.js ├── .env.example # Environment variable example ├── package.json └── README.md ``` ### API Endpoints | Method | Path | Description | |--------|------|-------------| | GET | `/api/styles` | Get available writing styles | | POST | `/api/article` | Stream article generation (SSE) | | POST | `/api/titles` | Generate 5 title + summary pairs | | POST | `/api/cover/prompts` | Generate cover image prompts from article | | POST | `/api/cover/generate` | Generate cover image from prompt | | GET | `/api/cover/proxy?url=` | Proxy image display (bypass CORS) | | POST | `/api/cover/proxy` | Proxy image download | ### Adding Writing Styles Create a new `.txt` file in the `styles/` directory. The filename becomes the style name. The file content should contain structured prompt instructions (see `styles/科技媒体评论.txt` for reference). No code changes needed — restart the server to apply. ### Environment Variables | Variable | Default | Description | |----------|---------|-------------| | `PORT` | `3000` | Server listening port | ### Tech Stack - **Backend**: Node.js + Express - **Frontend**: Vanilla HTML + Tailwind CSS (no framework dependencies) - **AI Interface**: OpenAI-compatible protocol (auto-adapts to DashScope, Volcengine, etc.) - **Communication**: SSE (Server-Sent Events) for streaming output ### License MIT License