#!/usr/bin/env python # -*- coding: utf-8 -*- import json import os import logging from utils.prompt_manager import PromptManager # 设置日志 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) logger = logging.getLogger(__name__) def test_prompt_manager(): """测试新的PromptManager配置方式""" logger.info("=== 开始测试PromptManager ===") # 加载配置文件 try: with open("poster_gen_config.json", "r", encoding="utf-8") as f: config = json.load(f) except Exception as e: logger.error(f"加载配置文件失败: {e}") return # 创建PromptManager实例 try: # 使用新的prompts_config配置 prompt_manager = PromptManager( topic_system_prompt_path=config.get("topic_system_prompt"), topic_user_prompt_path=config.get("topic_user_prompt"), content_system_prompt_path=config.get("content_system_prompt"), prompts_config=config.get("prompts_config"), # 新的配置方式 resource_dir_config=config.get("resource_dir", []), topic_gen_num=config.get("num", 1), topic_gen_date=config.get("date", "") ) logger.info("成功创建PromptManager实例") except Exception as e: logger.error(f"创建PromptManager实例失败: {e}") return # 测试1: 生成topic提示词 try: logger.info("测试1: 生成topic提示词") system_prompt, user_prompt = prompt_manager.get_topic_prompts() if system_prompt and user_prompt: logger.info(f"成功生成topic提示词: 系统提示词 ({len(system_prompt)} 字符), 用户提示词 ({len(user_prompt)} 字符)") else: logger.error("生成topic提示词失败,返回了None") except Exception as e: logger.error(f"测试topic提示词生成时出错: {e}") # 测试2: 测试Style文件加载 try: logger.info("测试2: 测试Style文件加载") styles = ["攻略风文案提示词", "轻奢风文案提示词", "极力推荐风文案提示词", "美食风文案提示词"] for style in styles: content = prompt_manager._get_style_content(style) if content: logger.info(f"成功加载Style文件 '{style}' ({len(content)} 字符)") else: logger.warning(f"未能加载Style文件 '{style}'") except Exception as e: logger.error(f"测试Style文件加载时出错: {e}") # 测试3: 测试Demand文件加载 try: logger.info("测试3: 测试Demand文件加载") demands = ["学生党文旅需求", "情侣向文旅需求", "职场人文旅需求", "亲子向文旅需求", "周边游文旅需求", "夕阳红文旅需求"] for demand in demands: content = prompt_manager._get_demand_content(demand) if content: logger.info(f"成功加载Demand文件 '{demand}' ({len(content)} 字符)") else: logger.warning(f"未能加载Demand文件 '{demand}'") except Exception as e: logger.error(f"测试Demand文件加载时出错: {e}") # 测试4: 测试Refer文件加载 try: logger.info("测试4: 测试Refer文件加载") refer_content = prompt_manager._get_all_refer_contents() if refer_content: logger.info(f"成功加载所有Refer文件内容 ({len(refer_content)} 字符)") else: logger.warning("未能加载任何Refer文件内容") except Exception as e: logger.error(f"测试Refer文件加载时出错: {e}") # 测试5: 测试内容提示词生成 try: logger.info("测试5: 测试内容提示词生成") # 创建一个示例topic mock_topic = { "index": 1, "logic": "这是一个测试的逻辑描述", "object": "中山温泉宾馆", "product": "", "product_logic": "", "style": "轻奢风文案提示词", "style_logic": "应该用轻奢的风格来描述", "target_audience": "职场人文旅需求", "target_audience_logic": "针对职场人的需求" } system_prompt, user_prompt = prompt_manager.get_content_prompts(mock_topic) if system_prompt and user_prompt: logger.info(f"成功生成内容提示词: 系统提示词 ({len(system_prompt)} 字符), 用户提示词 ({len(user_prompt)} 字符)") # 检查提示词中是否包含预期的内容 expected_phrases = [ "Demand Logic", "Object信息", "Style Info", "Target Audience Info", "Refer Info" ] for phrase in expected_phrases: if phrase in user_prompt: logger.info(f"用户提示词中包含 '{phrase}'") else: logger.warning(f"用户提示词中缺少 '{phrase}'") else: logger.error("生成内容提示词失败,返回了None") except Exception as e: logger.error(f"测试内容提示词生成时出错: {e}") logger.info("=== 测试PromptManager完成 ===") if __name__ == "__main__": test_prompt_manager()