#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 导入新旧实现
from core.contentGen import ContentGenerator as OldContentGenerator
from utils.content_generator import ContentGenerator as NewContentGenerator
def test_both_implementations():
"""测试新旧实现的兼容性"""
# 创建测试文本内容
test_content = """
🌿清明遛娃天花板!悬空古寺+非遗探秘
清明假期带娃哪里玩?泰宁甘露寺藏着明代建筑奇迹!一柱擎天的悬空阁楼+状元祈福传说,让孩子边玩边涨知识✨
🎒行程亮点:
✅ 安全科普第一站:讲解"一柱插地"千年不倒的秘密,用乐高积木模型让孩子理解力学原理
✅ 文化沉浸体验:穿汉服听"叶状元还愿建寺"故事,触摸3.38米粗的"状元柱"许愿
"""
print("=" * 50)
print("测试新旧ContentGenerator实现")
print("=" * 50)
# 创建输出目录
import os
os.makedirs("./test_output", exist_ok=True)
# 测试参数
api_url = "http://localhost:8000/v1" # 替换为实际URL
model_name = "qwenQWQ" # 替换为实际模型
api_key = "EMPTY" # 替换为实际密钥
poster_num = 2 # 生成2个海报配置
# 1. 测试旧实现(现在委托给新实现)
print("\n1. 测试旧实现 (core.contentGen.ContentGenerator)")
old_generator = OldContentGenerator(
model_name=model_name,
api_base_url=api_url,
api_key=api_key,
output_dir="./test_output/old"
)
# 设置生成参数
old_generator.set_model_para(0.7, 0.8, 1.2)
# 运行生成
print("正在使用旧实现生成海报配置...")
old_result = old_generator.run([], poster_num, test_content)
if old_result:
print(f"旧实现成功生成 {len(old_result)} 个配置项")
for i, config in enumerate(old_result):
print(f" 配置 {i+1}: {config.get('main_title')} - {config.get('texts')}")
else:
print("旧实现生成失败")
# 2. 测试新实现
print("\n2. 测试新实现 (utils.content_generator.ContentGenerator)")
new_generator = NewContentGenerator(
output_dir="./test_output/new",
temperature=0.7,
top_p=0.8,
presence_penalty=1.2
)
# 运行生成
print("正在使用新实现生成海报配置...")
new_result = new_generator.run(
[],
poster_num,
test_content,
api_url=api_url,
model_name=model_name,
api_key=api_key
)
if new_result:
print(f"新实现成功生成 {len(new_result)} 个配置项")
for i, config in enumerate(new_result):
print(f" 配置 {i+1}: {config.get('main_title')} - {config.get('texts')}")
else:
print("新实现生成失败")
print("\n3. 比较结果")
if old_result and new_result:
import json
# 格式化输出结果比较
print("\n旧实现结果:")
print(json.dumps(old_result, ensure_ascii=False, indent=2))
print("\n新实现结果:")
print(json.dumps(new_result, ensure_ascii=False, indent=2))
# 结构比较
old_format = [type(config) for config in old_result]
new_format = [type(config) for config in new_result]
print(f"\n结构比较: 旧实现: {old_format}, 新实现: {new_format}")
print(f"数量比较: 旧实现: {len(old_result)}, 新实现: {len(new_result)}")
# 检查所有必要的字段
field_check = True
for result in [old_result, new_result]:
for config in result:
if not all(key in config for key in ["index", "main_title", "texts"]):
field_check = False
break
print(f"字段检查: {'通过' if field_check else '失败'}")
print("\n测试完成!")
if __name__ == "__main__":
test_both_implementations()