2026-05-01 19:32:59 +08:00
|
|
|
|
"""
|
|
|
|
|
|
Agent 监控 API — 提供 Agent 专属统计数据
|
|
|
|
|
|
"""
|
|
|
|
|
|
from fastapi import APIRouter, Depends, Query
|
|
|
|
|
|
from sqlalchemy.orm import Session
|
|
|
|
|
|
from typing import Optional
|
|
|
|
|
|
from app.core.database import get_db
|
|
|
|
|
|
from app.api.auth import get_current_user
|
|
|
|
|
|
from app.models.user import User
|
|
|
|
|
|
from app.services.agent_monitoring_service import AgentMonitoringService
|
|
|
|
|
|
|
|
|
|
|
|
router = APIRouter(
|
|
|
|
|
|
prefix="/api/v1/agent-monitoring",
|
|
|
|
|
|
tags=["agent-monitoring"],
|
|
|
|
|
|
responses={
|
|
|
|
|
|
401: {"description": "未授权"},
|
|
|
|
|
|
403: {"description": "无权访问"},
|
|
|
|
|
|
},
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/overview")
|
|
|
|
|
|
async def get_agent_overview(
|
|
|
|
|
|
db: Session = Depends(get_db),
|
|
|
|
|
|
current_user: User = Depends(get_current_user),
|
|
|
|
|
|
):
|
|
|
|
|
|
"""Agent 概览统计:Agent 数、对话次数、LLM 调用次数、Token 用量、工具调用次数。"""
|
feat: virtual company module, team projects, PWA dishes app, and startup scripts overhaul
- Add company module (3-tier org, CEO planning, parallel departments)
- Add company orchestrator, knowledge extractor, presets, scheduler
- Add company API endpoints, models, and frontend views
- Add 今天吃啥 PWA app (69 dishes, real images, offline support)
- Add team_projects output directory structure
- Add unified manage.ps1 for service lifecycle
- Add Windows startup guide v1.0
- Add TTS troubleshooting doc
- Update frontend (AgentChat UX overhaul, new views)
- Update backend (voice engine fix, multi-tenant, RBAC)
- Remove deprecated startup scripts and old docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-10 22:37:56 +08:00
|
|
|
|
user_id = None if current_user.has_permission("monitoring:view_all") else current_user.id
|
2026-05-01 19:32:59 +08:00
|
|
|
|
return AgentMonitoringService.get_overview(db, user_id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/llm-calls")
|
|
|
|
|
|
async def get_llm_calls(
|
|
|
|
|
|
days: int = Query(7, ge=1, le=30, description="统计天数"),
|
|
|
|
|
|
limit: int = Query(50, ge=1, le=200, description="返回条数"),
|
|
|
|
|
|
db: Session = Depends(get_db),
|
|
|
|
|
|
current_user: User = Depends(get_current_user),
|
|
|
|
|
|
):
|
|
|
|
|
|
"""最近 LLM 调用记录列表。"""
|
feat: virtual company module, team projects, PWA dishes app, and startup scripts overhaul
- Add company module (3-tier org, CEO planning, parallel departments)
- Add company orchestrator, knowledge extractor, presets, scheduler
- Add company API endpoints, models, and frontend views
- Add 今天吃啥 PWA app (69 dishes, real images, offline support)
- Add team_projects output directory structure
- Add unified manage.ps1 for service lifecycle
- Add Windows startup guide v1.0
- Add TTS troubleshooting doc
- Update frontend (AgentChat UX overhaul, new views)
- Update backend (voice engine fix, multi-tenant, RBAC)
- Remove deprecated startup scripts and old docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-10 22:37:56 +08:00
|
|
|
|
user_id = None if current_user.has_permission("monitoring:view_all") else current_user.id
|
2026-05-01 19:32:59 +08:00
|
|
|
|
return AgentMonitoringService.get_llm_calls(db, user_id, days, limit)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/agents-stats")
|
|
|
|
|
|
async def get_agent_stats(
|
|
|
|
|
|
days: int = Query(7, ge=1, le=30, description="统计天数"),
|
|
|
|
|
|
db: Session = Depends(get_db),
|
|
|
|
|
|
current_user: User = Depends(get_current_user),
|
|
|
|
|
|
):
|
|
|
|
|
|
"""各 Agent 用量统计(按 Agent 分组)。"""
|
feat: virtual company module, team projects, PWA dishes app, and startup scripts overhaul
- Add company module (3-tier org, CEO planning, parallel departments)
- Add company orchestrator, knowledge extractor, presets, scheduler
- Add company API endpoints, models, and frontend views
- Add 今天吃啥 PWA app (69 dishes, real images, offline support)
- Add team_projects output directory structure
- Add unified manage.ps1 for service lifecycle
- Add Windows startup guide v1.0
- Add TTS troubleshooting doc
- Update frontend (AgentChat UX overhaul, new views)
- Update backend (voice engine fix, multi-tenant, RBAC)
- Remove deprecated startup scripts and old docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-10 22:37:56 +08:00
|
|
|
|
user_id = None if current_user.has_permission("monitoring:view_all") else current_user.id
|
2026-05-01 19:32:59 +08:00
|
|
|
|
return AgentMonitoringService.get_agent_stats(db, user_id, days)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/tool-usage")
|
|
|
|
|
|
async def get_tool_usage(
|
|
|
|
|
|
days: int = Query(7, ge=1, le=30, description="统计天数"),
|
|
|
|
|
|
db: Session = Depends(get_db),
|
|
|
|
|
|
current_user: User = Depends(get_current_user),
|
|
|
|
|
|
):
|
|
|
|
|
|
"""工具调用频次统计。"""
|
feat: virtual company module, team projects, PWA dishes app, and startup scripts overhaul
- Add company module (3-tier org, CEO planning, parallel departments)
- Add company orchestrator, knowledge extractor, presets, scheduler
- Add company API endpoints, models, and frontend views
- Add 今天吃啥 PWA app (69 dishes, real images, offline support)
- Add team_projects output directory structure
- Add unified manage.ps1 for service lifecycle
- Add Windows startup guide v1.0
- Add TTS troubleshooting doc
- Update frontend (AgentChat UX overhaul, new views)
- Update backend (voice engine fix, multi-tenant, RBAC)
- Remove deprecated startup scripts and old docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-10 22:37:56 +08:00
|
|
|
|
user_id = None if current_user.has_permission("monitoring:view_all") else current_user.id
|
2026-05-01 19:32:59 +08:00
|
|
|
|
return AgentMonitoringService.get_tool_usage(db, user_id, days)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/daily-trend")
|
|
|
|
|
|
async def get_daily_trend(
|
|
|
|
|
|
days: int = Query(7, ge=1, le=30, description="统计天数"),
|
|
|
|
|
|
db: Session = Depends(get_db),
|
|
|
|
|
|
current_user: User = Depends(get_current_user),
|
|
|
|
|
|
):
|
|
|
|
|
|
"""每日 LLM 调用趋势。"""
|
feat: virtual company module, team projects, PWA dishes app, and startup scripts overhaul
- Add company module (3-tier org, CEO planning, parallel departments)
- Add company orchestrator, knowledge extractor, presets, scheduler
- Add company API endpoints, models, and frontend views
- Add 今天吃啥 PWA app (69 dishes, real images, offline support)
- Add team_projects output directory structure
- Add unified manage.ps1 for service lifecycle
- Add Windows startup guide v1.0
- Add TTS troubleshooting doc
- Update frontend (AgentChat UX overhaul, new views)
- Update backend (voice engine fix, multi-tenant, RBAC)
- Remove deprecated startup scripts and old docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-10 22:37:56 +08:00
|
|
|
|
user_id = None if current_user.has_permission("monitoring:view_all") else current_user.id
|
2026-05-01 19:32:59 +08:00
|
|
|
|
return AgentMonitoringService.get_daily_trend(db, user_id, days)
|