88 lines
2.5 KiB
Python
88 lines
2.5 KiB
Python
"""
|
||
测试智能AI Agent
|
||
"""
|
||
import asyncio
|
||
import sys
|
||
import os
|
||
|
||
# 添加项目路径
|
||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||
|
||
from app.agent.smart_agent import SmartStockAgent
|
||
|
||
|
||
async def test_intelligent_mode():
|
||
"""测试智能模式"""
|
||
print("=" * 60)
|
||
print("测试智能AI Agent")
|
||
print("=" * 60)
|
||
|
||
# 创建Agent实例
|
||
agent = SmartStockAgent()
|
||
|
||
# 测试用例
|
||
test_cases = [
|
||
{
|
||
"name": "简单股票查询",
|
||
"message": "贵州茅台怎么样",
|
||
"session_id": "test_session_1"
|
||
},
|
||
{
|
||
"name": "技术分析关注",
|
||
"message": "比亚迪的MACD指标怎么样,有没有金叉",
|
||
"session_id": "test_session_2"
|
||
},
|
||
{
|
||
"name": "基本面关注",
|
||
"message": "宁德时代的基本面如何,盈利能力强吗",
|
||
"session_id": "test_session_3"
|
||
}
|
||
]
|
||
|
||
for i, test_case in enumerate(test_cases, 1):
|
||
print(f"\n{'=' * 60}")
|
||
print(f"测试用例 {i}: {test_case['name']}")
|
||
print(f"{'=' * 60}")
|
||
print(f"用户问题: {test_case['message']}")
|
||
print()
|
||
|
||
try:
|
||
# 处理消息
|
||
response = await agent.process_message(
|
||
message=test_case['message'],
|
||
session_id=test_case['session_id']
|
||
)
|
||
|
||
# 打印结果
|
||
print("响应:")
|
||
print(response.get('message', ''))
|
||
print()
|
||
|
||
# 打印元数据
|
||
metadata = response.get('metadata', {})
|
||
if metadata:
|
||
print("元数据:")
|
||
print(f" 类型: {metadata.get('type')}")
|
||
if 'intent' in metadata:
|
||
intent = metadata['intent']
|
||
print(f" 意图类型: {intent.get('type')}")
|
||
print(f" 关注维度: {intent.get('dimensions')}")
|
||
print(f" 分析深度: {intent.get('analysis_depth')}")
|
||
if 'plan' in metadata:
|
||
plan = metadata['plan']
|
||
skills = [s['name'] for s in plan.get('skills', [])]
|
||
print(f" 调用技能: {skills}")
|
||
|
||
except Exception as e:
|
||
print(f"错误: {e}")
|
||
import traceback
|
||
traceback.print_exc()
|
||
|
||
print(f"\n{'=' * 60}")
|
||
print("测试完成")
|
||
print("=" * 60)
|
||
|
||
|
||
if __name__ == "__main__":
|
||
asyncio.run(test_intelligent_mode())
|