# 旅游内容自动生成系统 - 使用指南

## 1. 系统概述

旅游内容自动生成系统是一个基于AI的内容创作平台，专注于为旅游景点和产品生成营销内容。系统采用三阶段生成流程：选题生成、内容创作和内容审核，每个阶段都由专门的AI模型处理，并通过配置文件进行精细控制。

## 2. 环境准备

### 系统要求
- Python 3.8+
- 足够的内存（推荐8GB以上）
- 互联网连接（用于API调用）

### 安装依赖
```bash
# 克隆仓库
git clone [仓库地址]
cd [仓库名称]

# 安装依赖包
pip install -r requirements.txt
```

## 3. 配置系统

系统通过JSON配置文件进行控制，所有配置文件位于`config`目录下：

### 3.1 AI模型配置 (ai_model.json)

```json
{
    "model": "qwen-plus",        // 使用的模型名称
    "api_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",  // API地址
    "api_key": "your_api_key",   // 替换为您的API密钥
    "temperature": 0.3,          // 生成多样性控制
    "top_p": 0.4,                // 采样控制
    "presence_penalty": 1.2,     // 重复惩罚
    "timeout": 120,              // API超时时间（秒）
    "max_retries": 3             // 最大重试次数
}
```

> **重要提示**: 请替换`your_api_key`为您的实际API密钥。

### 3.2 选题生成配置 (topic_gen.json)

```json
{
    "topic_system_prompt": "resource/prompt/generateTopics/system.txt",  // 系统提示路径
    "topic_user_prompt": "resource/prompt/generateTopics/user.txt",      // 用户提示路径
    "model": {
        "temperature": 0.2,      // 选题生成的温度参数
        "top_p": 0.3,            // 选题生成的top_p参数
        "presence_penalty": 1.5   // 选题生成的重复惩罚参数
    },
    "topic": {
        "date": "2024-07-20",    // 选题目标日期
        "num": 5,                // 生成选题数量
        "variants": 1            // 每个选题的变体数量
    }
}
```

### 3.3 内容生成配置 (content_gen.json)

```json
{
    "content_system_prompt": "resource/prompt/generateContent/system.txt",  // 内容生成系统提示
    "content_user_prompt": "resource/prompt/generateContent/user.txt",      // 内容生成用户提示
    "judger_system_prompt": "resource/prompt/judgeContent/system.txt",      // 审核系统提示
    "judger_user_prompt": "resource/prompt/judgeContent/user.txt",          // 审核用户提示
    "enable_content_judge": true,  // 是否启用内容审核
    "model": {
        "temperature": 0.3,        // 内容生成温度参数
        "top_p": 0.5,              // 内容生成top_p参数
        "presence_penalty": 1.2     // 内容生成重复惩罚参数
    },
    "judger_model": {
        "temperature": 0.2,        // 内容审核温度参数
        "top_p": 0.3,              // 内容审核top_p参数
        "presence_penalty": 0.8     // 内容审核重复惩罚参数
    }
}
```

### 3.4 资源配置 (resource.json)

```json
{
    "resource_dirs": ["."],       // 资源基础目录
    "style": {
        "paths": [                // 文案风格文件路径
            "resource/prompt/Style/攻略风文案提示词.md",
            "resource/prompt/Style/极力推荐风文案提示词.md"
        ]
    },
    "demand": {
        "paths": [                // 用户需求文件路径
            "resource/prompt/Demand/亲子向文旅需求.md",
            "resource/prompt/Demand/周边游文旅需求.md"
        ]
    },
    "refer": {
        "refer_list": [           // 参考资料配置
            { 
                "path": "resource/prompt/Refer/2025各月节日宣传节点时间表.md", 
                "sampling_rate": 1,    // 采样率，1表示100%使用
                "step": "topic"        // 使用阶段：topic/content/judge
            },
            { 
                "path": "resource/prompt/Refer/标题参考格式.json", 
                "sampling_rate": 0.25, 
                "step": "content" 
            },
            { 
                "path": "resource/prompt/Refer/正文范文参考.json", 
                "sampling_rate": 0.5, 
                "step": "content" 
            }
        ]
    },
    "object": {
        "paths": [                // 景点对象文件路径
            "resource/data/Object/天津冒险湾.txt"
        ]
    },
    "product": {
        "paths": [                // 产品信息文件路径
            "resource/data/Product/天津冒险湾-2大2小套票.txt"
        ]
    },
    "output_dir": {
        "base_dir": "result"      // 输出目录
    }
}
```

### 3.5 系统配置 (system.json)

```json
{
    "debug": false,              // 是否开启调试模式
    "log_level": "INFO",         // 日志级别
    "parallel_processing": false, // 是否启用并行处理
    "max_workers": 4             // 最大工作线程数
}
```

## 4. 运行系统

### 4.1 基本运行命令

```bash
python main.py
```

这将使用默认配置运行系统。

### 4.2 自定义运行参数

```bash
python main.py --config_dir custom_config --run_id my_run_20240601
```

参数说明:
- `--config_dir`: 配置文件目录路径，默认为 "config"
- `--run_id`: 运行ID，用于标识本次运行，默认为时间戳格式

## 5. 输出结果

系统运行后，会在 `result/{run_id}` 目录下生成以下文件:

- `topics_generated.json`: 生成的选题列表（JSON格式）
- `topics_generated.txt`: 人类可读的选题列表（文本格式）
- 每个选题的子目录 `topic_{index}`:
  - `content_system_prompt.txt`: 内容生成的系统提示
  - `content_user_prompt.txt`: 内容生成的用户提示
  - `content_raw_response.txt`: AI返回的原始响应
  - `article.json`: 生成的文章内容
  - `judger_system_prompt.txt`: 审核的系统提示（如果启用审核）
  - `judger_user_prompt.txt`: 审核的用户提示（如果启用审核）
  - `judger_raw_response.txt`: 审核的原始响应（如果启用审核）
  - `article_judged.json`: 审核后的文章内容（如果启用审核）

## 6. 资源文件准备

### 6.1 提示词模板

系统使用以下提示词模板：

- **选题生成**:
  - `resource/prompt/generateTopics/system.txt`: 选题生成系统提示
  - `resource/prompt/generateTopics/user.txt`: 选题生成用户提示

- **内容生成**:
  - `resource/prompt/generateContent/system.txt`: 内容生成系统提示
  - `resource/prompt/generateContent/user.txt`: 内容生成用户提示

- **内容审核**:
  - `resource/prompt/judgeContent/system.txt`: 内容审核系统提示
  - `resource/prompt/judgeContent/user.txt`: 内容审核用户提示

### 6.2 风格和需求文件

- **风格文件** (`resource/prompt/Style/`):
  - 每个文件描述一种文案风格
  - 例如：`攻略风文案提示词.md`, `极力推荐风文案提示词.md`

- **需求文件** (`resource/prompt/Demand/`):
  - 每个文件描述一种用户需求
  - 例如：`亲子向文旅需求.md`, `周边游文旅需求.md`

### 6.3 参考资料文件

- **参考资料** (`resource/prompt/Refer/`):
  - 节日时间表：`2025各月节日宣传节点时间表.md`
  - 标题参考：`标题参考格式.json`
  - 正文参考：`正文范文参考.json`

### 6.4 产品和景点数据

- **景点数据** (`resource/data/Object/`):
  - 每个文件包含一个景点的详细信息
  - 例如：`天津冒险湾.txt`

- **产品数据** (`resource/data/Product/`):
  - 每个文件包含一个产品的详细信息
  - 例如：`天津冒险湾-2大2小套票.txt`

## 7. 常见问题解答

### 7.1 系统运行失败

**问题**: 系统运行时出现错误或无法生成内容。

**解决方案**:
1. 检查API密钥是否正确配置
2. 检查网络连接是否正常
3. 查看日志输出，定位具体错误
4. 确保所有资源文件路径正确且文件存在

### 7.2 生成内容质量不佳

**问题**: 生成的内容质量不符合预期。

**解决方案**:
1. 调整模型参数（temperature、top_p、presence_penalty）
2. 改进提示词模板
3. 提供更高质量的参考资料
4. 确保产品和景点信息详尽准确

### 7.3 审核功能不生效

**问题**: 内容审核功能似乎没有生效。

**解决方案**:
1. 检查`content_gen.json`中的`enable_content_judge`是否设为`true`
2. 确保审核提示词模板存在且路径正确
3. 检查日志中是否有审核相关的错误信息

### 7.4 如何添加新的景点或产品

**步骤**:
1. 在`resource/data/Object/`目录下创建新的景点文件
2. 在`resource/data/Product/`目录下创建新的产品文件
3. 更新`resource.json`中的`object.paths`和`product.paths`数组
4. 重新运行系统

### 7.5 如何自定义生成内容的风格

**步骤**:
1. 在`resource/prompt/Style/`目录下创建新的风格文件
2. 更新`resource.json`中的`style.paths`数组
3. 在选题生成时，系统会自动考虑新添加的风格

## 8. 高级使用技巧

### 8.1 调整模型参数

不同的内容类型可能需要不同的模型参数：
- 高`temperature`（0.7-1.0）：更有创意但可能不够精确
- 低`temperature`（0.1-0.3）：更精确但可能缺乏创意
- 高`presence_penalty`：减少重复内容
- 低`top_p`：更保守的输出

### 8.2 参考内容采样率调整

通过调整`sampling_rate`参数，可以控制参考内容的使用量：
- `1.0`：全部使用
- `0.5`：使用约50%
- `0.25`：使用约25%

### 8.3 自定义提示词模板

可以根据需要修改提示词模板，但请确保：
1. 保持JSON输出格式一致
2. 不要改变关键指令
3. 测试修改后的效果

### 8.4 批量生成内容

对于需要批量生成内容的场景，可以：
1. 准备多个景点和产品数据
2. 编写脚本循环调用主程序
3. 为每次运行指定不同的`run_id`

## 9. 联系与支持

如有问题或需要支持，请联系系统管理员或开发团队。 