mirror of
https://github.com/cpacker/MemGPT.git
synced 2025-06-03 04:30:22 +00:00
44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
from typing import TYPE_CHECKING, List, Optional
|
|
|
|
from fastapi import APIRouter, Depends, Header, Query
|
|
|
|
from letta.schemas.embedding_config import EmbeddingConfig
|
|
from letta.schemas.enums import ProviderCategory, ProviderType
|
|
from letta.schemas.llm_config import LLMConfig
|
|
from letta.server.rest_api.utils import get_letta_server
|
|
|
|
if TYPE_CHECKING:
|
|
from letta.server.server import SyncServer
|
|
|
|
router = APIRouter(prefix="/models", tags=["models", "llms"])
|
|
|
|
|
|
@router.get("/", response_model=List[LLMConfig], operation_id="list_models")
|
|
def list_llm_models(
|
|
provider_category: Optional[List[ProviderCategory]] = Query(None),
|
|
provider_name: Optional[str] = Query(None),
|
|
provider_type: Optional[ProviderType] = Query(None),
|
|
server: "SyncServer" = Depends(get_letta_server),
|
|
actor_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
):
|
|
actor = server.user_manager.get_user_or_default(user_id=actor_id)
|
|
models = server.list_llm_models(
|
|
provider_category=provider_category,
|
|
provider_name=provider_name,
|
|
provider_type=provider_type,
|
|
actor=actor,
|
|
)
|
|
# print(models)
|
|
return models
|
|
|
|
|
|
@router.get("/embedding", response_model=List[EmbeddingConfig], operation_id="list_embedding_models")
|
|
def list_embedding_models(
|
|
server: "SyncServer" = Depends(get_letta_server),
|
|
actor_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
):
|
|
actor = server.user_manager.get_user_or_default(user_id=actor_id)
|
|
models = server.list_embedding_models(actor=actor)
|
|
# print(models)
|
|
return models
|