Files
letta-server/letta/server/rest_api/dependencies.py

38 lines
1.0 KiB
Python

from typing import TYPE_CHECKING, Optional
from fastapi import Header
from pydantic import BaseModel
if TYPE_CHECKING:
from letta.server.server import SyncServer
class HeaderParams(BaseModel):
"""Common header parameters used across REST API endpoints."""
actor_id: Optional[str] = None
user_agent: Optional[str] = None
project_id: Optional[str] = None
def get_headers(
actor_id: Optional[str] = Header(None, alias="user_id"),
user_agent: Optional[str] = Header(None, alias="User-Agent"),
project_id: Optional[str] = Header(None, alias="X-Project-Id"),
) -> HeaderParams:
"""Dependency injection function to extract common headers from requests."""
return HeaderParams(
actor_id=actor_id,
user_agent=user_agent,
project_id=project_id,
)
# TODO: why does this double up the interface?
async def get_letta_server() -> "SyncServer":
# Check if a global server is already instantiated
from letta.server.rest_api.app import server
# assert isinstance(server, SyncServer)
return server