功能模块: - 主题选择器: 基于历史文章和热门趋势自动推荐主题 - 资料收集器: 自动搜索和收集相关资料 - 资料分析器: 深度分析资料内容,提取关键信息 - 大纲生成器: 基于资料自动生成文章大纲 - 文章撰写器: 分段撰写,支持多种文章类型 - 资料池管理: 中间产物持久化存储,建立索引 支持的文字类型: - 技术解析 - 技术文档翻译 - 项目介绍分析 - 综述文章 - 实践教程 - 问题分析 技术栈: - Python 3.x - 大模型API (OpenAI格式) - Requests库 配置的大模型: - URL: http://192.168.2.5:1234/v1 - Model: qwen3.5-4b
189 lines
4.8 KiB
Markdown
189 lines
4.8 KiB
Markdown
# 文章撰写大模型工作流系统
|
||
|
||
> 基于大模型的文章写作自动化工作流系统
|
||
|
||
## 系统概述
|
||
|
||
这是一个完整的文章写作工作流系统,利用大语言模型自动化完成从选题到成文的全过程。
|
||
|
||
### 核心特点
|
||
|
||
- **智能选题**: 基于历史文章和热门趋势自动推荐主题
|
||
- **资料收集**: 自动搜索和收集相关资料
|
||
- **深度分析**: 对每份资料进行全面分析,提取关键信息
|
||
- **资料池**: 中间产物持久化存储,避免重复工作
|
||
- **大纲生成**: 基于资料自动生成文章大纲
|
||
- **智能写作**: 分段撰写,支持多种文章类型
|
||
|
||
## 工作流程
|
||
|
||
```
|
||
1. 确定主题和类型
|
||
├── 分析历史文章
|
||
├── 搜索热门话题
|
||
└── 推荐/选择主题
|
||
|
||
2. 收集相关资料
|
||
├── 生成搜索关键词
|
||
├── 执行网页搜索
|
||
└── 获取页面内容
|
||
|
||
3. 分析资料内容
|
||
├── 逐个深度分析
|
||
├── 提取关键要点
|
||
├── 保存分析产物
|
||
└── 建立索引
|
||
|
||
4. 生成文章大纲
|
||
├── 整合资料摘要
|
||
├── 规划章节结构
|
||
└── 标注资料引用
|
||
|
||
5. 撰写文章
|
||
├── 分章节写作
|
||
├── 添加代码/图表
|
||
└── 输出Markdown文件
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
pip install requests
|
||
```
|
||
|
||
### 运行完整工作流
|
||
|
||
```bash
|
||
# 交互式运行(推荐首次使用)
|
||
python main.py --interactive
|
||
|
||
# 完整自动流程
|
||
python main.py --mode full
|
||
|
||
# 指定主题和类型
|
||
python main.py --mode full --topic "Flash Attention原理解析" --type "技术解析"
|
||
```
|
||
|
||
### 分步运行
|
||
|
||
```bash
|
||
# 仅选择主题
|
||
python main.py --mode topic --interactive
|
||
|
||
# 仅收集资料
|
||
python main.py --mode collect --topic "你的主题"
|
||
|
||
# 仅分析资料
|
||
python main.py --mode analyze
|
||
|
||
# 仅生成大纲
|
||
python main.py --mode outline --topic "你的主题" --type "技术解析"
|
||
|
||
# 仅写作文章
|
||
python main.py --mode write --topic "你的主题" --type "技术解析"
|
||
```
|
||
|
||
## 配置说明
|
||
|
||
编辑 `config/settings.py` 配置大模型API:
|
||
|
||
```python
|
||
LLM_CONFIG = {
|
||
"base_url": "http://192.168.2.5:1234/v1",
|
||
"api_key": "your-api-key",
|
||
"model": "qwen3.5-4b",
|
||
"max_tokens": 4096,
|
||
"temperature": 0.7,
|
||
}
|
||
```
|
||
|
||
## 文章类型
|
||
|
||
| 类型 | 说明 | 目标字数 |
|
||
|------|------|----------|
|
||
| 技术解析 | 深入分析技术原理、实现、应用 | 2000-3000字 |
|
||
| 技术文档翻译 | 翻译官方文档、论文、博客 | 1500-2500字 |
|
||
| 项目介绍分析 | 介绍开源项目、分析架构 | 1500-2500字 |
|
||
| 综述文章 | 汇总领域发展、对比分析 | 2000-3000字 |
|
||
| 实践教程 | 手把手教程,具体步骤 | 1500-2000字 |
|
||
| 问题分析 | 分析技术问题、解决方案 | 1000-1500字 |
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
article-workflow/
|
||
├── main.py # 主入口
|
||
├── config/ # 配置文件
|
||
│ └── settings.py # 系统配置
|
||
├── src/ # 源代码
|
||
│ ├── llm_client.py # LLM客户端
|
||
│ ├── resource_pool.py # 资料池管理
|
||
│ ├── topic_selector.py # 主题选择
|
||
│ ├── resource_collector.py # 资料收集
|
||
│ ├── resource_analyzer.py # 资料分析
|
||
│ ├── outline_generator.py # 大纲生成
|
||
│ └── article_writer.py # 文章写作
|
||
├── data/ # 数据存储
|
||
│ ├── resource_index.json # 资料索引
|
||
│ ├── article_history.json # 文章历史
|
||
│ ├── resource_pool/ # 资料池
|
||
│ └── summaries/ # 分析摘要
|
||
├── output/ # 输出目录
|
||
│ └── articles/ # 生成的文章
|
||
├── assets/ # 资源文件
|
||
│ └── images/ # 图片资源
|
||
└── templates/ # 模板文件
|
||
```
|
||
|
||
## 资料池管理
|
||
|
||
系统维护一个持久的资料池,所有分析产物都会保存:
|
||
|
||
- **资料内容**: 原始网页内容
|
||
- **分析摘要**: 每份资料的深度分析
|
||
- **关键要点**: 提取的核心信息
|
||
- **术语表**: 专业术语解释
|
||
- **图片资源**: 相关图片
|
||
|
||
可以通过关键词索引快速检索历史资料,避免重复工作。
|
||
|
||
## 扩展开发
|
||
|
||
### 添加新的文章类型
|
||
|
||
编辑 `config/settings.py`:
|
||
|
||
```python
|
||
ARTICLE_TYPES = {
|
||
"新类型": {
|
||
"description": "类型描述",
|
||
"structure": ["章节1", "章节2", "章节3"],
|
||
"word_count": 2000,
|
||
},
|
||
}
|
||
```
|
||
|
||
### 自定义资料来源
|
||
|
||
修改 `src/resource_collector.py` 中的 `_search_web` 方法。
|
||
|
||
## 注意事项
|
||
|
||
1. 大模型API需要稳定可用
|
||
2. 搜索功能可能需要代理
|
||
3. 生成的文章需要人工审核
|
||
4. 建议保存中间产物便于迭代
|
||
|
||
## 版本历史
|
||
|
||
### v0.1.0 (2026-04-08)
|
||
- 初始版本
|
||
- 完整工作流实现
|
||
- 资料池管理
|
||
- 多种文章类型支持
|
||
|
||
## License
|
||
|
||
MIT |