From 188c3dd942fc54a7b4606538d1ce2283399d214f Mon Sep 17 00:00:00 2001 From: Shubham Naik Date: Wed, 2 Oct 2024 16:13:23 -0700 Subject: [PATCH 1/2] feat: add health check route --- letta/schemas/health.py | 8 ++++++++ letta/server/rest_api/routers/v1/__init__.py | 2 ++ letta/server/rest_api/routers/v1/health.py | 21 ++++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 letta/schemas/health.py create mode 100644 letta/server/rest_api/routers/v1/health.py diff --git a/letta/schemas/health.py b/letta/schemas/health.py new file mode 100644 index 00000000..08bfcee4 --- /dev/null +++ b/letta/schemas/health.py @@ -0,0 +1,8 @@ +from pydantic import BaseModel + +class Health(BaseModel): + """ + Health check response body + """ + version: str + status: str \ No newline at end of file diff --git a/letta/server/rest_api/routers/v1/__init__.py b/letta/server/rest_api/routers/v1/__init__.py index d6e0bdae..8582b5ba 100644 --- a/letta/server/rest_api/routers/v1/__init__.py +++ b/letta/server/rest_api/routers/v1/__init__.py @@ -4,6 +4,7 @@ from letta.server.rest_api.routers.v1.jobs import router as jobs_router from letta.server.rest_api.routers.v1.llms import router as llm_router from letta.server.rest_api.routers.v1.sources import router as sources_router from letta.server.rest_api.routers.v1.tools import router as tools_router +from letta.server.rest_api.routers.v1.health import router as health_router ROUTERS = [ tools_router, @@ -12,4 +13,5 @@ ROUTERS = [ llm_router, blocks_router, jobs_router, + health_router, ] diff --git a/letta/server/rest_api/routers/v1/health.py b/letta/server/rest_api/routers/v1/health.py new file mode 100644 index 00000000..28d8f317 --- /dev/null +++ b/letta/server/rest_api/routers/v1/health.py @@ -0,0 +1,21 @@ +from typing import TYPE_CHECKING, List, Optional + +from fastapi import APIRouter, Body, Depends, HTTPException, Query + +from letta.cli.cli import version +from letta.schemas.health import Health +from letta.server.rest_api.utils import get_letta_server +from letta.server.server import SyncServer + +if TYPE_CHECKING: + pass + +router = APIRouter(prefix="/health", tags=["health"]) + +# Health check +@router.get("/", response_model=Health, operation_id="health_check") +def health_check(): + return Health( + version=version(), + status="ok", + ) From 29c5f8cf12c52df1044041df82c6e89621531366 Mon Sep 17 00:00:00 2001 From: Shubham Naik Date: Wed, 2 Oct 2024 16:16:05 -0700 Subject: [PATCH 2/2] chore: add health check route --- letta/schemas/health.py | 4 +++- letta/server/rest_api/routers/v1/__init__.py | 2 +- letta/server/rest_api/routers/v1/health.py | 7 +++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/letta/schemas/health.py b/letta/schemas/health.py index 08bfcee4..3e76ca08 100644 --- a/letta/schemas/health.py +++ b/letta/schemas/health.py @@ -1,8 +1,10 @@ from pydantic import BaseModel + class Health(BaseModel): """ Health check response body """ + version: str - status: str \ No newline at end of file + status: str diff --git a/letta/server/rest_api/routers/v1/__init__.py b/letta/server/rest_api/routers/v1/__init__.py index 8582b5ba..6589c5f4 100644 --- a/letta/server/rest_api/routers/v1/__init__.py +++ b/letta/server/rest_api/routers/v1/__init__.py @@ -1,10 +1,10 @@ from letta.server.rest_api.routers.v1.agents import router as agents_router from letta.server.rest_api.routers.v1.blocks import router as blocks_router +from letta.server.rest_api.routers.v1.health import router as health_router from letta.server.rest_api.routers.v1.jobs import router as jobs_router from letta.server.rest_api.routers.v1.llms import router as llm_router from letta.server.rest_api.routers.v1.sources import router as sources_router from letta.server.rest_api.routers.v1.tools import router as tools_router -from letta.server.rest_api.routers.v1.health import router as health_router ROUTERS = [ tools_router, diff --git a/letta/server/rest_api/routers/v1/health.py b/letta/server/rest_api/routers/v1/health.py index 28d8f317..99fce66d 100644 --- a/letta/server/rest_api/routers/v1/health.py +++ b/letta/server/rest_api/routers/v1/health.py @@ -1,17 +1,16 @@ -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING -from fastapi import APIRouter, Body, Depends, HTTPException, Query +from fastapi import APIRouter from letta.cli.cli import version from letta.schemas.health import Health -from letta.server.rest_api.utils import get_letta_server -from letta.server.server import SyncServer if TYPE_CHECKING: pass router = APIRouter(prefix="/health", tags=["health"]) + # Health check @router.get("/", response_model=Health, operation_id="health_check") def health_check():