2025-04-22 21:57:06 +08:00
|
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
2025-04-22 13:58:08 +08:00
|
|
|
|
# 旅游内容创作工具示例
|
|
|
|
|
|
|
|
|
|
|
|
本目录包含使用旅游内容创作工具各个组件的示例代码。通过这些示例,您可以了解如何调用系统的各个模块,或测试整个工作流程。
|
|
|
|
|
|
|
|
|
|
|
|
## 测试工作流程
|
|
|
|
|
|
|
|
|
|
|
|
`test_workflow.py` 是一个完整的测试脚本,它展示了如何测试整个内容生成流程,包括:
|
|
|
|
|
|
|
|
|
|
|
|
1. 完整流程测试:执行从选题生成到海报制作的全过程
|
|
|
|
|
|
2. 分步骤测试:将流程拆分为独立的步骤,模拟在不同时间或机器上执行的场景
|
|
|
|
|
|
|
|
|
|
|
|
### 使用方法
|
|
|
|
|
|
|
2025-04-22 14:10:00 +08:00
|
|
|
|
确保已经正确配置了项目根目录的 `poster_gen_config.json` 文件。
|
2025-04-22 13:58:08 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 测试完整工作流程(从选题生成到海报制作的全过程)
|
|
|
|
|
|
python examples/test_workflow.py --mode full
|
|
|
|
|
|
|
|
|
|
|
|
# 测试分步骤工作流程(模拟分阶段执行的场景)
|
|
|
|
|
|
python examples/test_workflow.py --mode steps
|
|
|
|
|
|
|
|
|
|
|
|
# 两种测试模式都执行(默认)
|
|
|
|
|
|
python examples/test_workflow.py
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-04-22 14:10:00 +08:00
|
|
|
|
## 分阶段执行示例
|
|
|
|
|
|
|
|
|
|
|
|
这两个脚本演示了如何将工作流程拆分为两个独立的阶段:
|
|
|
|
|
|
|
|
|
|
|
|
1. `run_step1_topics.py`: 仅执行选题生成。
|
|
|
|
|
|
2. `run_step2_content_posters.py`: 加载第一阶段生成的选题结果,然后执行内容和海报生成。
|
|
|
|
|
|
|
|
|
|
|
|
### 使用方法
|
|
|
|
|
|
|
|
|
|
|
|
1. **执行阶段 1 (生成选题)**:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
python examples/run_step1_topics.py
|
|
|
|
|
|
```
|
|
|
|
|
|
运行结束后,脚本会打印出生成的 `Run ID` 和选题文件路径。请记下这个 `Run ID`。
|
|
|
|
|
|
|
|
|
|
|
|
2. **执行阶段 2 (生成内容和海报)**:
|
|
|
|
|
|
将 `<your_run_id>` 替换为你在阶段 1 记下的实际 Run ID。
|
|
|
|
|
|
```bash
|
|
|
|
|
|
python examples/run_step2_content_posters.py <your_run_id>
|
|
|
|
|
|
```
|
|
|
|
|
|
例如:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
python examples/run_step2_content_posters.py 20240515_110000
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-04-22 21:57:06 +08:00
|
|
|
|
## 单组件测试脚本
|
2025-04-22 13:58:08 +08:00
|
|
|
|
|
2025-04-22 21:57:06 +08:00
|
|
|
|
以下脚本用于独立测试系统的各个组件,有助于开发者了解每个组件的功能和使用方法:
|
2025-04-22 13:58:08 +08:00
|
|
|
|
|
2025-04-22 21:57:06 +08:00
|
|
|
|
### 1. 图像处理测试 - `test_image_processing.py`
|
|
|
|
|
|
|
|
|
|
|
|
这个脚本专注于测试图像处理功能,**无需连接AI服务**,可独立测试拼贴图和海报生成功能。
|
2025-04-22 13:58:08 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-04-22 21:57:06 +08:00
|
|
|
|
# 基本用法(同时测试拼贴和海报功能)
|
|
|
|
|
|
python examples/test_image_processing.py
|
2025-04-22 13:58:08 +08:00
|
|
|
|
|
2025-04-22 21:57:06 +08:00
|
|
|
|
# 仅测试拼贴图功能
|
|
|
|
|
|
python examples/test_image_processing.py --collage_only
|
|
|
|
|
|
|
|
|
|
|
|
# 仅测试海报生成功能
|
|
|
|
|
|
python examples/test_image_processing.py --poster_only
|
|
|
|
|
|
|
|
|
|
|
|
# 指定输出目录和配置文件
|
|
|
|
|
|
python examples/test_image_processing.py --output my_test_output --config my_config.json
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
特点:
|
|
|
|
|
|
- 无需连接AI接口,可在离线环境下测试
|
|
|
|
|
|
- 自动创建测试用的彩色图像作为素材
|
|
|
|
|
|
- 测试多种拼贴风格(网格、非对称、胶片条、重叠、马赛克)
|
|
|
|
|
|
- 使用拼贴图作为海报底图,展示完整的图像处理流程
|
|
|
|
|
|
- 详细的日志输出,便于分析问题
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 图片拼贴测试 - `test_simple_collage.py`
|
|
|
|
|
|
|
|
|
|
|
|
这个脚本演示如何使用图片拼贴功能,可以测试不同风格的拼贴效果。
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 基本用法(自动创建测试图片)
|
|
|
|
|
|
python examples/test_simple_collage.py
|
|
|
|
|
|
|
|
|
|
|
|
# 使用自定义图片目录
|
|
|
|
|
|
python examples/test_simple_collage.py --input_dir /path/to/images
|
|
|
|
|
|
|
|
|
|
|
|
# 指定输出目录和生成数量
|
|
|
|
|
|
python examples/test_simple_collage.py --output_dir my_collages --count 5
|
|
|
|
|
|
|
|
|
|
|
|
# 设置自定义尺寸
|
|
|
|
|
|
python examples/test_simple_collage.py --width 1080 --height 1440
|
2025-04-22 13:58:08 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-04-22 21:57:06 +08:00
|
|
|
|
特点:
|
|
|
|
|
|
- 支持测试所有拼贴风格(网格、非对称、胶片条、重叠、马赛克)
|
|
|
|
|
|
- 如果未提供输入图片,会自动生成测试用的彩色图片
|
|
|
|
|
|
- 可以指定随机种子,用于获得可重现的结果
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 海报生成测试 - `test_poster_generator.py`
|
|
|
|
|
|
|
|
|
|
|
|
这个脚本演示如何使用海报生成功能,可以测试不同文案、配置的海报效果。
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 基本用法(使用随机文本和自动创建底图)
|
|
|
|
|
|
python examples/test_poster_generator.py
|
|
|
|
|
|
|
|
|
|
|
|
# 使用自定义底图和输出目录
|
|
|
|
|
|
python examples/test_poster_generator.py --image /path/to/image.jpg --output_dir my_posters
|
|
|
|
|
|
|
|
|
|
|
|
# 使用自定义素材目录和配置文件
|
|
|
|
|
|
python examples/test_poster_generator.py --base_dir /path/to/assets --config poster_config.json
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
特点:
|
|
|
|
|
|
- 支持直接使用现有海报配置文件(由ContentGenerator生成的JSON)
|
|
|
|
|
|
- 自动加载系统配置中的素材路径
|
|
|
|
|
|
- 如果未提供底图,会自动创建渐变测试底图
|
|
|
|
|
|
- 自带多种文案示例,可以测试不同文字效果
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 内容生成测试 - `test_content_generator.py`
|
|
|
|
|
|
|
|
|
|
|
|
这个脚本演示如何使用内容生成功能,生成海报文本配置数据。
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 基本用法(交互式输入)
|
|
|
|
|
|
python examples/test_content_generator.py
|
|
|
|
|
|
|
|
|
|
|
|
# 按提示进行操作,可以指定描述文件和生成数量
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
特点:
|
|
|
|
|
|
- 使用交互式命令行提示用户输入参数
|
|
|
|
|
|
- 自动尝试从系统配置中查找描述文件
|
|
|
|
|
|
- 如果未找到描述文件,会创建临时测试文件
|
|
|
|
|
|
- 生成完成后会将配置保存为JSON文件
|
|
|
|
|
|
|
|
|
|
|
|
### 5. 流式输出测试 - `test_stream.py`
|
|
|
|
|
|
|
|
|
|
|
|
这个脚本演示如何使用AI_Agent的流式输出功能,逐块接收生成内容。
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 运行流式输出测试
|
|
|
|
|
|
python examples/test_stream.py
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
特点:
|
|
|
|
|
|
- 展示如何配置和使用AI_Agent的流式输出接口
|
|
|
|
|
|
- 演示实时输出文本块的处理方式
|
|
|
|
|
|
- 说明如何收集完整响应和估计token数
|
|
|
|
|
|
|
2025-04-22 13:58:08 +08:00
|
|
|
|
## 其他示例
|
|
|
|
|
|
|
2025-04-22 21:57:06 +08:00
|
|
|
|
`generate_poster.py` 是一个简化的海报生成示例,主要用于快速测试特定图片的海报效果。
|
2025-04-22 13:58:08 +08:00
|
|
|
|
|
2025-04-22 21:57:06 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
# 使用默认参数生成海报
|
|
|
|
|
|
python examples/generate_poster.py
|
|
|
|
|
|
|
|
|
|
|
|
# 指定输入图片和输出路径
|
|
|
|
|
|
python examples/generate_poster.py --input_image /path/to/image.jpg --output_path /path/to/output.jpg
|
|
|
|
|
|
```
|
2025-04-22 13:58:08 +08:00
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
|
|
|
|
|
|
- 这些示例依赖于主项目中的配置和资源,确保已正确设置 `poster_gen_config.json`
|
|
|
|
|
|
- 测试脚本会自动调节某些参数(如生成数量)以加快测试速度
|
2025-04-22 21:57:06 +08:00
|
|
|
|
- 实际使用时,您可能需要调整参数以获得更好的效果
|
|
|
|
|
|
- 部分测试脚本需要连接AI模型API,确保您的API配置正确
|