From 84372fa83155f7eb67a530966c72b0e8a3c3d385 Mon Sep 17 00:00:00 2001 From: Ashwin Bharambe Date: Mon, 20 Oct 2025 10:59:21 -0700 Subject: [PATCH] fixes --- .../providers/vector_io/inline_chromadb.mdx | 4 ++-- .../providers/vector_io/remote_chromadb.mdx | 4 ++-- llama_stack/cli/stack/_build.py | 2 +- llama_stack/cli/stack/utils.py | 23 ++++++++++++++++++- .../agent/test_meta_reference_agent.py | 10 +++----- .../utils/inference/test_inference_store.py | 5 +--- 6 files changed, 31 insertions(+), 17 deletions(-) diff --git a/docs/docs/providers/vector_io/inline_chromadb.mdx b/docs/docs/providers/vector_io/inline_chromadb.mdx index 97f2ee3d7..0be5cd5b3 100644 --- a/docs/docs/providers/vector_io/inline_chromadb.mdx +++ b/docs/docs/providers/vector_io/inline_chromadb.mdx @@ -79,13 +79,13 @@ See [Chroma's documentation](https://docs.trychroma.com/docs/overview/introducti | Field | Type | Required | Default | Description | |-------|------|----------|---------|-------------| | `db_path` | `` | No | | | -| `kvstore` | `` | No | | Config for KV store backend | +| `persistence` | `` | No | | Config for KV store backend | ## Sample Configuration ```yaml db_path: ${env.CHROMADB_PATH} -kvstore: +persistence: namespace: vector_io::chroma backend: kv_default ``` diff --git a/docs/docs/providers/vector_io/remote_chromadb.mdx b/docs/docs/providers/vector_io/remote_chromadb.mdx index 3d62a1de6..2aee3eeca 100644 --- a/docs/docs/providers/vector_io/remote_chromadb.mdx +++ b/docs/docs/providers/vector_io/remote_chromadb.mdx @@ -78,13 +78,13 @@ See [Chroma's documentation](https://docs.trychroma.com/docs/overview/introducti | Field | Type | Required | Default | Description | |-------|------|----------|---------|-------------| | `url` | `str \| None` | No | | | -| `kvstore` | `` | No | | Config for KV store backend | +| `persistence` | `` | No | | Config for KV store backend | ## Sample Configuration ```yaml url: ${env.CHROMADB_URL} -kvstore: +persistence: namespace: vector_io::chroma_remote backend: kv_default ``` diff --git a/llama_stack/cli/stack/_build.py b/llama_stack/cli/stack/_build.py index 9806e4c48..2a30ff394 100644 --- a/llama_stack/cli/stack/_build.py +++ b/llama_stack/cli/stack/_build.py @@ -294,7 +294,7 @@ def _generate_run_config( Generate a run.yaml template file for user to edit from a build.yaml file """ apis = list(build_config.distribution_spec.providers.keys()) - distro_dir = f"~/.llama/distributions/{image_name}" + distro_dir = DISTRIBS_BASE_DIR / image_name storage = StorageConfig( backends={ "kv_default": SqliteKVStoreConfig( diff --git a/llama_stack/cli/stack/utils.py b/llama_stack/cli/stack/utils.py index 4d4c1b538..cc1ca051b 100644 --- a/llama_stack/cli/stack/utils.py +++ b/llama_stack/cli/stack/utils.py @@ -17,10 +17,19 @@ from llama_stack.core.datatypes import ( BuildConfig, Provider, StackRunConfig, + StorageConfig, ) from llama_stack.core.distribution import get_provider_registry from llama_stack.core.resolver import InvalidProviderError -from llama_stack.core.utils.config_dirs import EXTERNAL_PROVIDERS_DIR +from llama_stack.core.storage.datatypes import ( + InferenceStoreReference, + KVStoreReference, + ServerStoresConfig, + SqliteKVStoreConfig, + SqliteSqlStoreConfig, + SqlStoreReference, +) +from llama_stack.core.utils.config_dirs import DISTRIBS_BASE_DIR, EXTERNAL_PROVIDERS_DIR from llama_stack.core.utils.dynamic import instantiate_class_type from llama_stack.core.utils.image_types import LlamaStackImageType from llama_stack.providers.datatypes import Api @@ -51,11 +60,23 @@ def generate_run_config( Generate a run.yaml template file for user to edit from a build.yaml file """ apis = list(build_config.distribution_spec.providers.keys()) + distro_dir = DISTRIBS_BASE_DIR / image_name run_config = StackRunConfig( container_image=(image_name if build_config.image_type == LlamaStackImageType.CONTAINER.value else None), image_name=image_name, apis=apis, providers={}, + storage=StorageConfig( + backends={ + "kv_default": SqliteKVStoreConfig(db_path=str(distro_dir / "kvstore.db")), + "sql_default": SqliteSqlStoreConfig(db_path=str(distro_dir / "sql_store.db")), + }, + stores=ServerStoresConfig( + metadata=KVStoreReference(backend="kv_default", namespace="registry"), + inference=InferenceStoreReference(backend="sql_default", table_name="inference_store"), + conversations=SqlStoreReference(backend="sql_default", table_name="openai_conversations"), + ), + ), external_providers_dir=build_config.external_providers_dir if build_config.external_providers_dir else EXTERNAL_PROVIDERS_DIR, diff --git a/tests/unit/providers/agent/test_meta_reference_agent.py b/tests/unit/providers/agent/test_meta_reference_agent.py index 48fb7083a..dfd9b6d52 100644 --- a/tests/unit/providers/agent/test_meta_reference_agent.py +++ b/tests/unit/providers/agent/test_meta_reference_agent.py @@ -29,19 +29,15 @@ from llama_stack.providers.inline.agents.meta_reference.persistence import Agent @pytest.fixture(autouse=True) def setup_backends(tmp_path): """Register KV and SQL store backends for testing.""" - from llama_stack.core.storage.datatypes import SqliteSqlStoreConfig, SqliteKVStoreConfig + from llama_stack.core.storage.datatypes import SqliteKVStoreConfig, SqliteSqlStoreConfig from llama_stack.providers.utils.kvstore.kvstore import register_kvstore_backends from llama_stack.providers.utils.sqlstore.sqlstore import register_sqlstore_backends kv_path = str(tmp_path / "test_kv.db") sql_path = str(tmp_path / "test_sql.db") - register_kvstore_backends({ - "kv_default": SqliteKVStoreConfig(db_path=kv_path) - }) - register_sqlstore_backends({ - "sql_default": SqliteSqlStoreConfig(db_path=sql_path) - }) + register_kvstore_backends({"kv_default": SqliteKVStoreConfig(db_path=kv_path)}) + register_sqlstore_backends({"sql_default": SqliteSqlStoreConfig(db_path=sql_path)}) @pytest.fixture diff --git a/tests/unit/utils/inference/test_inference_store.py b/tests/unit/utils/inference/test_inference_store.py index 4f6ba817e..d2de1c759 100644 --- a/tests/unit/utils/inference/test_inference_store.py +++ b/tests/unit/utils/inference/test_inference_store.py @@ -5,7 +5,6 @@ # the root directory of this source tree. import time -from tempfile import TemporaryDirectory import pytest @@ -25,9 +24,7 @@ from llama_stack.providers.utils.sqlstore.sqlstore import register_sqlstore_back def setup_backends(tmp_path): """Register SQL store backends for testing.""" db_path = str(tmp_path / "test.db") - register_sqlstore_backends({ - "sql_default": SqliteSqlStoreConfig(db_path=db_path) - }) + register_sqlstore_backends({"sql_default": SqliteSqlStoreConfig(db_path=db_path)}) def create_test_chat_completion(