diff --git a/llama_stack/apis/inspect/inspect.py b/llama_stack/apis/inspect/inspect.py index 1dbe80a02..699bce7b7 100644 --- a/llama_stack/apis/inspect/inspect.py +++ b/llama_stack/apis/inspect/inspect.py @@ -29,6 +29,11 @@ class HealthInfo(BaseModel): # TODO: add a provider level status +@json_schema_type +class VersionInfo(BaseModel): + version: str + + @runtime_checkable class Inspect(Protocol): @webmethod(route="/providers/list", method="GET") @@ -39,3 +44,6 @@ class Inspect(Protocol): @webmethod(route="/health", method="GET") async def health(self) -> HealthInfo: ... + + @webmethod(route="/version", method="GET") + async def version(self) -> VersionInfo: ... diff --git a/llama_stack/distribution/inspect.py b/llama_stack/distribution/inspect.py index dbb16d8ce..d275a5c2f 100644 --- a/llama_stack/distribution/inspect.py +++ b/llama_stack/distribution/inspect.py @@ -4,11 +4,18 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. +from importlib.metadata import version from typing import Dict, List from pydantic import BaseModel -from llama_stack.apis.inspect import HealthInfo, Inspect, ProviderInfo, RouteInfo +from llama_stack.apis.inspect import ( + HealthInfo, + Inspect, + ProviderInfo, + RouteInfo, + VersionInfo, +) from llama_stack.distribution.datatypes import StackRunConfig from llama_stack.distribution.server.endpoints import get_all_api_endpoints @@ -65,3 +72,6 @@ class DistributionInspectImpl(Inspect): async def health(self) -> HealthInfo: return HealthInfo(status="OK") + + async def version(self) -> VersionInfo: + return VersionInfo(version=version("llama-stack"))