Add voice analytics filters and metrics
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
from typing import Literal
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
from sqlalchemy import select
|
||||
@@ -120,7 +122,9 @@ async def list_provider_capabilities():
|
||||
@router.get("/providers/analytics", response_model=ProviderAnalyticsResponse)
|
||||
async def get_provider_analytics(
|
||||
days: int | None = Query(default=None, ge=1, le=365),
|
||||
capability: str | None = Query(default=None),
|
||||
capability: Literal["text", "image", "tts", "storybook", "asr"] | None = Query(
|
||||
default=None
|
||||
),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
"""获取当前环境跨用户的 Provider 运营摘要。"""
|
||||
|
||||
@@ -116,11 +116,21 @@ async def get_latest_active_voice_session(
|
||||
@router.get("/voice-sessions/analytics", response_model=VoiceSessionAnalyticsResponse)
|
||||
async def get_voice_session_analytics(
|
||||
days: int | None = Query(default=30, ge=1, le=365),
|
||||
provider: str | None = Query(default=None, min_length=1, max_length=64),
|
||||
session_status: (
|
||||
Literal["draft", "active", "waiting_user", "completed", "abandoned"] | None
|
||||
) = Query(default=None),
|
||||
user: User = Depends(require_user),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
"""Get aggregate voice co-creation analytics for the current user."""
|
||||
return await get_voice_session_analytics_service(user.id, db, days=days)
|
||||
return await get_voice_session_analytics_service(
|
||||
user.id,
|
||||
db,
|
||||
days=days,
|
||||
provider=provider,
|
||||
session_status=session_status,
|
||||
)
|
||||
|
||||
|
||||
@router.get("/voice-sessions/{session_id}", response_model=VoiceSessionDetailResponse)
|
||||
|
||||
Reference in New Issue
Block a user