TravelContentCreator
TravelContentCreator是一个用于自动化生成旅游内容和宣传海报的系统。该系统利用AI技术生成景点选题、撰写文章内容并制作相应的宣传海报。
功能特点
- 自动生成旅游景点选题(包括目标受众、写作风格等)
- 根据选题生成详细的旅游文章内容
- 为生成的文章制作美观的宣传海报
- 支持多种写作风格和目标受众需求
- 文件模糊匹配功能,增强系统健壮性
- 模块化设计,可单独使用选题、内容生成或海报生成功能
目录结构
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 # 主程序配置
安装
- 克隆仓库
git clone [仓库URL]
cd TravelContentCreator
- 安装依赖
pip install -r requirements.txt
- 配置环境
- 确保安装了Python 3.6+
- 配置好AI模型API(本系统默认使用QwenAPI)
- 准备好必要的素材和资源文件
使用说明
1. 主程序
主程序可以执行完整的流程,包括选题生成、内容生成和海报生成:
python main.py [--config CONFIG_PATH] [--run_id RUN_ID] [--topics_file TOPICS_FILE] [--debug]
参数说明:
--config: 配置文件路径,默认为poster_gen_config.json--run_id: 自定义运行ID,用于区分不同批次的生成结果--topics_file: 预生成的选题文件路径,如果提供则跳过选题生成步骤--debug: 启用调试级别日志
2. 测试选题和内容生成
使用专门的测试脚本运行选题和内容生成模块:
python test_topic_content.py [--config CONFIG_PATH] [--run_id RUN_ID] [--topics_file TOPICS_FILE] [--debug]
参数说明:
--config: 配置文件路径,默认为topic_content_config.json--run_id: 自定义运行ID--topics_file: 预生成的选题文件路径,如果提供则跳过选题生成--debug: 启用调试级别日志
3. 测试海报生成
使用专门的测试脚本运行海报生成模块:
python test_poster.py --topics_file TOPICS_FILE [--config CONFIG_PATH] [--topic_index TOPIC_INDEX] [--run_id RUN_ID] [--debug]
参数说明:
--topics_file: 必需的选题JSON文件路径,用于获取海报生成的主题数据--config: 配置文件路径,默认为poster_config.json--topic_index: 要生成海报的特定选题索引,如果未提供则为所有选题生成海报--run_id: 自定义运行ID--debug: 启用调试级别日志
配置文件说明
选题和内容生成配置 (topic_content_config.json)
{
"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密钥
"topic_system_prompt": "./SelectPrompt/systemPrompt.txt", // 选题系统提示词路径
"topic_user_prompt": "./SelectPrompt/userPrompt.txt", // 选题用户提示词路径
"content_system_prompt": "./genPrompts/systemPrompt.txt", // 内容系统提示词路径
"prompts_config": [ // 提示词配置
{
"type": "Style", // 风格提示词
"file_path": [...] // 风格提示词文件路径列表
},
{
"type": "Demand", // 需求提示词
"file_path": [...] // 需求提示词文件路径列表
},
...
],
"resource_dir": [ // 资源目录配置
{
"type": "Object", // 对象类型
"file_path": [...] // 对象文件路径列表
},
...
]
}
海报生成配置 (poster_config.json)
{
"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 // 文本背景可能性
}
结果输出
生成的结果保存在配置文件中指定的output_dir目录下,按照run_id组织。每次运行的结果包括:
- 选题文件:
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/
自定义扩展
系统各部分设计为模块化,您可以:
- 添加新的风格提示词到
genPrompts/Style/目录 - 添加新的需求提示词到
genPrompts/Demand/目录 - 添加新的景点资源到
resource/Object/目录 - 修改AI模型参数以适应不同生成需求
- 自定义海报生成的尺寸和样式
注意事项
- 确保提示词文件和资源文件的编码为UTF-8
- API密钥应妥善保管,建议使用环境变量或外部配置
- 图像生成需要足够的系统资源,建议在性能良好的设备上运行
- 文件模糊匹配功能可以处理一些文件名不完全匹配的情况,但建议尽量保持文件名规范
贡献
欢迎提交问题报告和功能建议,或直接提交代码改进。
Description
Languages
Python
98%
Shell
2%