v2.4
- 新增 search_results 表,搜索结果按主题持久保存 - 搜索API自动保存结果到数据库,获取详情时更新raw_content - 页面加载时自动加载历史搜索结果,按搜索词分组显示 - 支持单条删除和清空所有搜索结果 - 搜索结果数量默认10条,可通过输入框调整(1-20) - 搜索面板标题显示结果计数badge
Article Writer - 文章编写系统
基于 Flask + LLM 的智能文章编写系统,支持主题管理、素材收集、网络搜索、分类标签和大模型生成文章。
功能
- 主题管理:创建、编辑、删除文章主题
- 分类系统:多级分类,每个主题可归属多个分类
- 标签系统:灵活标签,每个主题支持多个标签,支持增删改
- 素材收集:支持文本素材和图片素材(含Ctrl+V粘贴截图)
- 网络搜索:集成 Tavily Search,在主题页面直接搜索网络资料,一键添加为素材
- Prompt编辑:每个主题可自定义生成提示词,支持历史记录
- 大模型生成:调用 LLM 根据素材自动生成文章
- 文章管理:查看、编辑、删除、复制、下载生成的文章
技术栈
- 后端:Python 3 + Flask + SQLite
- 前端:HTML/CSS/JS(Bootstrap 5 暗色主题)
- LLM:兼容 OpenAI API 格式的大模型接口
- 搜索:Tavily Search API
快速开始
# 安装依赖
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
配置
LLM 配置
通过环境变量或页面配置 LLM 接口:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
| LLM_URL | 大模型 API 地址 | - |
| LLM_API_KEY | API 密钥 | - |
| LLM_MODEL | 模型名称 | qwen3.6-plus |
搜索配置
在首页右上角点击「搜索配置」按钮,配置 Tavily Search API Key。
获取 API Key: tavily.com
支持的搜索参数:
- 搜索深度:基础(basic) / 深度(advanced)
- 时间范围:不限 / 最近一天 / 一周 / 一月 / 一年
网络搜索功能
在每个主题的详情页中,提供「网络搜索」面板:
- 输入关键词,选择搜索深度和时间范围
- 点击搜索,结果以列表形式展示(标题、URL、摘要、相关度)
- 点击「查看详情」可获取网页完整内容
- 点击「添加为素材」可将搜索结果(含详细内容)一键添加为文本素材
数据结构
- topics - 文章主题
- categories - 分类(支持多对多关联)
- tags - 标签(支持多对多关联,自动清理孤立标签)
- topic_categories - 主题-分类关联表
- topic_tags - 主题-标签关联表
- materials - 素材(文本/图片)
- articles - 生成的文章
- llm_config - LLM接口配置
- search_config - 搜索接口配置
- prompt_history - Prompt历史记录
- prompt_templates - Prompt模板
项目结构
article-writer/
├── app.py # 主应用(Flask后端)
├── templates/
│ ├── index.html # 首页(主题列表 + 分类/标签筛选 + 搜索配置)
│ └── topic.html # 主题详情页(素材 + 网络搜索 + 文章生成 + 分类标签编辑)
├── static/
│ └── uploads/ # 图片上传目录
├── .env.example # 环境变量示例
└── .gitignore
API
搜索
GET /api/search-config- 获取搜索配置(API Key 脱敏)PUT /api/search-config- 更新搜索配置POST /api/search- 执行网络搜索POST /api/search/detail- 获取搜索结果详细内容
分类
GET /api/categories- 分类列表(含主题计数)POST /api/categories- 创建分类PUT /api/categories/<id>- 更新分类DELETE /api/categories/<id>- 删除分类
标签
GET /api/tags- 标签列表(含主题计数)POST /api/tags- 创建标签PUT /api/tags/<id>- 更新标签DELETE /api/tags/<id>- 删除标签
主题
POST /api/topics- 创建主题(支持 category_ids, tag_ids, new_tags)PUT /api/topics/<id>- 更新主题(支持更新分类和标签关联)
License
MIT
Description
Languages
HTML
73.7%
Python
26.3%