""" AI分析功能测试脚本 """ import os import sys from pathlib import Path from dotenv import load_dotenv # 加载环境变量(从项目根目录) env_path = Path(__file__).parent / '.env' load_dotenv(dotenv_path=env_path) from ai_analyzer import AIAnalyzer def test_analyze_sample_data(): """测试分析示例数据""" # 示例视频数据 sample_videos = [ { "index": 1, "author": "游戏解说小王", "description": "王者荣耀S35赛季上分攻略,这几个英雄必须会!#王者荣耀 #游戏攻略 #上分技巧", "duration": "03:25", "hot": "98.5万", "plays": "150万", "likes": "8.5万", "comments": "3200", "hotWords": ["上分", "新赛季", "英雄推荐"], "hashTags": ["#王者荣耀", "#游戏攻略", "#上分技巧"] }, { "index": 2, "author": "电竞小姐姐", "description": "原神新角色实测,伤害爆炸!#原神 #游戏测评", "duration": "05:12", "hot": "125万", "plays": "200万", "likes": "12万", "comments": "5600", "hotWords": ["新角色", "伤害测试", "抽卡"], "hashTags": ["#原神", "#游戏测评"] }, { "index": 3, "author": "游戏日常", "description": "和平精英新地图探索,这些点位太强了!#和平精英 #吃鸡游戏", "duration": "04:30", "hot": "76万", "plays": "120万", "likes": "6.2万", "comments": "2100", "hotWords": ["新地图", "点位", "战术"], "hashTags": ["#和平精英", "#吃鸡游戏"] } ] print("=" * 80) print("AI分析功能测试") print("=" * 80) print() # 检查API Key api_key = os.getenv("DASHSCOPE_API_KEY") if not api_key: print("⚠ 警告:未设置DASHSCOPE_API_KEY环境变量") print("请在 .env 文件中配置API Key,或者:") print(" export DASHSCOPE_API_KEY=your_api_key") print() return print(f"✓ API Key已配置(前8位): {api_key[:8]}...") print() try: # 创建分析器 print("正在初始化AI分析器...") analyzer = AIAnalyzer(model="qwen-plus") print("✓ 分析器初始化成功") print() # 分析数据 print("正在分析示例数据...") print(f" 视频数量: {len(sample_videos)}") print(f" 使用模型: qwen-plus") print(f" 提示词文件: prompts/analyze_prompt.md") print() result = analyzer.analyze( videos=sample_videos, prompt_file="prompts/analyze_prompt.md", custom_instruction="重点分析游戏类视频的爆款特征和创作建议" ) if result["success"]: print("=" * 80) print("分析结果:") print("=" * 80) print(result["analysis"]) print() print("=" * 80) print("统计信息:") print("=" * 80) print(f" 视频数量: {result['video_count']}") print(f" 使用模型: {result['model']}") print(f" 输入Token: {result['usage']['input_tokens']}") print(f" 输出Token: {result['usage']['output_tokens']}") print(f" 总Token: {result['usage']['total_tokens']}") print() print("✓ 测试成功!") else: print(f"✗ 分析失败: {result['error']}") except Exception as e: print(f"✗ 测试出错: {e}") import traceback traceback.print_exc() def test_analyze_from_file(): """测试从文件分析""" print("\n" + "=" * 80) print("测试从文件分析") print("=" * 80) print() # 查找可用的JSON文件 data_dir = "douyin_data_soupce/douyin_data" if not os.path.exists(data_dir): print(f"⚠ 数据目录不存在: {data_dir}") return json_files = [f for f in os.listdir(data_dir) if f.endswith('.json')] if not json_files: print(f"⚠ 未找到JSON数据文件") return # 使用第一个JSON文件 json_file = os.path.join(data_dir, json_files[0]) print(f"使用文件: {json_file}") print() try: analyzer = AIAnalyzer(model="qwen-plus") result = analyzer.analyze_from_file( json_file=json_file, prompt_file="prompts/analyze_prompt.md" ) if result["success"]: print("✓ 文件分析成功") print(f" 视频数量: {result['video_count']}") print(f" Token消耗: {result['usage']['total_tokens']}") else: print(f"✗ 分析失败: {result['error']}") except Exception as e: print(f"✗ 测试出错: {e}") if __name__ == "__main__": # 测试1:分析示例数据 test_analyze_sample_data() # 测试2:从文件分析(可选) # test_analyze_from_file()