Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 55 additions & 17 deletions docs/cli_reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,34 +100,33 @@ $ llama-stack-client models update <model_id> [--provider-id <provider_id>] [--p
$ llama-stack-client models delete <model_id>
```

#### `llama-stack-client memory_banks list`
#### `llama-stack-client vector_dbs list`
```bash
$ llama-stack-client memory_banks list
$ llama-stack-client vector_dbs list
```
```
+--------------+----------------+--------+-------------------+------------------------+--------------------------+
| identifier | provider_id | type | embedding_model | chunk_size_in_tokens | overlap_size_in_tokens |
+==============+================+========+===================+========================+==========================+
| test_bank | meta-reference | vector | all-MiniLM-L6-v2 | 512 | 64 |
+--------------+----------------+--------+-------------------+------------------------+--------------------------+
+--------------+----------------+---------------------+---------------+------------------------+
| identifier | provider_id | provider_resource_id| vector_db_type| params |
+==============+================+=====================+===============+========================+
| test_bank | meta-reference | test_bank | vector | embedding_model: all-MiniLM-L6-v2
embedding_dimension: 384|
+--------------+----------------+---------------------+---------------+------------------------+
```

#### `llama-stack-client memory_banks register`
#### `llama-stack-client vector_dbs register`
```bash
$ llama-stack-client memory_banks register <memory-bank-id> --type <type> [--provider-id <provider-id>] [--provider-memory-bank-id <provider-memory-bank-id>] [--chunk-size <chunk-size>] [--embedding-model <embedding-model>] [--overlap-size <overlap-size>]
$ llama-stack-client vector_dbs register <vector-db-id> [--provider-id <provider-id>] [--provider-vector-db-id <provider-vector-db-id>] [--embedding-model <embedding-model>] [--embedding-dimension <embedding-dimension>]
```

Options:
- `--type`: Required. Type of memory bank. Choices: "vector", "keyvalue", "keyword", "graph"
- `--provider-id`: Optional. Provider ID for the memory bank
- `--provider-memory-bank-id`: Optional. Provider's memory bank ID
- `--chunk-size`: Optional. Chunk size in tokens (for vector type). Default: 512
- `--embedding-model`: Optional. Embedding model (for vector type). Default: "all-MiniLM-L6-v2"
- `--overlap-size`: Optional. Overlap size in tokens (for vector type). Default: 64
- `--provider-id`: Optional. Provider ID for the vector db
- `--provider-vector-db-id`: Optional. Provider's vector db ID
- `--embedding-model`: Optional. Embedding model to use. Default: "all-MiniLM-L6-v2"
- `--embedding-dimension`: Optional. Dimension of embeddings. Default: 384

#### `llama-stack-client memory_banks unregister`
#### `llama-stack-client vector_dbs unregister`
```bash
$ llama-stack-client memory_banks unregister <memory-bank-id>
$ llama-stack-client vector_dbs unregister <vector-db-id>
```

#### `llama-stack-client shields list`
Expand Down Expand Up @@ -212,3 +211,42 @@ Options:
- `--output-dir`: Required. Path to the directory where scoring results will be saved
- `--num-examples`: Optional. Number of examples to evaluate (useful for debugging)
- `--visualize`: Optional flag. If set, visualizes scoring results after completion

#### `llama-stack-client toolgroups list`
```bash
$ llama-stack-client toolgroups list
```
```
+---------------------------+------------------+------+---------------+
| identifier | provider_id | args | mcp_endpoint |
+===========================+==================+======+===============+
| builtin::code_interpreter | code-interpreter | None | None |
+---------------------------+------------------+------+---------------+
| builtin::rag | rag-runtime | None | None |
+---------------------------+------------------+------+---------------+
| builtin::websearch | tavily-search | None | None |
+---------------------------+------------------+------+---------------+
```

#### `llama-stack-client toolgroups get`
```bash
$ llama-stack-client toolgroups get <toolgroup_id>
```

Shows detailed information about a specific toolgroup. If the toolgroup is not found, displays an error message.

#### `llama-stack-client toolgroups register`
```bash
$ llama-stack-client toolgroups register <toolgroup_id> [--provider-id <provider-id>] [--provider-toolgroup-id <provider-toolgroup-id>] [--mcp-config <mcp-config>] [--args <args>]
```

Options:
- `--provider-id`: Optional. Provider ID for the toolgroup
- `--provider-toolgroup-id`: Optional. Provider's toolgroup ID
- `--mcp-config`: Optional. JSON configuration for the MCP endpoint
- `--args`: Optional. JSON arguments for the toolgroup

#### `llama-stack-client toolgroups unregister`
```bash
$ llama-stack-client toolgroups unregister <toolgroup_id>
```
6 changes: 3 additions & 3 deletions src/llama_stack_client/lib/cli/llama_stack_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@
from .eval_tasks import eval_tasks
from .inference import inference
from .inspect import inspect
from .memory_banks import memory_banks
from .models import models
from .post_training import post_training
from .providers import providers
from .scoring_functions import scoring_functions
from .shields import shields
from .toolgroups import toolgroups
from .vector_dbs import vector_dbs


@click.group()
Expand Down Expand Up @@ -60,7 +60,7 @@ def cli(ctx, endpoint: str, config: str | None):
click.echo("Falling back to HTTP client with endpoint", err=True)

if endpoint == "":
endpoint = "http://localhost:5000"
endpoint = "http://localhost:8321"

client = LlamaStackClient(
base_url=endpoint,
Expand All @@ -75,7 +75,7 @@ def cli(ctx, endpoint: str, config: str | None):

# Register all subcommands
cli.add_command(models, "models")
cli.add_command(memory_banks, "memory_banks")
cli.add_command(vector_dbs, "vector_dbs")
cli.add_command(shields, "shields")
cli.add_command(eval_tasks, "eval_tasks")
cli.add_command(providers, "providers")
Expand Down
143 changes: 0 additions & 143 deletions src/llama_stack_client/lib/cli/memory_banks/memory_banks.py

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
# This source code is licensed under the terms described in the LICENSE file in
# the root directory of this source tree.

from .memory_banks import memory_banks
from .vector_dbs import vector_dbs

__all__ = ["memory_banks"]
__all__ = ["vector_dbs"]
115 changes: 115 additions & 0 deletions src/llama_stack_client/lib/cli/vector_dbs/vector_dbs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the terms described in the LICENSE file in
# the root directory of this source tree.

from typing import Optional

import click
import yaml
from rich.console import Console
from rich.table import Table

from ..common.utils import handle_client_errors


@click.group()
def vector_dbs():
"""Query details about available vector dbs on distribution."""
pass


@click.command("list")
@click.pass_context
@handle_client_errors("list vector dbs")
def list(ctx):
"""Show available vector dbs on distribution endpoint"""

client = ctx.obj["client"]
console = Console()
vector_dbs_list_response = client.vector_dbs.list()

if vector_dbs_list_response:
table = Table()
# Add our specific columns
table.add_column("identifier")
table.add_column("provider_id")
table.add_column("provider_resource_id")
table.add_column("vector_db_type")
table.add_column("params")

for item in vector_dbs_list_response:
# Create a dict of all attributes
item_dict = item.__dict__

# Extract our main columns
identifier = str(item_dict.pop("identifier", ""))
provider_id = str(item_dict.pop("provider_id", ""))
provider_resource_id = str(item_dict.pop("provider_resource_id", ""))
vector_db_type = str(item_dict.pop("vector_db_type", ""))
# Convert remaining attributes to YAML string for params column
params = yaml.dump(item_dict, default_flow_style=False)

table.add_row(
identifier, provider_id, provider_resource_id, vector_db_type, params
)

console.print(table)


@vector_dbs.command()
@click.argument("vector-db-id")
@click.option("--provider-id", help="Provider ID for the vector db", default=None)
@click.option("--provider-vector-db-id", help="Provider's vector db ID", default=None)
@click.option(
"--embedding-model",
type=str,
help="Embedding model (for vector type)",
default="all-MiniLM-L6-v2",
)
@click.option(
"--embedding-dimension",
type=int,
help="Embedding dimension (for vector type)",
default=384,
)
@click.pass_context
@handle_client_errors("register vector db")
def register(
ctx,
vector_db_id: str,
provider_id: Optional[str],
provider_vector_db_id: Optional[str],
embedding_model: Optional[str],
embedding_dimension: Optional[int],
):
"""Create a new vector db"""
client = ctx.obj["client"]

response = client.vector_dbs.register(
vector_db_id=vector_db_id,
provider_id=provider_id,
provider_vector_db_id=provider_vector_db_id,
embedding_model=embedding_model,
embedding_dimension=embedding_dimension,
)
if response:
click.echo(yaml.dump(response.dict()))


@vector_dbs.command()
@click.argument("vector-db-id")
@click.pass_context
@handle_client_errors("delete vector db")
def unregister(ctx, vector_db_id: str):
"""Delete a vector db"""
client = ctx.obj["client"]
client.vector_dbs.unregister(vector_db_id=vector_db_id)
click.echo(f"Vector db '{vector_db_id}' deleted successfully")


# Register subcommands
vector_dbs.add_command(list)
vector_dbs.add_command(register)
vector_dbs.add_command(unregister)
Loading