201 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 旅游内容创作工具 (Travel Content Creator)
这是一个基于AI的旅游内容自动生成工具可以根据景点信息自动生成高质量的旅游推文和宣传海报。
## 功能特点
- **自动选题生成**:根据提供的景点信息自动生成吸引人的旅游选题
- **内容创作**:基于选题自动生成文字内容,包括标题和正文
- **海报制作**:结合景点图片和生成的文字内容,自动创建精美的宣传海报
- **批量处理**:支持一次性生成多个选题和多个变体内容
- **模块化设计**:各功能模块独立,可单独使用或组合使用
## 安装
### 环境要求
- Python 3.6+
- 依赖库安装:
```bash
# 安装依赖库
pip install numpy pandas opencv-python pillow
```
### 项目依赖项
- OpenCV (cv2):图像处理
- NumPy数据操作
- Pandas数据处理
- PIL (Pillow):图像处理和绘制
## 目录结构
- `core/`: 核心功能模块
- `ai_agent.py`: AI代理接口
- `topic_parser.py`: 选题解析器
- `contentGen.py`: 内容生成器
- `posterGen.py`: 海报生成器
- `simple_collage.py`: 图片拼贴工具
- `utils/`: 工具函数
- `resource_loader.py`: 资源加载器
- `tweet_generator.py`: 推文生成工具
- `genPrompts/`: 提示词模板
- `systemPrompt.txt`: 系统提示词
- `Style/`: 风格提示词
- `Refer/`: 参考提示词
- `Demand/`: 需求提示词
- `SelectPrompt/`: 选题提示词
- `resource/`: 景点资源信息
- `examples/`: 使用示例
- `result/`: 输出结果保存目录
## 使用方法
1. 准备景点资源信息,放入`resource/Object/`目录中
2. 准备景点图片资源,放入图片目录中
3. 复制`example_config.json``poster_gen_config.json`并进行配置
4. 运行主程序:
```bash
python main.py
```
## 配置说明
必须配置项:
- `num`: 生成选题数量
- `model`: 使用的大语言模型
- `api_url`: API调用地址
- `api_key`: API密钥
- `resource_dir`: 景点资源信息路径
- `prompts_dir`: 提示词目录
- `output_dir`: 输出结果保存路径
- `variants`: 每个选题生成的变体数量
- `image_base_dir`: 图片资源根目录
- `topic_system_prompt`: 选题生成系统提示词路径
- `topic_user_prompt`: 选题生成用户提示词路径
- `content_system_prompt`: 内容生成系统提示词路径
可选配置项:
- `date`: 日期标记(默认为当前日期)
- `topic_temperature`: 选题生成的创意度参数默认0.2
- `content_temperature`: 内容生成的创意度参数默认0.3
- `camera_image_subdir`: 相机图片子目录名(默认"相机"
- `modify_image_subdir`: 修改图片子目录名(默认"modify"
- `poster_target_size`: 海报尺寸 [宽, 高](默认[900, 1200]
项目提供了一个示例配置文件 `example_config.json`,可以复制并根据需要修改:
```bash
# 复制示例配置
cp example_config.json poster_gen_config.json
# 根据自己的需求修改配置
nano poster_gen_config.json
```
配置文件示例:
```json
{
"date": "5月15日",
"num": 5,
"model": "qwen",
"api_url": "http://your-api-endpoint/v1/completions",
"api_key": "your-api-key",
"topic_system_prompt": "./SelectPrompt/systemPrompt.txt",
"topic_user_prompt": "./SelectPrompt/userPrompt.txt",
"content_system_prompt": "./genPrompts/systemPrompt.txt",
"resource_dir": [
{
"type": "Object",
"num": 3,
"file_path": [
"./resource/Object/景点信息-泰宁古城.txt",
"./resource/Object/景点信息-尚书第.txt",
"./resource/Object/景点信息-明清园.txt"
]
}
],
"prompts_dir": "./genPrompts",
"output_dir": "./result",
"image_base_dir": "/path/to/your/image/directory",
"camera_image_subdir": "相机",
"modify_image_subdir": "modify",
"variants": 3,
"topic_temperature": 0.2,
"content_temperature": 0.3,
"poster_target_size": [900, 1200]
}
```
## 项目流程
整个内容生成流程分为以下几个独立步骤:
1. **选题生成**使用AI根据景点信息生成多个选题方向
2. **内容生成**:根据选题生成具体的旅游推文内容
3. **海报生成**:使用景点图片和生成的文本内容创建海报
每个步骤都有独立的函数处理,也可以作为整体流程一次执行。
## 开始使用
### 1. 准备景点信息文件
`resource/Object/`目录中创建景点信息文件,例如`景点信息-泰宁古城.txt`
```
景点名称:泰宁古城
位置:福建省三明市泰宁县
简介:泰宁古城始建于宋代,是福建省保存较为完好的古代县城之一,具有悠久的历史和丰富的文化遗产。
特色:古城墙、古街巷、古民居、古牌坊等历史建筑保存完好。
```
### 2. 准备图片资源
将景点的高质量图片保存在配置的图片目录中,符合以下结构:
```
image_base_dir/
├── 相机/ (camera_image_subdir)
│ ├── 泰宁古城/
│ │ ├── 图片1.jpg
│ │ ├── 图片2.jpg
│ │ └── description.txt (可选描述文件)
│ └── 其他景点/
└── modify/ (modify_image_subdir)
├── 泰宁古城/
│ ├── 图片1.jpg
│ ├── 图片2.jpg
│ └── ...
└── 其他景点/
```
### 3. 配置文件
复制并修改`example_config.json``poster_gen_config.json`,确保:
- 设置正确的API信息
- 配置景点资源文件路径
- 设置图片资源根目录
### 4. 运行生成流程
执行主程序,系统将自动生成选题、内容和海报:
```bash
python main.py
```
生成的结果将保存在配置的`output_dir`目录中。
## 示例
查看`examples`目录中的示例代码,了解如何使用本工具的各个组件。
## 注意事项
- 确保已安装所有依赖库
- 图片目录结构需要按照配置文件中的规范组织
- AI生成内容质量取决于提供的景点信息质量和提示词设计
- 检查您的API密钥和URL配置是否正确