feat: make provider trace fetch result nullable [PRO-1063] (#4222)
feat: make provider trace fetch result nullable
This commit is contained in:
@@ -1,18 +1,28 @@
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import APIRouter, Depends, Header
|
||||
|
||||
from letta.schemas.provider_trace import ProviderTrace
|
||||
from letta.server.rest_api.utils import get_letta_server
|
||||
from letta.server.server import SyncServer
|
||||
from letta.settings import settings
|
||||
|
||||
router = APIRouter(prefix="/telemetry", tags=["telemetry"])
|
||||
|
||||
|
||||
@router.get("/{step_id}", response_model=ProviderTrace, operation_id="retrieve_provider_trace")
|
||||
@router.get("/{step_id}", response_model=Optional[ProviderTrace], operation_id="retrieve_provider_trace")
|
||||
async def retrieve_provider_trace_by_step_id(
|
||||
step_id: str,
|
||||
server: SyncServer = Depends(get_letta_server),
|
||||
actor_id: str | None = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
||||
):
|
||||
return await server.telemetry_manager.get_provider_trace_by_step_id_async(
|
||||
step_id=step_id, actor=await server.user_manager.get_actor_or_default_async(actor_id=actor_id)
|
||||
)
|
||||
provider_trace = None
|
||||
if settings.track_provider_trace:
|
||||
try:
|
||||
provider_trace = await server.telemetry_manager.get_provider_trace_by_step_id_async(
|
||||
step_id=step_id, actor=await server.user_manager.get_actor_or_default_async(actor_id=actor_id)
|
||||
)
|
||||
except:
|
||||
pass
|
||||
|
||||
return provider_trace
|
||||
|
||||
@@ -252,6 +252,7 @@ class Settings(BaseSettings):
|
||||
track_errored_messages: bool = Field(default=True, description="Enable tracking for errored messages")
|
||||
track_stop_reason: bool = Field(default=True, description="Enable tracking stop reason on steps.")
|
||||
track_agent_run: bool = Field(default=True, description="Enable tracking agent run with cancellation support")
|
||||
track_provider_trace: bool = Field(default=True, description="Enable tracking raw llm request and response at each step")
|
||||
|
||||
# FastAPI Application Settings
|
||||
uvicorn_workers: int = 1
|
||||
|
||||
Reference in New Issue
Block a user