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-22 17:51:14 +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-22 17:51:14 +08:00
|
|
|
|
|
2025-04-25 10:11:45 +08:00
|
|
|
|
3. 配置环境
|
|
|
|
|
|
- 确保安装了Python 3.6+
|
|
|
|
|
|
- 配置好AI模型API(本系统默认使用QwenAPI)
|
|
|
|
|
|
- 准备好必要的素材和资源文件
|
2025-04-22 17:51:14 +08:00
|
|
|
|
|
2025-04-25 10:11:45 +08:00
|
|
|
|
## 使用说明
|
2025-04-22 18:14:31 +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
|
|
|
|
欢迎提交问题报告和功能建议,或直接提交代码改进。
|