diff --git a/docs/resources/llama-stack-spec.html b/docs/resources/llama-stack-spec.html index 33112012b..a9fb22b10 100644 --- a/docs/resources/llama-stack-spec.html +++ b/docs/resources/llama-stack-spec.html @@ -2467,6 +2467,36 @@ "required": true } } + }, + "/alpha/version": { + "get": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VersionInfo" + } + } + } + } + }, + "tags": [ + "Inspect" + ], + "parameters": [ + { + "name": "X-LlamaStack-ProviderData", + "in": "header", + "description": "JSON-encoded provider data which will be made available to the adapter servicing the API", + "required": false, + "schema": { + "type": "string" + } + } + ] + } } }, "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema", @@ -6457,6 +6487,9 @@ "gradient_accumulation_steps": { "type": "integer" }, + "max_validation_steps": { + "type": "integer" + }, "data_config": { "$ref": "#/components/schemas/DataConfig" }, @@ -6476,6 +6509,7 @@ "n_epochs", "max_steps_per_epoch", "gradient_accumulation_steps", + "max_validation_steps", "data_config", "optimizer_config" ] @@ -7686,6 +7720,18 @@ "required": [ "model_id" ] + }, + "VersionInfo": { + "type": "object", + "properties": { + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] } }, "responses": {} @@ -8382,6 +8428,10 @@ "name": "VectorMemoryBankParams", "description": "" }, + { + "name": "VersionInfo", + "description": "" + }, { "name": "ViolationLevel", "description": "" @@ -8576,6 +8626,7 @@ "UserMessage", "VectorMemoryBank", "VectorMemoryBankParams", + "VersionInfo", "ViolationLevel", "WolframAlphaToolDefinition" ] diff --git a/docs/resources/llama-stack-spec.yaml b/docs/resources/llama-stack-spec.yaml index abd57e17e..8eca40cb7 100644 --- a/docs/resources/llama-stack-spec.yaml +++ b/docs/resources/llama-stack-spec.yaml @@ -3002,6 +3002,8 @@ components: type: integer max_steps_per_epoch: type: integer + max_validation_steps: + type: integer n_epochs: type: integer optimizer_config: @@ -3010,6 +3012,7 @@ components: - n_epochs - max_steps_per_epoch - gradient_accumulation_steps + - max_validation_steps - data_config - optimizer_config type: object @@ -3192,6 +3195,14 @@ components: - embedding_model - chunk_size_in_tokens type: object + VersionInfo: + additionalProperties: false + properties: + version: + type: string + required: + - version + type: object ViolationLevel: enum: - info @@ -4731,6 +4742,25 @@ paths: description: OK tags: - Telemetry + /alpha/version: + get: + parameters: + - description: JSON-encoded provider data which will be made available to the + adapter servicing the API + in: header + name: X-LlamaStack-ProviderData + required: false + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/VersionInfo' + description: OK + tags: + - Inspect security: - Default: [] servers: @@ -5225,6 +5255,8 @@ tags: - description: name: VectorMemoryBankParams +- description: + name: VersionInfo - description: name: ViolationLevel - description: HealthInfo: ... + + @webmethod(route="/version", method="GET") + async def version(self) -> VersionInfo: ... diff --git a/llama_stack/cli/stack/stack.py b/llama_stack/cli/stack/stack.py index c359d27ec..8650bd728 100644 --- a/llama_stack/cli/stack/stack.py +++ b/llama_stack/cli/stack/stack.py @@ -5,6 +5,7 @@ # the root directory of this source tree. import argparse +from importlib.metadata import version from llama_stack.cli.subcommand import Subcommand @@ -24,6 +25,12 @@ class StackParser(Subcommand): description="Operations for the Llama Stack / Distributions", ) + self.parser.add_argument( + "--version", + action="version", + version=f"{version('llama-stack')}", + ) + subparsers = self.parser.add_subparsers(title="stack_subcommands") # Add sub-commands 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"))