148 lines
7.1 KiB
Python
148 lines
7.1 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import requests
|
|
import json
|
|
from utils.file_io import process_llm_json_text
|
|
|
|
def test_final_integration():
|
|
"""最终整合测试 - 展示完整的纯搜索整合功能"""
|
|
|
|
url = "http://localhost:2714/api/v1/content-integration/integrate"
|
|
|
|
# 测试数据 - 使用平级字段结构
|
|
test_data = {
|
|
"keywords": ["馥桂萌宠园攻略"],
|
|
"cookies": "abRequestId=873258ba-49fe-530b-9c07-529e7871508d; webBuild=4.72.0; xsecappid=xhs-pc-web; a1=19808118ec0gxnuh5mtpv8o8aepgp2m65bpbtiizn30000193947; webId=3f4bd516682e25b71cdd139a11b4d896; web_session=040069b295652fcb5b6e1389413a4be4606547",
|
|
# 搜索配置参数(平级)
|
|
"sort_type": 2, # 最多点赞
|
|
"note_type": 2, # 普通笔记
|
|
"note_time": 3, # 半年内
|
|
"note_range": 0, # 不限范围
|
|
"pos_distance": 0, # 不限位置
|
|
"query_num": 20 # 20条笔记快速测试
|
|
}
|
|
|
|
print("🎯 旅游内容整合系统 - 最终测试")
|
|
print("=" * 50)
|
|
print(f"📍 目标关键词: {', '.join(test_data['keywords'])}")
|
|
print(f"📊 搜索配置: 最多点赞排序,{test_data['query_num']}条笔记")
|
|
print(f"🔄 模式: 纯搜索整合(无文档上传)")
|
|
print()
|
|
|
|
try:
|
|
print("⏳ 开始内容整合...")
|
|
response = requests.post(
|
|
url,
|
|
json=test_data,
|
|
headers={"Content-Type": "application/json"},
|
|
timeout=120
|
|
)
|
|
|
|
print(f"📊 响应状态: {response.status_code}")
|
|
|
|
if response.status_code == 200:
|
|
result = response.json()
|
|
print("✅ API调用成功!")
|
|
|
|
if result.get('success'):
|
|
print("🎉 内容整合成功!")
|
|
|
|
# 显示处理统计
|
|
processing_time = result.get('processing_time', 'N/A')
|
|
timestamp = result.get('timestamp', 'N/A')
|
|
print(f"⏱️ 处理时间: {processing_time}")
|
|
print(f"🕒 完成时间: {timestamp}")
|
|
|
|
# 显示输入统计
|
|
input_summary = result.get('input_summary', {})
|
|
print(f"📄 处理文档: {input_summary.get('document_count', 0)} 个")
|
|
print(f"📝 XHS笔记: {input_summary.get('xhs_notes_count', 0)} 条")
|
|
|
|
# 显示XHS信息
|
|
xhs_info = result.get('xhs_info', {})
|
|
total_interactions = xhs_info.get('total_interactions', 0)
|
|
authors = xhs_info.get('authors', [])
|
|
print(f"👥 涉及作者: {len(authors)} 位")
|
|
print(f"💬 总互动数: {total_interactions} (点赞+评论+分享)")
|
|
|
|
# 解析整合内容
|
|
content = result.get('integrated_content', '')
|
|
if content:
|
|
print("\n🔍 内容解析结果:")
|
|
try:
|
|
# 使用file_io模块解析JSON
|
|
parsed_content = process_llm_json_text(content)
|
|
|
|
if parsed_content and isinstance(parsed_content, dict):
|
|
attractions = parsed_content.get('attractions', [])
|
|
print(f"✅ 成功解析JSON格式内容")
|
|
print(f"🏞️ 识别景区数量: {len(attractions)}")
|
|
|
|
# 显示详细信息
|
|
for i, attraction in enumerate(attractions, 1):
|
|
name = attraction.get('name', 'N/A')
|
|
products = attraction.get('products', [])
|
|
print(f"\n📍 景区 {i}: {name}")
|
|
print(f" 📦 产品数量: {len(products)}")
|
|
|
|
for j, product in enumerate(products, 1):
|
|
print(f"\n 🎫 产品 {j}: {product.get('product_name', 'N/A')}")
|
|
print(f" 💰 价格: {product.get('price', 'N/A')}")
|
|
|
|
# 显示优势
|
|
advantages = product.get('key_advantages', '')
|
|
if advantages:
|
|
preview = advantages[:80] + "..." if len(advantages) > 80 else advantages
|
|
print(f" 🎯 核心优势: {preview}")
|
|
|
|
# 显示交通信息
|
|
transport = product.get('transportation', {})
|
|
if isinstance(transport, dict):
|
|
address = transport.get('address', 'N/A')
|
|
guide = transport.get('guide', 'N/A')
|
|
print(f" 📍 地址: {address}")
|
|
if guide and guide != 'N/A':
|
|
guide_preview = guide[:60] + "..." if len(guide) > 60 else guide
|
|
print(f" 🚗 交通: {guide_preview}")
|
|
|
|
# 显示详细描述数量
|
|
descriptions = product.get('detailed_description', [])
|
|
if descriptions:
|
|
print(f" 📝 详细说明: {len(descriptions)} 条")
|
|
else:
|
|
print("❌ 内容解析失败或格式不正确")
|
|
print(f"📄 原始内容预览: {content[:200]}...")
|
|
|
|
except Exception as e:
|
|
print(f"❌ 内容解析异常: {e}")
|
|
print(f"📄 原始内容预览: {content[:200]}...")
|
|
|
|
# 显示输出文件
|
|
output_file = result.get('output_file')
|
|
if output_file:
|
|
print(f"\n💾 结果已保存至: {output_file}")
|
|
|
|
else:
|
|
error_msg = result.get('error_message', 'Unknown error')
|
|
print(f"❌ 内容整合失败: {error_msg}")
|
|
|
|
else:
|
|
print("❌ API调用失败")
|
|
try:
|
|
error_info = response.json()
|
|
print(f"📄 错误详情: {json.dumps(error_info, ensure_ascii=False, indent=2)}")
|
|
except:
|
|
print(f"📄 错误响应: {response.text}")
|
|
|
|
except requests.exceptions.Timeout:
|
|
print("⏰ 请求超时 - 内容整合需要较长时间,请稍候")
|
|
|
|
except Exception as e:
|
|
print(f"❌ 测试异常: {e}")
|
|
|
|
print("\n" + "=" * 50)
|
|
print("🏁 测试完成")
|
|
|
|
if __name__ == "__main__":
|
|
test_final_integration() |