""" 测试URL返回功能 """ import asyncio import json import re from ai_agent import create_agent async def test_url_return(): """测试灵感中是否包含URL""" print("=" * 80) print("测试URL返回功能") print("=" * 80) # 创建Agent agent = create_agent() # 测试查询 query = "我想做一些校园相关的短视频" print(f"\n用户查询: {query}\n") print("正在生成灵感...\n") # 运行Agent result = await agent.run( user_input=query, system_prompt_file="prompts/agent_prompt.md", max_iterations=15 ) if result["success"]: print("✓ 执行成功\n") # 提取JSON json_match = re.search(r'```json\s*(.*?)\s*```', result["final_answer"], re.DOTALL) if json_match: try: data = json.loads(json_match.group(1)) inspirations = data.get('inspirations', []) print(f"✓ 生成了 {len(inspirations)} 个灵感\n") # 检查每个灵感是否包含URL url_count = 0 for i, inspiration in enumerate(inspirations, 1): has_url = 'url' in inspiration and inspiration['url'] url_valid = has_url and inspiration['url'] != 'N/A' and 'http' in inspiration['url'] print(f"灵感 {i}:") print(f" - 标题: {inspiration.get('title', 'N/A')}") print(f" - 作者: {inspiration.get('reference_author', 'N/A')}") print(f" - URL: {inspiration.get('url', 'N/A')}") if url_valid: print(f" ✓ URL有效") url_count += 1 else: print(f" ✗ URL缺失或无效") print() print("=" * 80) print(f"总结: {url_count}/{len(inspirations)} 个灵感包含有效的URL") print("=" * 80) if url_count == len(inspirations): print("\n✓ 所有灵感都包含有效的URL!") else: print(f"\n✗ 有 {len(inspirations) - url_count} 个灵感缺少有效的URL") except json.JSONDecodeError as e: print(f"\n✗ JSON解析失败: {e}") else: print("\n✗ 未找到JSON格式的输出") else: print(f"✗ 执行失败: {result.get('error')}") if __name__ == "__main__": asyncio.run(test_url_return())