39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
"""Admin view of the last day of model request and response text."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Request
|
|
from pydantic import BaseModel, Field
|
|
|
|
from app.gateway.routers.admin_users import _require_admin
|
|
from deerflow.models.model_exchange_log import query_model_exchanges
|
|
|
|
router = APIRouter(prefix="/api/admin/model-exchanges", tags=["admin-model-exchanges"])
|
|
|
|
|
|
class ModelExchangeRecord(BaseModel):
|
|
id: str
|
|
at: str
|
|
model: str = ""
|
|
user_id: str = ""
|
|
enable_thinking: str = "unset"
|
|
request_preview: str = ""
|
|
response_preview: str = ""
|
|
request_text: str = ""
|
|
response_text: str = ""
|
|
request_body: str = ""
|
|
response_raw: str = ""
|
|
response_content: str = ""
|
|
response_reasoning: str = ""
|
|
reasoning_field: str = ""
|
|
|
|
|
|
class ModelExchangeListResponse(BaseModel):
|
|
records: list[ModelExchangeRecord] = Field(default_factory=list)
|
|
|
|
|
|
@router.get("", response_model=ModelExchangeListResponse)
|
|
async def list_model_exchanges(request: Request) -> ModelExchangeListResponse:
|
|
await _require_admin(request)
|
|
return ModelExchangeListResponse(records=query_model_exchanges())
|