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"))