# Article Writer - 文章编写系统 基于 Flask + LLM 的智能文章编写系统,支持主题管理、素材收集、分类标签和大模型生成文章。 ## 功能 - 主题管理:创建、编辑、删除文章主题 - 分类系统:多级分类,每个主题可归属多个分类 - 标签系统:灵活标签,每个主题支持多个标签,支持新建标签 - 素材收集:支持文本素材和图片素材(含Ctrl+V粘贴截图) - Prompt编辑:每个主题可自定义生成提示词,支持历史记录 - 大模型生成:调用 LLM 根据素材自动生成文章 - 文章管理:查看、编辑、删除、复制、下载生成的文章 ## 技术栈 - 后端:Python 3 + Flask + SQLite - 前端:HTML/CSS/JS(Bootstrap 5 暗色主题) - LLM:兼容 OpenAI API 格式的大模型接口 ## 快速开始 ```bash # 安装依赖 pip install flask requests # 配置环境变量 export LLM_URL="https://your-llm-api/v1/chat/completions" export LLM_API_KEY="***" export LLM_MODEL="qwen3.6-plus" # 启动服务 python app.py ``` 访问 http://localhost:19200 ## 配置 通过环境变量或页面配置 LLM 接口: | 环境变量 | 说明 | 默认值 | |---------|------|--------| | LLM_URL | 大模型 API 地址 | - | | LLM_API_KEY | API 密钥 | - | | LLM_MODEL | 模型名称 | qwen3.6-plus | ## 数据结构 - **topics** - 文章主题 - **categories** - 分类(支持多对多关联) - **tags** - 标签(支持多对多关联,自动清理孤立标签) - **topic_categories** - 主题-分类关联表 - **topic_tags** - 主题-标签关联表 - **materials** - 素材(文本/图片) - **articles** - 生成的文章 - **llm_config** - LLM接口配置 - **prompt_history** - Prompt历史记录 ## 项目结构 ``` article-writer/ ├── app.py # 主应用(Flask后端) ├── templates/ │ ├── index.html # 首页(主题列表 + 分类/标签筛选) │ └── topic.html # 主题详情页(素材 + 文章生成 + 分类标签编辑) ├── static/ │ └── uploads/ # 图片上传目录 ├── .env.example # 环境变量示例 └── .gitignore ``` ## API ### 分类 - `GET /api/categories` - 分类列表(含主题计数) - `POST /api/categories` - 创建分类 - `PUT /api/categories/` - 更新分类 - `DELETE /api/categories/` - 删除分类 ### 标签 - `GET /api/tags` - 标签列表(含主题计数) - `POST /api/tags` - 创建标签 - `DELETE /api/tags/` - 删除标签 ### 主题 - `POST /api/topics` - 创建主题(支持 category_ids, tag_ids, new_tags) - `PUT /api/topics/` - 更新主题(支持更新分类和标签关联) ## License MIT