Files
2026-08-03 18:42:47 +08:00

48 lines
1.3 KiB
Python
Executable File

"""
成本追踪API端点
"""
from fastapi import APIRouter
from gfa_core.mas.cost_tracker import get_cost_tracker
router = APIRouter(prefix="/cost", tags=["cost"])
@router.get("/summary")
async def get_cost_summary():
"""获取成本摘要"""
tracker = get_cost_tracker()
return tracker.get_summary()
@router.get("/report")
async def get_cost_report():
"""获取成本报告(文本格式)"""
tracker = get_cost_tracker()
return {"report": tracker.generate_report()}
@router.get("/agents/{agent_name}")
async def get_agent_cost(agent_name: str):
"""获取特定Agent的成本统计"""
tracker = get_cost_tracker()
stats = tracker.get_agent_stats(agent_name)
if agent_name in stats:
s = stats[agent_name]
return {
"agent_name": s.agent_name,
"call_count": s.call_count,
"total_tokens": s.total_tokens,
"total_cost": s.total_cost,
"avg_cost_per_call": s.avg_cost_per_call,
"last_call": s.last_call,
}
return {"error": "Agent not found"}
@router.get("/suggestions")
async def get_optimization_suggestions():
"""获取优化建议"""
tracker = get_cost_tracker()
return {"suggestions": tracker.get_optimization_suggestions()}