210 lines
8.0 KiB
Markdown
Raw Normal View History

2025-04-25 10:11:45 +08:00
# TravelContentCreator
2025-04-21 09:32:29 +08:00
2025-04-25 10:11:45 +08:00
TravelContentCreator是一个用于自动化生成旅游内容和宣传海报的系统。该系统利用AI技术生成景点选题、撰写文章内容并制作相应的宣传海报。
2025-04-21 09:32:29 +08:00
## 功能特点
2025-04-25 10:11:45 +08:00
- 自动生成旅游景点选题(包括目标受众、写作风格等)
- 根据选题生成详细的旅游文章内容
- 为生成的文章制作美观的宣传海报
- 支持多种写作风格和目标受众需求
- 文件模糊匹配功能,增强系统健壮性
- 模块化设计,可单独使用选题、内容生成或海报生成功能
2025-05-10 21:16:22 +08:00
- 内容审核功能,自动检查和修正生成内容与产品资料的匹配度
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
## 目录结构
2025-04-23 16:18:02 +08:00
2025-04-21 09:32:29 +08:00
```
2025-04-25 10:11:45 +08:00
TravelContentCreator/
├── core/ # 核心功能模块
├── utils/ # 工具类和辅助函数
├── genPrompts/ # 生成提示词
│ ├── Style/ # 风格提示词
│ ├── Demand/ # 需求提示词
│ └── Refer/ # 参考提示词
├── SelectPrompt/ # 选题提示词
├── resource/ # 资源文件
├── main.py # 主程序
├── test_topic_content.py # 选题和内容生成测试脚本
├── test_poster.py # 海报生成测试脚本
├── topic_content_config.json # 选题和内容生成配置
├── poster_config.json # 海报生成配置
└── poster_gen_config.json # 主程序配置
2025-04-22 16:31:03 +08:00
```
2025-04-25 10:11:45 +08:00
## 安装
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
1. 克隆仓库
2025-04-23 16:01:18 +08:00
```bash
2025-04-25 10:11:45 +08:00
git clone [仓库URL]
cd TravelContentCreator
2025-04-23 16:01:18 +08:00
```
2025-04-25 10:11:45 +08:00
2. 安装依赖
2025-04-23 16:01:18 +08:00
```bash
2025-04-25 10:11:45 +08:00
pip install -r requirements.txt
2025-04-23 16:01:18 +08:00
```
2025-04-25 10:11:45 +08:00
3. 配置环境
- 确保安装了Python 3.6+
- 配置好AI模型API本系统默认使用QwenAPI
- 准备好必要的素材和资源文件
2025-04-25 10:11:45 +08:00
## 使用说明
2025-04-25 10:11:45 +08:00
### 1. 主程序
2025-04-22 21:57:06 +08:00
2025-04-25 10:11:45 +08:00
主程序可以执行完整的流程,包括选题生成、内容生成和海报生成:
2025-04-22 21:57:06 +08:00
2025-04-25 10:11:45 +08:00
```bash
python main.py [--config CONFIG_PATH] [--run_id RUN_ID] [--topics_file TOPICS_FILE] [--debug]
2025-04-23 16:01:18 +08:00
```
2025-04-22 21:57:06 +08:00
2025-04-25 10:11:45 +08:00
参数说明:
- `--config`: 配置文件路径,默认为`poster_gen_config.json`
- `--run_id`: 自定义运行ID用于区分不同批次的生成结果
- `--topics_file`: 预生成的选题文件路径,如果提供则跳过选题生成步骤
- `--debug`: 启用调试级别日志
2025-04-22 21:57:06 +08:00
2025-04-25 10:11:45 +08:00
### 2. 测试选题和内容生成
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
使用专门的测试脚本运行选题和内容生成模块:
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
```bash
python test_topic_content.py [--config CONFIG_PATH] [--run_id RUN_ID] [--topics_file TOPICS_FILE] [--debug]
2025-04-23 16:01:18 +08:00
```
2025-04-25 10:11:45 +08:00
参数说明:
- `--config`: 配置文件路径,默认为`topic_content_config.json`
- `--run_id`: 自定义运行ID
- `--topics_file`: 预生成的选题文件路径,如果提供则跳过选题生成
- `--debug`: 启用调试级别日志
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
### 3. 测试海报生成
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
使用专门的测试脚本运行海报生成模块:
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
```bash
python test_poster.py --topics_file TOPICS_FILE [--config CONFIG_PATH] [--topic_index TOPIC_INDEX] [--run_id RUN_ID] [--debug]
2025-04-23 16:01:18 +08:00
```
2025-04-25 10:11:45 +08:00
参数说明:
- `--topics_file`: 必需的选题JSON文件路径用于获取海报生成的主题数据
- `--config`: 配置文件路径,默认为`poster_config.json`
- `--topic_index`: 要生成海报的特定选题索引,如果未提供则为所有选题生成海报
- `--run_id`: 自定义运行ID
- `--debug`: 启用调试级别日志
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
## 配置文件说明
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
### 选题和内容生成配置 (topic_content_config.json)
2025-04-23 16:01:18 +08:00
```json
{
2025-04-25 10:11:45 +08:00
"date": "5月15日, 5月16日, 5月17日, 6月1日", // 选题日期
"num": 2, // 生成选题数量
"variants": 1, // 每个选题的变体数量
"topic_temperature": 0.2, // 选题生成的temperature参数
"content_temperature": 0.3, // 内容生成的temperature参数
"model": "qwenQWQ", // 使用的AI模型
"api_url": "http://localhost:8000/v1/", // API地址
"api_key": "EMPTY", // API密钥
2025-05-10 21:16:22 +08:00
"enable_content_judge": true, // 是否启用内容审核功能
2025-04-25 10:11:45 +08:00
"topic_system_prompt": "./SelectPrompt/systemPrompt.txt", // 选题系统提示词路径
"topic_user_prompt": "./SelectPrompt/userPrompt.txt", // 选题用户提示词路径
"content_system_prompt": "./genPrompts/systemPrompt.txt", // 内容系统提示词路径
2025-05-10 21:16:22 +08:00
"content_judger_system_prompt": "./genPrompts/judgerSystemPrompt.txt", // 内容审核系统提示词路径
2025-04-25 10:11:45 +08:00
"prompts_config": [ // 提示词配置
{
"type": "Style", // 风格提示词
"file_path": [...] // 风格提示词文件路径列表
},
{
"type": "Demand", // 需求提示词
"file_path": [...] // 需求提示词文件路径列表
},
...
],
"resource_dir": [ // 资源目录配置
{
"type": "Object", // 对象类型
"file_path": [...] // 对象文件路径列表
},
...
]
2025-04-23 16:01:18 +08:00
}
```
2025-04-25 10:11:45 +08:00
### 海报生成配置 (poster_config.json)
2025-04-23 16:01:18 +08:00
```json
{
2025-04-25 10:11:45 +08:00
"variants": 1, // 每个选题的变体数量
"model": "qwenQWQ", // 使用的AI模型
"api_url": "http://localhost:8000/v1/", // API地址
"api_key": "EMPTY", // API密钥
"poster_content_system_prompt": "./genPrompts/poster_content_systemPrompt.txt", // 海报内容系统提示词路径
"resource_dir": [...], // 资源目录配置
"output_dir": "./result", // 输出目录
"image_base_dir": "...", // 图片基础目录
"poster_assets_base_dir": "...", // 海报素材基础目录
"poster_target_size": [900, 1200], // 海报目标尺寸
"text_possibility": 0.3, // 文本可能性
"img_frame_possibility": 0.7, // 图像框可能性
"text_bg_possibility": 0 // 文本背景可能性
2025-04-23 16:01:18 +08:00
}
```
2025-04-22 21:57:06 +08:00
2025-05-10 21:16:22 +08:00
## 内容审核功能
系统支持内容审核功能,可以自动检查生成的内容是否与产品资料匹配,并进行必要的修正:
1. 启用方式:在配置文件中设置 `"enable_content_judge": true`
2. 审核流程:
- 系统会根据topic中的产品信息获取相关产品资料
- 将生成的内容与产品资料进行比对
- 对不符合产品资料的内容进行修正
- 保留原始内容和修正后的内容
3. 输出格式:无论是否启用内容审核功能,生成的`article.json`文件都会包含以下字段:
- `title`: 文章标题
- `content`: 文章内容
- `tag`/`tags`: 文章标签(两者保持一致)
- `judged`: 是否经过内容审核(布尔值)
- `original_title`: 原始标题未经审核时为null
- `original_content`: 原始内容未经审核时为null
- `judge_analysis`: 审核分析未经审核时为null
2025-04-25 10:11:45 +08:00
## 结果输出
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
生成的结果保存在配置文件中指定的`output_dir`目录下,按照`run_id`组织。每次运行的结果包括:
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
- 选题文件:`tweet_topic_{run_id}.json`
- 选题使用的提示词:`tweet_prompt_{run_id}.txt`
- 文章内容:分目录保存在`{run_id}/{topic_index}_{variant_index}/article.json`
- 海报图像:保存在`{run_id}/{topic_index}_{variant_index}/poster/poster.jpg`
- 拼贴图像:保存在`{run_id}/{topic_index}_{variant_index}/collage_img/`
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
## 自定义扩展
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
系统各部分设计为模块化,您可以:
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
1. 添加新的风格提示词到`genPrompts/Style/`目录
2. 添加新的需求提示词到`genPrompts/Demand/`目录
3. 添加新的景点资源到`resource/Object/`目录
4. 修改AI模型参数以适应不同生成需求
5. 自定义海报生成的尺寸和样式
2025-05-10 21:16:22 +08:00
6. 自定义内容审核的提示词和规则
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
## 注意事项
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
- 确保提示词文件和资源文件的编码为UTF-8
- API密钥应妥善保管建议使用环境变量或外部配置
- 图像生成需要足够的系统资源,建议在性能良好的设备上运行
- 文件模糊匹配功能可以处理一些文件名不完全匹配的情况,但建议尽量保持文件名规范
2025-05-10 21:16:22 +08:00
- 内容审核功能需要配置相应的系统提示词文件
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
## 贡献
2025-04-23 16:01:18 +08:00
2025-04-25 10:11:45 +08:00
欢迎提交问题报告和功能建议,或直接提交代码改进。