feat: add question insight analytics

This commit is contained in:
2026-07-31 11:39:59 +08:00
parent e426f12e22
commit ad2161497f
8 changed files with 782 additions and 3 deletions

View File

@@ -19,6 +19,7 @@ from app.models.chat import ChatMessage, ChatSession
from app.models.logs import AiRequestLog, OperationLog
from app.models.user import User
from app.api.pagination import page_result
from app.services.question_insight_service import QuestionInsightService
router = APIRouter()
@@ -222,6 +223,30 @@ def ai_log_detail(
return api_success(_ai_log_dict(log, include_prompt=True))
@router.get("/question-insights/summary")
def question_insights(
dateFrom: datetime | None = Query(default=None),
dateTo: datetime | None = Query(default=None),
minCount: int = Query(default=2, ge=1, le=50),
maxMessages: int = Query(default=5000, ge=100, le=20000),
page: int = Query(default=1, ge=1),
pageSize: int = Query(default=20, ge=10, le=50),
db: Session = Depends(get_db),
current_admin: Admin = Depends(get_current_admin),
) -> dict:
return api_success(
QuestionInsightService.summarize(
db,
date_from=dateFrom,
date_to=dateTo,
min_count=minCount,
max_messages=maxMessages,
page=page,
page_size=pageSize,
)
)
def _chat_query(
*,
keyword: str,