旅游内容自动生成系统
系统概述
旅游内容自动生成系统是一个基于AI的内容创作平台,专注于为旅游景点和产品生成营销内容。系统采用三阶段生成流程:选题生成、内容创作和内容审核,每个阶段都由专门的AI模型处理,并通过配置文件进行精细控制。
系统架构
系统由以下主要模块组成:
核心模块 (core)
- config: 配置管理,负责加载和管理各种配置
- ai: AI代理,处理与大模型的交互
- exception: 异常处理
工具模块 (utils)
- file_io: 文件输入输出,包括ResourceLoader和OutputManager
- prompts: 提示词模板和构建器
- pipeline: 流程管理
- tweet: 内容生成相关模块,包括topic_generator、content_generator、content_judger
功能模块
1. 选题生成 (TopicGenerator)
根据指定月份和节日生成旅游营销选题,考虑目标受众、营销风格和产品特性,输出标准化JSON格式的选题信息。
主要功能:
- 基于时间节点生成选题
- 考虑产品特性和目标受众
- 输出结构化选题数据
2. 内容创作 (ContentGenerator)
基于选题生成小红书风格的营销文案,包含吸引人的标题、详细正文和SEO优化的标签,遵循特定的文案风格和目标受众需求。
主要功能:
- 生成符合平台特性的标题
- 创建详细、有吸引力的正文
- 生成优化的标签
3. 内容审核 (ContentJudger)
审核生成内容是否符合产品资料,检查价格、活动、服务等关键信息的准确性,保留原始内容中的标签和引流语句。
主要功能:
- 检查内容准确性
- 修正不符合产品资料的内容
- 保留原始内容中的关键元素
配置说明
系统通过JSON配置文件管理各组件参数:
系统配置 (system.json)
{
"debug": false,
"log_level": "INFO",
"parallel_processing": false,
"max_workers": 4
}
AI模型配置 (ai_model.json)
{
"model": "qwen-plus",
"api_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"api_key": "your_api_key",
"temperature": 0.3,
"top_p": 0.4,
"presence_penalty": 1.2,
"timeout": 120,
"max_retries": 3
}
资源配置 (resource.json)
{
"resource_dirs": ["."],
"style": {
"paths": ["resource/prompt/Style/攻略风文案提示词.md", "..."]
},
"demand": {
"paths": ["resource/prompt/Demand/亲子向文旅需求.md", "..."]
},
"refer": {
"refer_list": [
{ "path": "resource/prompt/Refer/2025各月节日宣传节点时间表.md", "sampling_rate": 1, "step": "topic" },
{ "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"
}
}
选题生成配置 (topic_gen.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,
"presence_penalty": 1.5
},
"topic": {
"date": "2024-07-20",
"num": 5,
"variants": 1
}
}
内容生成配置 (content_gen.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,
"presence_penalty": 1.2
},
"judger_model": {
"temperature": 0.2,
"top_p": 0.3,
"presence_penalty": 0.8
}
}
使用指南
安装依赖
pip install -r requirements.txt
运行系统
python main.py --config_dir config --run_id custom_run_id
参数说明:
--config_dir: 配置文件目录路径,默认为 "config"--run_id: 运行ID,用于标识本次运行,默认为时间戳格式
输出结果
系统运行后,会在 result/{run_id} 目录下生成以下文件:
topics_generated.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: 审核后的文章内容
系统特性
-
资源加载增强:
- 支持基于文件名(不含后缀)的模糊匹配
- 对JSON文件内容的直接采样
-
引用内容的阶段控制:
- 通过step字段控制在不同阶段(topic/content/judge)使用哪些引用资源
- 通过采样率控制参考内容的使用量
-
模型参数独立配置:
- 为不同生成阶段配置独立的模型参数
- 提高各阶段生成内容的质量和多样性
-
内容审核系统:
- 保留原始内容中的tags标签
- 对价格、活动等关键信息进行审核
-
文件IO系统:
- 灵活的资源加载和输出管理
- 结构化的文件组织方式
目录结构
.
├── main.py # 主程序入口
├── config/ # 配置文件目录
│ ├── ai_model.json # AI模型配置
│ ├── content_gen.json # 内容生成配置
│ ├── resource.json # 资源配置
│ ├── system.json # 系统配置
│ └── topic_gen.json # 选题生成配置
├── core/ # 核心模块
│ ├── ai/ # AI代理
│ ├── config/ # 配置管理
│ └── exception/ # 异常处理
├── utils/ # 工具模块
│ ├── file_io.py # 文件IO
│ ├── pipeline.py # 流程管理
│ ├── prompts.py # 提示词构建
│ └── tweet/ # 内容生成相关
│ ├── content_generator.py # 内容生成器
│ ├── content_judger.py # 内容审核器
│ └── topic_generator.py # 选题生成器
├── resource/ # 资源文件
│ ├── data/ # 数据文件
│ └── prompt/ # 提示词模板
├── result/ # 输出结果
└── requirements.txt # 依赖包
Description
Languages
Python
98%
Shell
2%