stock-ai-agent/backend/tests/test_intelligent_agent.py
2026-02-03 23:50:48 +08:00

88 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
测试智能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())