""" 快速测试 - 验证detail_info初始化 """ import os import sys # 添加路径 current_dir = os.path.dirname(os.path.abspath(__file__)) root_dir = os.path.dirname(current_dir) sys.path.insert(0, root_dir) print("测试: detail_info初始化验证") print("=" * 60) try: from knowledge_v2.function_knowledge import FunctionKnowledge # 创建实例(禁用缓存以测试所有路径) agent = FunctionKnowledge(use_cache=False) # 测试1: generate_query print("\n[测试1] generate_query") query, detail = agent.generate_query("测试问题", "无", "测试") print(f"✓ 返回类型: {type(query)}, {type(detail)}") print(f"✓ detail keys: {detail.keys()}") assert 'prompt' in detail, "detail应该包含prompt" assert 'response' in detail, "detail应该包含response" print("✓ generate_query 通过") # 测试2: select_tool print("\n[测试2] select_tool") combined = "测试||无||测试" tool_name, detail = agent.select_tool(combined, query) print(f"✓ 返回类型: {type(tool_name)}, {type(detail)}") print(f"✓ detail keys: {detail.keys()}") assert 'prompt' in detail, "detail应该包含prompt" assert 'response' in detail, "detail应该包含response" print("✓ select_tool 通过") # 测试3: extract_tool_params print("\n[测试3] extract_tool_params") params, detail = agent.extract_tool_params(combined, "test_tool", query) print(f"✓ 返回类型: {type(params)}, {type(detail)}") print(f"✓ detail keys: {detail.keys()}") assert 'prompt' in detail or 'fallback' in detail, "detail应该包含prompt或fallback" print("✓ extract_tool_params 通过") print("\n" + "=" * 60) print("✓ 所有测试通过!detail_info初始化正确") print("=" * 60) except Exception as e: print(f"\n✗ 测试失败: {e}") import traceback traceback.print_exc()