From 0b8f28eaf0d0ab75f85e86b678f8469fa5655c1d Mon Sep 17 00:00:00 2001 From: Guangya Liu Date: Tue, 17 Feb 2026 14:02:35 -0500 Subject: [PATCH 1/2] fix: enable datasets,post_training and eval_tsaks works --- src/llama_stack_client/lib/cli/datasets/list.py | 2 +- src/llama_stack_client/lib/cli/datasets/register.py | 2 +- src/llama_stack_client/lib/cli/datasets/unregister.py | 2 +- src/llama_stack_client/lib/cli/eval/run_benchmark.py | 6 +++--- src/llama_stack_client/lib/cli/eval/run_scoring.py | 4 ++-- .../lib/cli/eval_tasks/eval_tasks.py | 6 +++--- src/llama_stack_client/lib/cli/eval_tasks/list.py | 2 +- .../lib/cli/post_training/post_training.py | 10 +++++----- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/llama_stack_client/lib/cli/datasets/list.py b/src/llama_stack_client/lib/cli/datasets/list.py index 61d625c9..4d34c19f 100644 --- a/src/llama_stack_client/lib/cli/datasets/list.py +++ b/src/llama_stack_client/lib/cli/datasets/list.py @@ -21,7 +21,7 @@ def list_datasets(ctx): console = Console() headers = ["identifier", "provider_id", "metadata", "type", "purpose"] - datasets_list_response = client.datasets.list() + datasets_list_response = client.beta.datasets.list() if datasets_list_response: table = Table() for header in headers: diff --git a/src/llama_stack_client/lib/cli/datasets/register.py b/src/llama_stack_client/lib/cli/datasets/register.py index d990e30c..c841aaa1 100644 --- a/src/llama_stack_client/lib/cli/datasets/register.py +++ b/src/llama_stack_client/lib/cli/datasets/register.py @@ -68,7 +68,7 @@ def register( if not url: raise click.BadParameter("URL is required when dataset path is not specified") - response = client.datasets.register( + response = client.beta.datasets.register( dataset_id=dataset_id, source={"uri": url}, metadata=metadata, diff --git a/src/llama_stack_client/lib/cli/datasets/unregister.py b/src/llama_stack_client/lib/cli/datasets/unregister.py index 8ca7cceb..560389f4 100644 --- a/src/llama_stack_client/lib/cli/datasets/unregister.py +++ b/src/llama_stack_client/lib/cli/datasets/unregister.py @@ -16,5 +16,5 @@ def unregister(ctx, dataset_id: str): """Remove a dataset""" client = ctx.obj["client"] - client.datasets.unregister(dataset_id=dataset_id) + client.beta.datasets.unregister(dataset_id=dataset_id) click.echo(f"Dataset '{dataset_id}' unregistered successfully") diff --git a/src/llama_stack_client/lib/cli/eval/run_benchmark.py b/src/llama_stack_client/lib/cli/eval/run_benchmark.py index e088137e..920407d9 100644 --- a/src/llama_stack_client/lib/cli/eval/run_benchmark.py +++ b/src/llama_stack_client/lib/cli/eval/run_benchmark.py @@ -96,16 +96,16 @@ def run_benchmark( client = ctx.obj["client"] for benchmark_id in benchmark_ids: - benchmark = client.benchmarks.retrieve(benchmark_id=benchmark_id) + benchmark = client.alpha.benchmarks.retrieve(benchmark_id=benchmark_id) scoring_functions = benchmark.scoring_functions dataset_id = benchmark.dataset_id - results = client.datasets.iterrows(dataset_id=dataset_id, limit=-1 if num_examples is None else num_examples) + results = client.beta.datasets.iterrows(dataset_id=dataset_id, limit=-1 if num_examples is None else num_examples) output_res = {} for i, r in enumerate(tqdm(results.data)): - eval_res = client.eval.evaluate_rows( + eval_res = client.alpha.eval.evaluate_rows( benchmark_id=benchmark_id, input_rows=[r], scoring_functions=scoring_functions, diff --git a/src/llama_stack_client/lib/cli/eval/run_scoring.py b/src/llama_stack_client/lib/cli/eval/run_scoring.py index a9b29bbb..f95f1cc1 100644 --- a/src/llama_stack_client/lib/cli/eval/run_scoring.py +++ b/src/llama_stack_client/lib/cli/eval/run_scoring.py @@ -77,7 +77,7 @@ def run_scoring( output_res = {} if dataset_id is not None: - dataset = client.datasets.retrieve(dataset_id=dataset_id) + dataset = client.beta.datasets.retrieve(dataset_id=dataset_id) if not dataset: click.BadParameter( f"Dataset {dataset_id} not found. Please register using llama-stack-client datasets register" @@ -85,7 +85,7 @@ def run_scoring( # TODO: this will eventually be replaced with jobs polling from server vis score_bath # For now, get all datasets rows via datasets API - results = client.datasets.iterrows(dataset_id=dataset_id, limit=-1 if num_examples is None else num_examples) + results = client.beta.datasets.iterrows(dataset_id=dataset_id, limit=-1 if num_examples is None else num_examples) rows = results.rows if dataset_path is not None: diff --git a/src/llama_stack_client/lib/cli/eval_tasks/eval_tasks.py b/src/llama_stack_client/lib/cli/eval_tasks/eval_tasks.py index 183498fb..d9fe8529 100644 --- a/src/llama_stack_client/lib/cli/eval_tasks/eval_tasks.py +++ b/src/llama_stack_client/lib/cli/eval_tasks/eval_tasks.py @@ -49,12 +49,12 @@ def register( except json.JSONDecodeError as err: raise click.BadParameter("Metadata must be valid JSON") from err - response = client.eval_tasks.register( - eval_task_id=eval_task_id, + response = client.alpha.benchmarks.register( + benchmark_id=eval_task_id, dataset_id=dataset_id, scoring_functions=scoring_functions, provider_id=provider_id, - provider_eval_task_id=provider_eval_task_id, + provider_benchmark_id=provider_eval_task_id, metadata=metadata, ) if response: diff --git a/src/llama_stack_client/lib/cli/eval_tasks/list.py b/src/llama_stack_client/lib/cli/eval_tasks/list.py index d7eb9c53..211b3ef2 100644 --- a/src/llama_stack_client/lib/cli/eval_tasks/list.py +++ b/src/llama_stack_client/lib/cli/eval_tasks/list.py @@ -21,7 +21,7 @@ def list_eval_tasks(ctx): client = ctx.obj["client"] console = Console() headers = [] - eval_tasks_list_response = client.eval_tasks.list() + eval_tasks_list_response = client.alpha.benchmarks.list() if eval_tasks_list_response and len(eval_tasks_list_response) > 0: headers = sorted(eval_tasks_list_response[0].__dict__.keys()) diff --git a/src/llama_stack_client/lib/cli/post_training/post_training.py b/src/llama_stack_client/lib/cli/post_training/post_training.py index 2d766652..953c8b3c 100644 --- a/src/llama_stack_client/lib/cli/post_training/post_training.py +++ b/src/llama_stack_client/lib/cli/post_training/post_training.py @@ -44,7 +44,7 @@ def supervised_fine_tune( client = ctx.obj["client"] console = Console() - post_training_job = client.post_training.supervised_fine_tune( + post_training_job = client.alpha.post_training.supervised_fine_tune( job_uuid=job_uuid, model=model, algorithm_config=algorithm_config, @@ -66,7 +66,7 @@ def get_training_jobs(ctx): client = ctx.obj["client"] console = Console() - post_training_jobs = client.post_training.job.list() + post_training_jobs = client.alpha.post_training.job.list() console.print([post_training_job.job_uuid for post_training_job in post_training_jobs]) @@ -80,7 +80,7 @@ def get_training_job_status(ctx, job_uuid: str): client = ctx.obj["client"] console = Console() - job_status_reponse = client.post_training.job.status(job_uuid=job_uuid) + job_status_reponse = client.alpha.post_training.job.status(job_uuid=job_uuid) console.print(job_status_reponse) @@ -94,7 +94,7 @@ def get_training_job_artifacts(ctx, job_uuid: str): client = ctx.obj["client"] console = Console() - job_artifacts = client.post_training.job.artifacts(job_uuid=job_uuid) + job_artifacts = client.alpha.post_training.job.artifacts(job_uuid=job_uuid) console.print(job_artifacts) @@ -107,7 +107,7 @@ def cancel_training_job(ctx, job_uuid: str): """Cancel the training job""" client = ctx.obj["client"] - client.post_training.job.cancel(job_uuid=job_uuid) + client.alpha.post_training.job.cancel(job_uuid=job_uuid) # Register subcommands From d7ce0970863ce99aeb307a1e404ef42034eb77be Mon Sep 17 00:00:00 2001 From: Guangya Liu Date: Tue, 17 Feb 2026 14:12:26 -0500 Subject: [PATCH 2/2] Fixed pre commit error --- .../lib/cli/eval/run_benchmark.py | 4 +++- src/llama_stack_client/lib/cli/eval/run_scoring.py | 4 +++- uv.lock | 14 +++++++------- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/llama_stack_client/lib/cli/eval/run_benchmark.py b/src/llama_stack_client/lib/cli/eval/run_benchmark.py index 920407d9..c7b6fb39 100644 --- a/src/llama_stack_client/lib/cli/eval/run_benchmark.py +++ b/src/llama_stack_client/lib/cli/eval/run_benchmark.py @@ -100,7 +100,9 @@ def run_benchmark( scoring_functions = benchmark.scoring_functions dataset_id = benchmark.dataset_id - results = client.beta.datasets.iterrows(dataset_id=dataset_id, limit=-1 if num_examples is None else num_examples) + results = client.beta.datasets.iterrows( + dataset_id=dataset_id, limit=-1 if num_examples is None else num_examples + ) output_res = {} diff --git a/src/llama_stack_client/lib/cli/eval/run_scoring.py b/src/llama_stack_client/lib/cli/eval/run_scoring.py index f95f1cc1..1f1a853d 100644 --- a/src/llama_stack_client/lib/cli/eval/run_scoring.py +++ b/src/llama_stack_client/lib/cli/eval/run_scoring.py @@ -85,7 +85,9 @@ def run_scoring( # TODO: this will eventually be replaced with jobs polling from server vis score_bath # For now, get all datasets rows via datasets API - results = client.beta.datasets.iterrows(dataset_id=dataset_id, limit=-1 if num_examples is None else num_examples) + results = client.beta.datasets.iterrows( + dataset_id=dataset_id, limit=-1 if num_examples is None else num_examples + ) rows = results.rows if dataset_path is not None: diff --git a/uv.lock b/uv.lock index d6bb1873..5d368e03 100644 --- a/uv.lock +++ b/uv.lock @@ -517,7 +517,7 @@ wheels = [ [[package]] name = "llama-stack-client" -version = "0.4.0a15" +version = "0.5.0a2" source = { editable = "." } dependencies = [ { name = "anyio" }, @@ -1095,10 +1095,10 @@ resolution-markers = [ "python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", ] dependencies = [ - { name = "annotated-types" }, - { name = "pydantic-core" }, - { name = "typing-extensions" }, - { name = "typing-inspection" }, + { name = "annotated-types", marker = "extra == 'group-18-llama-stack-client-pydantic-v2' or extra != 'group-18-llama-stack-client-pydantic-v1'" }, + { name = "pydantic-core", marker = "extra == 'group-18-llama-stack-client-pydantic-v2' or extra != 'group-18-llama-stack-client-pydantic-v1'" }, + { name = "typing-extensions", marker = "extra == 'group-18-llama-stack-client-pydantic-v2' or extra != 'group-18-llama-stack-client-pydantic-v1'" }, + { name = "typing-inspection", marker = "extra == 'group-18-llama-stack-client-pydantic-v2' or extra != 'group-18-llama-stack-client-pydantic-v1'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } wheels = [ @@ -1110,7 +1110,7 @@ name = "pydantic-core" version = "2.41.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions" }, + { name = "typing-extensions", marker = "extra == 'group-18-llama-stack-client-pydantic-v2' or extra != 'group-18-llama-stack-client-pydantic-v1'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } wheels = [ @@ -1509,7 +1509,7 @@ name = "typing-inspection" version = "0.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions" }, + { name = "typing-extensions", marker = "extra == 'group-18-llama-stack-client-pydantic-v2' or extra != 'group-18-llama-stack-client-pydantic-v1'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } wheels = [