llama-stack 0.0.42__py3-none-any.whl → 0.3.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- llama_stack/__init__.py +5 -0
- llama_stack/apis/agents/__init__.py +1 -1
- llama_stack/apis/agents/agents.py +700 -281
- llama_stack/apis/agents/openai_responses.py +1311 -0
- llama_stack/{providers/adapters/memory/sample/config.py → apis/batches/__init__.py} +2 -5
- llama_stack/apis/batches/batches.py +100 -0
- llama_stack/apis/benchmarks/__init__.py +7 -0
- llama_stack/apis/benchmarks/benchmarks.py +108 -0
- llama_stack/apis/common/content_types.py +143 -0
- llama_stack/apis/common/errors.py +103 -0
- llama_stack/apis/common/job_types.py +38 -0
- llama_stack/apis/common/responses.py +36 -0
- llama_stack/apis/common/training_types.py +36 -5
- llama_stack/apis/common/type_system.py +158 -0
- llama_stack/apis/conversations/__init__.py +31 -0
- llama_stack/apis/conversations/conversations.py +286 -0
- llama_stack/apis/datasetio/__init__.py +7 -0
- llama_stack/apis/datasetio/datasetio.py +59 -0
- llama_stack/apis/datasets/__init__.py +7 -0
- llama_stack/apis/datasets/datasets.py +251 -0
- llama_stack/apis/datatypes.py +160 -0
- llama_stack/apis/eval/__init__.py +7 -0
- llama_stack/apis/eval/eval.py +169 -0
- llama_stack/apis/files/__init__.py +7 -0
- llama_stack/apis/files/files.py +199 -0
- llama_stack/apis/inference/__init__.py +1 -1
- llama_stack/apis/inference/inference.py +1169 -113
- llama_stack/apis/inspect/__init__.py +1 -1
- llama_stack/apis/inspect/inspect.py +69 -16
- llama_stack/apis/models/__init__.py +1 -1
- llama_stack/apis/models/models.py +148 -21
- llama_stack/apis/post_training/__init__.py +1 -1
- llama_stack/apis/post_training/post_training.py +265 -120
- llama_stack/{providers/adapters/agents/sample/config.py → apis/prompts/__init__.py} +2 -5
- llama_stack/apis/prompts/prompts.py +204 -0
- llama_stack/apis/providers/__init__.py +7 -0
- llama_stack/apis/providers/providers.py +69 -0
- llama_stack/apis/resource.py +37 -0
- llama_stack/apis/safety/__init__.py +1 -1
- llama_stack/apis/safety/safety.py +95 -12
- llama_stack/apis/scoring/__init__.py +7 -0
- llama_stack/apis/scoring/scoring.py +93 -0
- llama_stack/apis/scoring_functions/__init__.py +7 -0
- llama_stack/apis/scoring_functions/scoring_functions.py +208 -0
- llama_stack/apis/shields/__init__.py +1 -1
- llama_stack/apis/shields/shields.py +76 -33
- llama_stack/apis/synthetic_data_generation/__init__.py +1 -1
- llama_stack/apis/synthetic_data_generation/synthetic_data_generation.py +40 -17
- llama_stack/apis/telemetry/__init__.py +1 -1
- llama_stack/apis/telemetry/telemetry.py +322 -31
- llama_stack/apis/{dataset → tools}/__init__.py +2 -1
- llama_stack/apis/tools/rag_tool.py +218 -0
- llama_stack/apis/tools/tools.py +221 -0
- llama_stack/apis/vector_io/__init__.py +7 -0
- llama_stack/apis/vector_io/vector_io.py +960 -0
- llama_stack/apis/vector_stores/__init__.py +7 -0
- llama_stack/apis/vector_stores/vector_stores.py +51 -0
- llama_stack/apis/version.py +9 -0
- llama_stack/cli/llama.py +13 -5
- llama_stack/cli/stack/_list_deps.py +182 -0
- llama_stack/cli/stack/list_apis.py +1 -1
- llama_stack/cli/stack/list_deps.py +55 -0
- llama_stack/cli/stack/list_providers.py +24 -10
- llama_stack/cli/stack/list_stacks.py +56 -0
- llama_stack/cli/stack/remove.py +115 -0
- llama_stack/cli/stack/run.py +169 -56
- llama_stack/cli/stack/stack.py +18 -4
- llama_stack/cli/stack/utils.py +151 -0
- llama_stack/cli/table.py +23 -61
- llama_stack/cli/utils.py +29 -0
- llama_stack/core/access_control/access_control.py +131 -0
- llama_stack/core/access_control/conditions.py +129 -0
- llama_stack/core/access_control/datatypes.py +107 -0
- llama_stack/core/build.py +164 -0
- llama_stack/core/client.py +205 -0
- llama_stack/core/common.sh +37 -0
- llama_stack/{distribution → core}/configure.py +74 -55
- llama_stack/core/conversations/conversations.py +309 -0
- llama_stack/core/datatypes.py +625 -0
- llama_stack/core/distribution.py +276 -0
- llama_stack/core/external.py +54 -0
- llama_stack/core/id_generation.py +42 -0
- llama_stack/core/inspect.py +86 -0
- llama_stack/core/library_client.py +539 -0
- llama_stack/core/prompts/prompts.py +234 -0
- llama_stack/core/providers.py +137 -0
- llama_stack/core/request_headers.py +115 -0
- llama_stack/core/resolver.py +506 -0
- llama_stack/core/routers/__init__.py +101 -0
- llama_stack/core/routers/datasets.py +73 -0
- llama_stack/core/routers/eval_scoring.py +155 -0
- llama_stack/core/routers/inference.py +645 -0
- llama_stack/core/routers/safety.py +85 -0
- llama_stack/core/routers/tool_runtime.py +91 -0
- llama_stack/core/routers/vector_io.py +442 -0
- llama_stack/core/routing_tables/benchmarks.py +62 -0
- llama_stack/core/routing_tables/common.py +254 -0
- llama_stack/core/routing_tables/datasets.py +91 -0
- llama_stack/core/routing_tables/models.py +163 -0
- llama_stack/core/routing_tables/scoring_functions.py +66 -0
- llama_stack/core/routing_tables/shields.py +61 -0
- llama_stack/core/routing_tables/toolgroups.py +129 -0
- llama_stack/core/routing_tables/vector_stores.py +292 -0
- llama_stack/core/server/auth.py +187 -0
- llama_stack/core/server/auth_providers.py +494 -0
- llama_stack/core/server/quota.py +110 -0
- llama_stack/core/server/routes.py +141 -0
- llama_stack/core/server/server.py +542 -0
- llama_stack/core/server/tracing.py +80 -0
- llama_stack/core/stack.py +546 -0
- llama_stack/core/start_stack.sh +117 -0
- llama_stack/core/storage/datatypes.py +283 -0
- llama_stack/{cli/model → core/store}/__init__.py +1 -1
- llama_stack/core/store/registry.py +199 -0
- llama_stack/core/testing_context.py +49 -0
- llama_stack/core/ui/app.py +55 -0
- llama_stack/core/ui/modules/api.py +32 -0
- llama_stack/core/ui/modules/utils.py +42 -0
- llama_stack/core/ui/page/distribution/datasets.py +18 -0
- llama_stack/core/ui/page/distribution/eval_tasks.py +20 -0
- llama_stack/core/ui/page/distribution/models.py +18 -0
- llama_stack/core/ui/page/distribution/providers.py +27 -0
- llama_stack/core/ui/page/distribution/resources.py +48 -0
- llama_stack/core/ui/page/distribution/scoring_functions.py +18 -0
- llama_stack/core/ui/page/distribution/shields.py +19 -0
- llama_stack/core/ui/page/evaluations/app_eval.py +143 -0
- llama_stack/core/ui/page/evaluations/native_eval.py +253 -0
- llama_stack/core/ui/page/playground/chat.py +130 -0
- llama_stack/core/ui/page/playground/tools.py +352 -0
- llama_stack/core/utils/config.py +30 -0
- llama_stack/{distribution → core}/utils/config_dirs.py +3 -6
- llama_stack/core/utils/config_resolution.py +125 -0
- llama_stack/core/utils/context.py +84 -0
- llama_stack/core/utils/exec.py +96 -0
- llama_stack/{providers/impls/meta_reference/codeshield/config.py → core/utils/image_types.py} +4 -3
- llama_stack/{distribution → core}/utils/model_utils.py +2 -2
- llama_stack/{distribution → core}/utils/prompt_for_config.py +30 -63
- llama_stack/{apis/batch_inference → distributions/dell}/__init__.py +1 -1
- llama_stack/distributions/dell/build.yaml +33 -0
- llama_stack/distributions/dell/dell.py +158 -0
- llama_stack/distributions/dell/run-with-safety.yaml +141 -0
- llama_stack/distributions/dell/run.yaml +132 -0
- llama_stack/distributions/meta-reference-gpu/__init__.py +7 -0
- llama_stack/distributions/meta-reference-gpu/build.yaml +32 -0
- llama_stack/distributions/meta-reference-gpu/meta_reference.py +163 -0
- llama_stack/distributions/meta-reference-gpu/run-with-safety.yaml +154 -0
- llama_stack/distributions/meta-reference-gpu/run.yaml +139 -0
- llama_stack/{apis/evals → distributions/nvidia}/__init__.py +1 -1
- llama_stack/distributions/nvidia/build.yaml +29 -0
- llama_stack/distributions/nvidia/nvidia.py +154 -0
- llama_stack/distributions/nvidia/run-with-safety.yaml +137 -0
- llama_stack/distributions/nvidia/run.yaml +116 -0
- llama_stack/distributions/open-benchmark/__init__.py +7 -0
- llama_stack/distributions/open-benchmark/build.yaml +36 -0
- llama_stack/distributions/open-benchmark/open_benchmark.py +303 -0
- llama_stack/distributions/open-benchmark/run.yaml +252 -0
- llama_stack/distributions/postgres-demo/__init__.py +7 -0
- llama_stack/distributions/postgres-demo/build.yaml +23 -0
- llama_stack/distributions/postgres-demo/postgres_demo.py +125 -0
- llama_stack/distributions/postgres-demo/run.yaml +115 -0
- llama_stack/{apis/memory → distributions/starter}/__init__.py +1 -1
- llama_stack/distributions/starter/build.yaml +61 -0
- llama_stack/distributions/starter/run-with-postgres-store.yaml +285 -0
- llama_stack/distributions/starter/run.yaml +276 -0
- llama_stack/distributions/starter/starter.py +345 -0
- llama_stack/distributions/starter-gpu/__init__.py +7 -0
- llama_stack/distributions/starter-gpu/build.yaml +61 -0
- llama_stack/distributions/starter-gpu/run-with-postgres-store.yaml +288 -0
- llama_stack/distributions/starter-gpu/run.yaml +279 -0
- llama_stack/distributions/starter-gpu/starter_gpu.py +20 -0
- llama_stack/distributions/template.py +456 -0
- llama_stack/distributions/watsonx/__init__.py +7 -0
- llama_stack/distributions/watsonx/build.yaml +33 -0
- llama_stack/distributions/watsonx/run.yaml +133 -0
- llama_stack/distributions/watsonx/watsonx.py +95 -0
- llama_stack/env.py +24 -0
- llama_stack/log.py +314 -0
- llama_stack/models/llama/checkpoint.py +164 -0
- llama_stack/models/llama/datatypes.py +164 -0
- llama_stack/models/llama/hadamard_utils.py +86 -0
- llama_stack/models/llama/llama3/args.py +74 -0
- llama_stack/models/llama/llama3/chat_format.py +286 -0
- llama_stack/models/llama/llama3/generation.py +376 -0
- llama_stack/models/llama/llama3/interface.py +255 -0
- llama_stack/models/llama/llama3/model.py +304 -0
- llama_stack/models/llama/llama3/multimodal/__init__.py +12 -0
- llama_stack/models/llama/llama3/multimodal/encoder_utils.py +180 -0
- llama_stack/models/llama/llama3/multimodal/image_transform.py +409 -0
- llama_stack/models/llama/llama3/multimodal/model.py +1430 -0
- llama_stack/models/llama/llama3/multimodal/utils.py +26 -0
- llama_stack/models/llama/llama3/prompt_templates/__init__.py +22 -0
- llama_stack/models/llama/llama3/prompt_templates/base.py +39 -0
- llama_stack/models/llama/llama3/prompt_templates/system_prompts.py +319 -0
- llama_stack/models/llama/llama3/prompt_templates/tool_response.py +62 -0
- llama_stack/models/llama/llama3/quantization/loader.py +316 -0
- llama_stack/models/llama/llama3/template_data.py +116 -0
- llama_stack/models/llama/llama3/tokenizer.model +128000 -0
- llama_stack/models/llama/llama3/tokenizer.py +198 -0
- llama_stack/models/llama/llama3/tool_utils.py +266 -0
- llama_stack/models/llama/llama3_1/__init__.py +12 -0
- llama_stack/models/llama/llama3_1/prompt_format.md +358 -0
- llama_stack/models/llama/llama3_1/prompts.py +258 -0
- llama_stack/models/llama/llama3_2/prompts_text.py +229 -0
- llama_stack/models/llama/llama3_2/prompts_vision.py +126 -0
- llama_stack/models/llama/llama3_2/text_prompt_format.md +286 -0
- llama_stack/models/llama/llama3_2/vision_prompt_format.md +141 -0
- llama_stack/models/llama/llama3_3/prompts.py +259 -0
- llama_stack/models/llama/llama4/args.py +107 -0
- llama_stack/models/llama/llama4/chat_format.py +317 -0
- llama_stack/models/llama/llama4/datatypes.py +56 -0
- llama_stack/models/llama/llama4/ffn.py +58 -0
- llama_stack/models/llama/llama4/generation.py +313 -0
- llama_stack/models/llama/llama4/model.py +437 -0
- llama_stack/models/llama/llama4/moe.py +214 -0
- llama_stack/models/llama/llama4/preprocess.py +435 -0
- llama_stack/models/llama/llama4/prompt_format.md +304 -0
- llama_stack/models/llama/llama4/prompt_templates/system_prompts.py +136 -0
- llama_stack/models/llama/llama4/prompts.py +279 -0
- llama_stack/models/llama/llama4/quantization/__init__.py +5 -0
- llama_stack/models/llama/llama4/quantization/loader.py +226 -0
- llama_stack/models/llama/llama4/tokenizer.model +200000 -0
- llama_stack/models/llama/llama4/tokenizer.py +263 -0
- llama_stack/models/llama/llama4/vision/__init__.py +5 -0
- llama_stack/models/llama/llama4/vision/embedding.py +210 -0
- llama_stack/models/llama/llama4/vision/encoder.py +412 -0
- llama_stack/models/llama/prompt_format.py +191 -0
- llama_stack/models/llama/quantize_impls.py +316 -0
- llama_stack/models/llama/sku_list.py +1029 -0
- llama_stack/models/llama/sku_types.py +233 -0
- llama_stack/models/llama/tokenizer_utils.py +40 -0
- llama_stack/providers/datatypes.py +136 -107
- llama_stack/providers/inline/__init__.py +5 -0
- llama_stack/providers/inline/agents/__init__.py +5 -0
- llama_stack/providers/{impls/meta_reference/agents → inline/agents/meta_reference}/__init__.py +12 -5
- llama_stack/providers/inline/agents/meta_reference/agent_instance.py +1024 -0
- llama_stack/providers/inline/agents/meta_reference/agents.py +383 -0
- llama_stack/providers/inline/agents/meta_reference/config.py +37 -0
- llama_stack/providers/inline/agents/meta_reference/persistence.py +228 -0
- llama_stack/providers/inline/agents/meta_reference/responses/__init__.py +5 -0
- llama_stack/providers/inline/agents/meta_reference/responses/openai_responses.py +423 -0
- llama_stack/providers/inline/agents/meta_reference/responses/streaming.py +1226 -0
- llama_stack/providers/inline/agents/meta_reference/responses/tool_executor.py +449 -0
- llama_stack/providers/inline/agents/meta_reference/responses/types.py +194 -0
- llama_stack/providers/inline/agents/meta_reference/responses/utils.py +365 -0
- llama_stack/providers/inline/agents/meta_reference/safety.py +52 -0
- llama_stack/providers/inline/batches/__init__.py +5 -0
- llama_stack/providers/inline/batches/reference/__init__.py +36 -0
- llama_stack/providers/inline/batches/reference/batches.py +679 -0
- llama_stack/providers/inline/batches/reference/config.py +40 -0
- llama_stack/providers/inline/datasetio/__init__.py +5 -0
- llama_stack/providers/inline/datasetio/localfs/__init__.py +20 -0
- llama_stack/providers/inline/datasetio/localfs/config.py +23 -0
- llama_stack/providers/inline/datasetio/localfs/datasetio.py +113 -0
- llama_stack/providers/inline/eval/__init__.py +5 -0
- llama_stack/providers/inline/eval/meta_reference/__init__.py +28 -0
- llama_stack/providers/inline/eval/meta_reference/config.py +23 -0
- llama_stack/providers/inline/eval/meta_reference/eval.py +259 -0
- llama_stack/providers/inline/files/localfs/__init__.py +20 -0
- llama_stack/providers/inline/files/localfs/config.py +31 -0
- llama_stack/providers/inline/files/localfs/files.py +219 -0
- llama_stack/providers/inline/inference/__init__.py +5 -0
- llama_stack/providers/{impls/meta_reference/inference → inline/inference/meta_reference}/__init__.py +4 -4
- llama_stack/providers/inline/inference/meta_reference/common.py +24 -0
- llama_stack/providers/inline/inference/meta_reference/config.py +68 -0
- llama_stack/providers/inline/inference/meta_reference/generators.py +211 -0
- llama_stack/providers/inline/inference/meta_reference/inference.py +158 -0
- llama_stack/providers/inline/inference/meta_reference/model_parallel.py +96 -0
- llama_stack/providers/{impls/meta_reference/inference → inline/inference/meta_reference}/parallel_utils.py +56 -73
- llama_stack/providers/inline/inference/sentence_transformers/__init__.py +22 -0
- llama_stack/providers/{impls/meta_reference/agents → inline/inference/sentence_transformers}/config.py +6 -4
- llama_stack/providers/inline/inference/sentence_transformers/sentence_transformers.py +83 -0
- llama_stack/providers/inline/post_training/__init__.py +5 -0
- llama_stack/providers/inline/post_training/common/__init__.py +5 -0
- llama_stack/providers/inline/post_training/common/utils.py +35 -0
- llama_stack/providers/inline/post_training/common/validator.py +36 -0
- llama_stack/providers/inline/post_training/huggingface/__init__.py +27 -0
- llama_stack/providers/inline/post_training/huggingface/config.py +83 -0
- llama_stack/providers/inline/post_training/huggingface/post_training.py +208 -0
- llama_stack/providers/inline/post_training/huggingface/recipes/__init__.py +5 -0
- llama_stack/providers/inline/post_training/huggingface/recipes/finetune_single_device.py +519 -0
- llama_stack/providers/inline/post_training/huggingface/recipes/finetune_single_device_dpo.py +485 -0
- llama_stack/providers/inline/post_training/huggingface/utils.py +269 -0
- llama_stack/providers/inline/post_training/torchtune/__init__.py +27 -0
- llama_stack/providers/inline/post_training/torchtune/common/__init__.py +5 -0
- llama_stack/providers/inline/post_training/torchtune/common/checkpointer.py +240 -0
- llama_stack/providers/inline/post_training/torchtune/common/utils.py +99 -0
- llama_stack/providers/inline/post_training/torchtune/config.py +20 -0
- llama_stack/providers/inline/post_training/torchtune/datasets/__init__.py +5 -0
- llama_stack/providers/inline/post_training/torchtune/datasets/format_adapter.py +57 -0
- llama_stack/providers/inline/post_training/torchtune/datasets/sft.py +78 -0
- llama_stack/providers/inline/post_training/torchtune/post_training.py +178 -0
- llama_stack/providers/inline/post_training/torchtune/recipes/__init__.py +5 -0
- llama_stack/providers/inline/post_training/torchtune/recipes/lora_finetuning_single_device.py +588 -0
- llama_stack/providers/inline/safety/__init__.py +5 -0
- llama_stack/providers/{impls/meta_reference/codeshield → inline/safety/code_scanner}/__init__.py +4 -2
- llama_stack/providers/inline/safety/code_scanner/code_scanner.py +128 -0
- llama_stack/providers/{impls/meta_reference/memory → inline/safety/code_scanner}/config.py +5 -3
- llama_stack/providers/inline/safety/llama_guard/__init__.py +19 -0
- llama_stack/providers/inline/safety/llama_guard/config.py +19 -0
- llama_stack/providers/inline/safety/llama_guard/llama_guard.py +489 -0
- llama_stack/providers/{adapters/memory/sample → inline/safety/prompt_guard}/__init__.py +4 -4
- llama_stack/providers/inline/safety/prompt_guard/config.py +32 -0
- llama_stack/providers/inline/safety/prompt_guard/prompt_guard.py +131 -0
- llama_stack/providers/inline/scoring/__init__.py +5 -0
- llama_stack/providers/inline/scoring/basic/__init__.py +25 -0
- llama_stack/providers/{adapters/memory/weaviate → inline/scoring/basic}/config.py +5 -7
- llama_stack/providers/inline/scoring/basic/scoring.py +126 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/__init__.py +5 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/docvqa_scoring_fn.py +240 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/equality_scoring_fn.py +41 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/__init__.py +5 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/docvqa.py +21 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/equality.py +21 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/ifeval.py +23 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/regex_parser_math_response.py +27 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/regex_parser_multiple_choice_answer.py +71 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/subset_of.py +21 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/ifeval_scoring_fn.py +80 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/regex_parser_math_response_scoring_fn.py +66 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/regex_parser_scoring_fn.py +58 -0
- llama_stack/providers/inline/scoring/basic/scoring_fn/subset_of_scoring_fn.py +38 -0
- llama_stack/providers/inline/scoring/basic/utils/__init__.py +5 -0
- llama_stack/providers/inline/scoring/basic/utils/ifeval_utils.py +3319 -0
- llama_stack/providers/inline/scoring/basic/utils/math_utils.py +330 -0
- llama_stack/providers/inline/scoring/braintrust/__init__.py +27 -0
- llama_stack/providers/inline/scoring/braintrust/braintrust.py +230 -0
- llama_stack/providers/inline/scoring/braintrust/config.py +21 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/__init__.py +5 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/__init__.py +5 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/answer_correctness.py +24 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/answer_relevancy.py +24 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/answer_similarity.py +24 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/context_entity_recall.py +24 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/context_precision.py +24 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/context_recall.py +24 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/context_relevancy.py +23 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/factuality.py +24 -0
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/faithfulness.py +24 -0
- llama_stack/providers/inline/scoring/llm_as_judge/__init__.py +21 -0
- llama_stack/providers/inline/scoring/llm_as_judge/config.py +14 -0
- llama_stack/providers/inline/scoring/llm_as_judge/scoring.py +113 -0
- llama_stack/providers/inline/scoring/llm_as_judge/scoring_fn/__init__.py +5 -0
- llama_stack/providers/inline/scoring/llm_as_judge/scoring_fn/fn_defs/__init__.py +5 -0
- llama_stack/providers/inline/scoring/llm_as_judge/scoring_fn/fn_defs/llm_as_judge_405b_simpleqa.py +96 -0
- llama_stack/providers/inline/scoring/llm_as_judge/scoring_fn/fn_defs/llm_as_judge_base.py +20 -0
- llama_stack/providers/inline/scoring/llm_as_judge/scoring_fn/llm_as_judge_scoring_fn.py +81 -0
- llama_stack/providers/inline/telemetry/__init__.py +5 -0
- llama_stack/providers/inline/telemetry/meta_reference/__init__.py +21 -0
- llama_stack/providers/inline/telemetry/meta_reference/config.py +47 -0
- llama_stack/providers/inline/telemetry/meta_reference/telemetry.py +252 -0
- llama_stack/providers/inline/tool_runtime/__init__.py +5 -0
- llama_stack/providers/inline/tool_runtime/rag/__init__.py +19 -0
- llama_stack/providers/{impls/meta_reference/telemetry → inline/tool_runtime/rag}/config.py +5 -3
- llama_stack/providers/inline/tool_runtime/rag/context_retriever.py +77 -0
- llama_stack/providers/inline/tool_runtime/rag/memory.py +332 -0
- llama_stack/providers/inline/vector_io/__init__.py +5 -0
- llama_stack/providers/inline/vector_io/chroma/__init__.py +19 -0
- llama_stack/providers/inline/vector_io/chroma/config.py +30 -0
- llama_stack/providers/inline/vector_io/faiss/__init__.py +21 -0
- llama_stack/providers/inline/vector_io/faiss/config.py +26 -0
- llama_stack/providers/inline/vector_io/faiss/faiss.py +293 -0
- llama_stack/providers/inline/vector_io/milvus/__init__.py +19 -0
- llama_stack/providers/inline/vector_io/milvus/config.py +29 -0
- llama_stack/providers/inline/vector_io/qdrant/__init__.py +20 -0
- llama_stack/providers/inline/vector_io/qdrant/config.py +29 -0
- llama_stack/providers/inline/vector_io/sqlite_vec/__init__.py +20 -0
- llama_stack/providers/inline/vector_io/sqlite_vec/config.py +26 -0
- llama_stack/providers/inline/vector_io/sqlite_vec/sqlite_vec.py +483 -0
- llama_stack/providers/registry/agents.py +16 -18
- llama_stack/providers/registry/batches.py +26 -0
- llama_stack/providers/registry/datasetio.py +49 -0
- llama_stack/providers/registry/eval.py +46 -0
- llama_stack/providers/registry/files.py +31 -0
- llama_stack/providers/registry/inference.py +273 -118
- llama_stack/providers/registry/post_training.py +69 -0
- llama_stack/providers/registry/safety.py +46 -41
- llama_stack/providers/registry/scoring.py +51 -0
- llama_stack/providers/registry/tool_runtime.py +87 -0
- llama_stack/providers/registry/vector_io.py +828 -0
- llama_stack/providers/remote/__init__.py +5 -0
- llama_stack/providers/remote/agents/__init__.py +5 -0
- llama_stack/providers/remote/datasetio/__init__.py +5 -0
- llama_stack/providers/{adapters/memory/chroma → remote/datasetio/huggingface}/__init__.py +7 -4
- llama_stack/providers/remote/datasetio/huggingface/config.py +23 -0
- llama_stack/providers/remote/datasetio/huggingface/huggingface.py +99 -0
- llama_stack/providers/remote/datasetio/nvidia/__init__.py +23 -0
- llama_stack/providers/remote/datasetio/nvidia/config.py +61 -0
- llama_stack/providers/remote/datasetio/nvidia/datasetio.py +116 -0
- llama_stack/providers/remote/eval/__init__.py +5 -0
- llama_stack/providers/remote/eval/nvidia/__init__.py +31 -0
- llama_stack/providers/remote/eval/nvidia/config.py +29 -0
- llama_stack/providers/remote/eval/nvidia/eval.py +162 -0
- llama_stack/providers/remote/files/s3/__init__.py +19 -0
- llama_stack/providers/remote/files/s3/config.py +42 -0
- llama_stack/providers/remote/files/s3/files.py +313 -0
- llama_stack/providers/remote/inference/__init__.py +5 -0
- llama_stack/providers/{adapters/safety/sample → remote/inference/anthropic}/__init__.py +4 -6
- llama_stack/providers/remote/inference/anthropic/anthropic.py +36 -0
- llama_stack/providers/remote/inference/anthropic/config.py +28 -0
- llama_stack/providers/{impls/meta_reference/telemetry → remote/inference/azure}/__init__.py +4 -4
- llama_stack/providers/remote/inference/azure/azure.py +25 -0
- llama_stack/providers/remote/inference/azure/config.py +61 -0
- llama_stack/providers/{adapters → remote}/inference/bedrock/__init__.py +18 -17
- llama_stack/providers/remote/inference/bedrock/bedrock.py +142 -0
- llama_stack/providers/{adapters/inference/sample → remote/inference/bedrock}/config.py +3 -4
- llama_stack/providers/remote/inference/bedrock/models.py +29 -0
- llama_stack/providers/remote/inference/cerebras/__init__.py +19 -0
- llama_stack/providers/remote/inference/cerebras/cerebras.py +28 -0
- llama_stack/providers/remote/inference/cerebras/config.py +30 -0
- llama_stack/providers/{adapters → remote}/inference/databricks/__init__.py +4 -5
- llama_stack/providers/remote/inference/databricks/config.py +37 -0
- llama_stack/providers/remote/inference/databricks/databricks.py +44 -0
- llama_stack/providers/{adapters → remote}/inference/fireworks/__init__.py +8 -4
- llama_stack/providers/remote/inference/fireworks/config.py +27 -0
- llama_stack/providers/remote/inference/fireworks/fireworks.py +27 -0
- llama_stack/providers/{adapters/memory/pgvector → remote/inference/gemini}/__init__.py +4 -4
- llama_stack/providers/remote/inference/gemini/config.py +28 -0
- llama_stack/providers/remote/inference/gemini/gemini.py +82 -0
- llama_stack/providers/remote/inference/groq/__init__.py +15 -0
- llama_stack/providers/remote/inference/groq/config.py +34 -0
- llama_stack/providers/remote/inference/groq/groq.py +18 -0
- llama_stack/providers/remote/inference/llama_openai_compat/__init__.py +15 -0
- llama_stack/providers/remote/inference/llama_openai_compat/config.py +34 -0
- llama_stack/providers/remote/inference/llama_openai_compat/llama.py +46 -0
- llama_stack/providers/remote/inference/nvidia/__init__.py +23 -0
- llama_stack/providers/remote/inference/nvidia/config.py +64 -0
- llama_stack/providers/remote/inference/nvidia/nvidia.py +61 -0
- llama_stack/providers/{adapters/safety/sample/config.py → remote/inference/nvidia/utils.py} +3 -4
- llama_stack/providers/{impls/vllm → remote/inference/ollama}/__init__.py +4 -6
- llama_stack/providers/remote/inference/ollama/config.py +25 -0
- llama_stack/providers/remote/inference/ollama/ollama.py +102 -0
- llama_stack/providers/{adapters/telemetry/opentelemetry → remote/inference/openai}/__init__.py +4 -4
- llama_stack/providers/remote/inference/openai/config.py +39 -0
- llama_stack/providers/remote/inference/openai/openai.py +38 -0
- llama_stack/providers/remote/inference/passthrough/__init__.py +23 -0
- llama_stack/providers/remote/inference/passthrough/config.py +34 -0
- llama_stack/providers/remote/inference/passthrough/passthrough.py +122 -0
- llama_stack/providers/remote/inference/runpod/__init__.py +16 -0
- llama_stack/providers/remote/inference/runpod/config.py +32 -0
- llama_stack/providers/remote/inference/runpod/runpod.py +42 -0
- llama_stack/providers/remote/inference/sambanova/__init__.py +16 -0
- llama_stack/providers/remote/inference/sambanova/config.py +34 -0
- llama_stack/providers/remote/inference/sambanova/sambanova.py +28 -0
- llama_stack/providers/{adapters → remote}/inference/tgi/__init__.py +3 -4
- llama_stack/providers/remote/inference/tgi/config.py +76 -0
- llama_stack/providers/remote/inference/tgi/tgi.py +85 -0
- llama_stack/providers/{adapters → remote}/inference/together/__init__.py +8 -4
- llama_stack/providers/remote/inference/together/config.py +27 -0
- llama_stack/providers/remote/inference/together/together.py +102 -0
- llama_stack/providers/remote/inference/vertexai/__init__.py +15 -0
- llama_stack/providers/remote/inference/vertexai/config.py +48 -0
- llama_stack/providers/remote/inference/vertexai/vertexai.py +54 -0
- llama_stack/providers/remote/inference/vllm/__init__.py +22 -0
- llama_stack/providers/remote/inference/vllm/config.py +59 -0
- llama_stack/providers/remote/inference/vllm/vllm.py +111 -0
- llama_stack/providers/remote/inference/watsonx/__init__.py +15 -0
- llama_stack/providers/remote/inference/watsonx/config.py +45 -0
- llama_stack/providers/remote/inference/watsonx/watsonx.py +336 -0
- llama_stack/providers/remote/post_training/__init__.py +5 -0
- llama_stack/providers/remote/post_training/nvidia/__init__.py +23 -0
- llama_stack/providers/remote/post_training/nvidia/config.py +113 -0
- llama_stack/providers/remote/post_training/nvidia/models.py +27 -0
- llama_stack/providers/remote/post_training/nvidia/post_training.py +430 -0
- llama_stack/providers/remote/post_training/nvidia/utils.py +63 -0
- llama_stack/providers/remote/safety/__init__.py +5 -0
- llama_stack/providers/remote/safety/bedrock/bedrock.py +111 -0
- llama_stack/providers/remote/safety/bedrock/config.py +14 -0
- llama_stack/providers/{adapters/inference/sample → remote/safety/nvidia}/__init__.py +5 -4
- llama_stack/providers/remote/safety/nvidia/config.py +40 -0
- llama_stack/providers/remote/safety/nvidia/nvidia.py +161 -0
- llama_stack/providers/{adapters/agents/sample → remote/safety/sambanova}/__init__.py +5 -4
- llama_stack/providers/remote/safety/sambanova/config.py +37 -0
- llama_stack/providers/remote/safety/sambanova/sambanova.py +98 -0
- llama_stack/providers/remote/tool_runtime/__init__.py +5 -0
- llama_stack/providers/remote/tool_runtime/bing_search/__init__.py +21 -0
- llama_stack/providers/remote/tool_runtime/bing_search/bing_search.py +112 -0
- llama_stack/providers/remote/tool_runtime/bing_search/config.py +22 -0
- llama_stack/providers/remote/tool_runtime/brave_search/__init__.py +20 -0
- llama_stack/providers/remote/tool_runtime/brave_search/brave_search.py +148 -0
- llama_stack/providers/remote/tool_runtime/brave_search/config.py +27 -0
- llama_stack/providers/remote/tool_runtime/model_context_protocol/__init__.py +15 -0
- llama_stack/providers/remote/tool_runtime/model_context_protocol/config.py +20 -0
- llama_stack/providers/remote/tool_runtime/model_context_protocol/model_context_protocol.py +73 -0
- llama_stack/providers/remote/tool_runtime/tavily_search/__init__.py +20 -0
- llama_stack/providers/remote/tool_runtime/tavily_search/config.py +27 -0
- llama_stack/providers/remote/tool_runtime/tavily_search/tavily_search.py +84 -0
- llama_stack/providers/remote/tool_runtime/wolfram_alpha/__init__.py +22 -0
- llama_stack/providers/remote/tool_runtime/wolfram_alpha/config.py +21 -0
- llama_stack/providers/remote/tool_runtime/wolfram_alpha/wolfram_alpha.py +140 -0
- llama_stack/providers/remote/vector_io/__init__.py +5 -0
- llama_stack/providers/remote/vector_io/chroma/__init__.py +17 -0
- llama_stack/providers/remote/vector_io/chroma/chroma.py +215 -0
- llama_stack/providers/remote/vector_io/chroma/config.py +28 -0
- llama_stack/providers/remote/vector_io/milvus/__init__.py +18 -0
- llama_stack/providers/remote/vector_io/milvus/config.py +35 -0
- llama_stack/providers/remote/vector_io/milvus/milvus.py +375 -0
- llama_stack/providers/remote/vector_io/pgvector/__init__.py +17 -0
- llama_stack/providers/remote/vector_io/pgvector/config.py +47 -0
- llama_stack/providers/remote/vector_io/pgvector/pgvector.py +460 -0
- llama_stack/providers/remote/vector_io/qdrant/__init__.py +17 -0
- llama_stack/providers/remote/vector_io/qdrant/config.py +37 -0
- llama_stack/providers/remote/vector_io/qdrant/qdrant.py +265 -0
- llama_stack/providers/remote/vector_io/weaviate/__init__.py +17 -0
- llama_stack/providers/remote/vector_io/weaviate/config.py +32 -0
- llama_stack/providers/remote/vector_io/weaviate/weaviate.py +393 -0
- llama_stack/providers/utils/bedrock/__init__.py +5 -0
- llama_stack/providers/utils/bedrock/client.py +74 -0
- llama_stack/providers/utils/bedrock/config.py +64 -0
- llama_stack/providers/utils/bedrock/refreshable_boto_session.py +112 -0
- llama_stack/providers/utils/common/__init__.py +5 -0
- llama_stack/providers/utils/common/data_schema_validator.py +103 -0
- llama_stack/providers/utils/datasetio/__init__.py +5 -0
- llama_stack/providers/utils/datasetio/url_utils.py +47 -0
- llama_stack/providers/utils/files/__init__.py +5 -0
- llama_stack/providers/utils/files/form_data.py +69 -0
- llama_stack/providers/utils/inference/__init__.py +8 -7
- llama_stack/providers/utils/inference/embedding_mixin.py +101 -0
- llama_stack/providers/utils/inference/inference_store.py +264 -0
- llama_stack/providers/utils/inference/litellm_openai_mixin.py +336 -0
- llama_stack/providers/utils/inference/model_registry.py +173 -23
- llama_stack/providers/utils/inference/openai_compat.py +1261 -49
- llama_stack/providers/utils/inference/openai_mixin.py +506 -0
- llama_stack/providers/utils/inference/prompt_adapter.py +365 -67
- llama_stack/providers/utils/kvstore/api.py +6 -6
- llama_stack/providers/utils/kvstore/config.py +28 -48
- llama_stack/providers/utils/kvstore/kvstore.py +61 -15
- llama_stack/providers/utils/kvstore/mongodb/__init__.py +9 -0
- llama_stack/providers/utils/kvstore/mongodb/mongodb.py +82 -0
- llama_stack/providers/utils/kvstore/postgres/__init__.py +7 -0
- llama_stack/providers/utils/kvstore/postgres/postgres.py +114 -0
- llama_stack/providers/utils/kvstore/redis/redis.py +33 -9
- llama_stack/providers/utils/kvstore/sqlite/config.py +2 -1
- llama_stack/providers/utils/kvstore/sqlite/sqlite.py +123 -22
- llama_stack/providers/utils/memory/file_utils.py +1 -1
- llama_stack/providers/utils/memory/openai_vector_store_mixin.py +1304 -0
- llama_stack/providers/utils/memory/vector_store.py +220 -82
- llama_stack/providers/utils/pagination.py +43 -0
- llama_stack/providers/utils/responses/__init__.py +5 -0
- llama_stack/providers/utils/responses/responses_store.py +292 -0
- llama_stack/providers/utils/scheduler.py +270 -0
- llama_stack/providers/utils/scoring/__init__.py +5 -0
- llama_stack/providers/utils/scoring/aggregation_utils.py +75 -0
- llama_stack/providers/utils/scoring/base_scoring_fn.py +114 -0
- llama_stack/providers/utils/scoring/basic_scoring_utils.py +26 -0
- llama_stack/providers/utils/sqlstore/__init__.py +5 -0
- llama_stack/providers/utils/sqlstore/api.py +128 -0
- llama_stack/providers/utils/sqlstore/authorized_sqlstore.py +319 -0
- llama_stack/providers/utils/sqlstore/sqlalchemy_sqlstore.py +343 -0
- llama_stack/providers/utils/sqlstore/sqlstore.py +70 -0
- llama_stack/providers/utils/telemetry/trace_protocol.py +142 -0
- llama_stack/providers/utils/telemetry/tracing.py +192 -53
- llama_stack/providers/utils/tools/__init__.py +5 -0
- llama_stack/providers/utils/tools/mcp.py +148 -0
- llama_stack/providers/utils/tools/ttl_dict.py +70 -0
- llama_stack/providers/utils/vector_io/__init__.py +5 -0
- llama_stack/providers/utils/vector_io/vector_utils.py +156 -0
- llama_stack/schema_utils.py +118 -0
- llama_stack/strong_typing/__init__.py +19 -0
- llama_stack/strong_typing/auxiliary.py +228 -0
- llama_stack/strong_typing/classdef.py +440 -0
- llama_stack/strong_typing/core.py +46 -0
- llama_stack/strong_typing/deserializer.py +877 -0
- llama_stack/strong_typing/docstring.py +409 -0
- llama_stack/strong_typing/exception.py +23 -0
- llama_stack/strong_typing/inspection.py +1085 -0
- llama_stack/strong_typing/mapping.py +40 -0
- llama_stack/strong_typing/name.py +182 -0
- llama_stack/strong_typing/py.typed +0 -0
- llama_stack/strong_typing/schema.py +792 -0
- llama_stack/strong_typing/serialization.py +97 -0
- llama_stack/strong_typing/serializer.py +500 -0
- llama_stack/strong_typing/slots.py +27 -0
- llama_stack/strong_typing/topological.py +89 -0
- llama_stack/testing/__init__.py +5 -0
- llama_stack/testing/api_recorder.py +956 -0
- llama_stack/ui/node_modules/flatted/python/flatted.py +149 -0
- llama_stack-0.3.4.dist-info/METADATA +261 -0
- llama_stack-0.3.4.dist-info/RECORD +625 -0
- {llama_stack-0.0.42.dist-info → llama_stack-0.3.4.dist-info}/WHEEL +1 -1
- llama_stack/apis/agents/client.py +0 -292
- llama_stack/apis/agents/event_logger.py +0 -184
- llama_stack/apis/batch_inference/batch_inference.py +0 -72
- llama_stack/apis/common/deployment_types.py +0 -31
- llama_stack/apis/dataset/dataset.py +0 -63
- llama_stack/apis/evals/evals.py +0 -122
- llama_stack/apis/inference/client.py +0 -197
- llama_stack/apis/inspect/client.py +0 -82
- llama_stack/apis/memory/client.py +0 -155
- llama_stack/apis/memory/memory.py +0 -65
- llama_stack/apis/memory_banks/__init__.py +0 -7
- llama_stack/apis/memory_banks/client.py +0 -101
- llama_stack/apis/memory_banks/memory_banks.py +0 -78
- llama_stack/apis/models/client.py +0 -83
- llama_stack/apis/reward_scoring/__init__.py +0 -7
- llama_stack/apis/reward_scoring/reward_scoring.py +0 -55
- llama_stack/apis/safety/client.py +0 -105
- llama_stack/apis/shields/client.py +0 -79
- llama_stack/cli/download.py +0 -340
- llama_stack/cli/model/describe.py +0 -82
- llama_stack/cli/model/download.py +0 -24
- llama_stack/cli/model/list.py +0 -62
- llama_stack/cli/model/model.py +0 -34
- llama_stack/cli/model/prompt_format.py +0 -112
- llama_stack/cli/model/safety_models.py +0 -52
- llama_stack/cli/stack/build.py +0 -299
- llama_stack/cli/stack/configure.py +0 -178
- llama_stack/distribution/build.py +0 -123
- llama_stack/distribution/build_conda_env.sh +0 -136
- llama_stack/distribution/build_container.sh +0 -142
- llama_stack/distribution/common.sh +0 -40
- llama_stack/distribution/configure_container.sh +0 -47
- llama_stack/distribution/datatypes.py +0 -139
- llama_stack/distribution/distribution.py +0 -58
- llama_stack/distribution/inspect.py +0 -67
- llama_stack/distribution/request_headers.py +0 -57
- llama_stack/distribution/resolver.py +0 -323
- llama_stack/distribution/routers/__init__.py +0 -48
- llama_stack/distribution/routers/routers.py +0 -158
- llama_stack/distribution/routers/routing_tables.py +0 -173
- llama_stack/distribution/server/endpoints.py +0 -48
- llama_stack/distribution/server/server.py +0 -343
- llama_stack/distribution/start_conda_env.sh +0 -42
- llama_stack/distribution/start_container.sh +0 -64
- llama_stack/distribution/templates/local-bedrock-conda-example-build.yaml +0 -10
- llama_stack/distribution/templates/local-build.yaml +0 -10
- llama_stack/distribution/templates/local-databricks-build.yaml +0 -10
- llama_stack/distribution/templates/local-fireworks-build.yaml +0 -10
- llama_stack/distribution/templates/local-hf-endpoint-build.yaml +0 -10
- llama_stack/distribution/templates/local-hf-serverless-build.yaml +0 -10
- llama_stack/distribution/templates/local-ollama-build.yaml +0 -10
- llama_stack/distribution/templates/local-tgi-build.yaml +0 -10
- llama_stack/distribution/templates/local-together-build.yaml +0 -10
- llama_stack/distribution/templates/local-vllm-build.yaml +0 -10
- llama_stack/distribution/utils/exec.py +0 -105
- llama_stack/providers/adapters/agents/sample/sample.py +0 -18
- llama_stack/providers/adapters/inference/bedrock/bedrock.py +0 -451
- llama_stack/providers/adapters/inference/bedrock/config.py +0 -55
- llama_stack/providers/adapters/inference/databricks/config.py +0 -21
- llama_stack/providers/adapters/inference/databricks/databricks.py +0 -125
- llama_stack/providers/adapters/inference/fireworks/config.py +0 -20
- llama_stack/providers/adapters/inference/fireworks/fireworks.py +0 -130
- llama_stack/providers/adapters/inference/ollama/__init__.py +0 -19
- llama_stack/providers/adapters/inference/ollama/ollama.py +0 -175
- llama_stack/providers/adapters/inference/sample/sample.py +0 -23
- llama_stack/providers/adapters/inference/tgi/config.py +0 -43
- llama_stack/providers/adapters/inference/tgi/tgi.py +0 -200
- llama_stack/providers/adapters/inference/together/config.py +0 -22
- llama_stack/providers/adapters/inference/together/together.py +0 -143
- llama_stack/providers/adapters/memory/chroma/chroma.py +0 -157
- llama_stack/providers/adapters/memory/pgvector/config.py +0 -17
- llama_stack/providers/adapters/memory/pgvector/pgvector.py +0 -211
- llama_stack/providers/adapters/memory/sample/sample.py +0 -23
- llama_stack/providers/adapters/memory/weaviate/__init__.py +0 -15
- llama_stack/providers/adapters/memory/weaviate/weaviate.py +0 -190
- llama_stack/providers/adapters/safety/bedrock/bedrock.py +0 -113
- llama_stack/providers/adapters/safety/bedrock/config.py +0 -16
- llama_stack/providers/adapters/safety/sample/sample.py +0 -23
- llama_stack/providers/adapters/safety/together/__init__.py +0 -18
- llama_stack/providers/adapters/safety/together/config.py +0 -26
- llama_stack/providers/adapters/safety/together/together.py +0 -101
- llama_stack/providers/adapters/telemetry/opentelemetry/config.py +0 -12
- llama_stack/providers/adapters/telemetry/opentelemetry/opentelemetry.py +0 -201
- llama_stack/providers/adapters/telemetry/sample/__init__.py +0 -17
- llama_stack/providers/adapters/telemetry/sample/config.py +0 -12
- llama_stack/providers/adapters/telemetry/sample/sample.py +0 -18
- llama_stack/providers/impls/meta_reference/agents/agent_instance.py +0 -844
- llama_stack/providers/impls/meta_reference/agents/agents.py +0 -161
- llama_stack/providers/impls/meta_reference/agents/persistence.py +0 -84
- llama_stack/providers/impls/meta_reference/agents/rag/context_retriever.py +0 -74
- llama_stack/providers/impls/meta_reference/agents/safety.py +0 -57
- llama_stack/providers/impls/meta_reference/agents/tests/code_execution.py +0 -93
- llama_stack/providers/impls/meta_reference/agents/tests/test_chat_agent.py +0 -305
- llama_stack/providers/impls/meta_reference/agents/tools/base.py +0 -20
- llama_stack/providers/impls/meta_reference/agents/tools/builtin.py +0 -375
- llama_stack/providers/impls/meta_reference/agents/tools/ipython_tool/code_env_prefix.py +0 -133
- llama_stack/providers/impls/meta_reference/agents/tools/ipython_tool/code_execution.py +0 -256
- llama_stack/providers/impls/meta_reference/agents/tools/ipython_tool/matplotlib_custom_backend.py +0 -87
- llama_stack/providers/impls/meta_reference/agents/tools/ipython_tool/utils.py +0 -21
- llama_stack/providers/impls/meta_reference/agents/tools/safety.py +0 -43
- llama_stack/providers/impls/meta_reference/codeshield/code_scanner.py +0 -58
- llama_stack/providers/impls/meta_reference/inference/config.py +0 -45
- llama_stack/providers/impls/meta_reference/inference/generation.py +0 -376
- llama_stack/providers/impls/meta_reference/inference/inference.py +0 -280
- llama_stack/providers/impls/meta_reference/inference/model_parallel.py +0 -99
- llama_stack/providers/impls/meta_reference/inference/quantization/fp8_impls.py +0 -184
- llama_stack/providers/impls/meta_reference/inference/quantization/fp8_txest_disabled.py +0 -76
- llama_stack/providers/impls/meta_reference/inference/quantization/loader.py +0 -97
- llama_stack/providers/impls/meta_reference/inference/quantization/scripts/quantize_checkpoint.py +0 -161
- llama_stack/providers/impls/meta_reference/memory/__init__.py +0 -19
- llama_stack/providers/impls/meta_reference/memory/faiss.py +0 -113
- llama_stack/providers/impls/meta_reference/safety/__init__.py +0 -17
- llama_stack/providers/impls/meta_reference/safety/base.py +0 -57
- llama_stack/providers/impls/meta_reference/safety/config.py +0 -48
- llama_stack/providers/impls/meta_reference/safety/llama_guard.py +0 -268
- llama_stack/providers/impls/meta_reference/safety/prompt_guard.py +0 -145
- llama_stack/providers/impls/meta_reference/safety/safety.py +0 -112
- llama_stack/providers/impls/meta_reference/telemetry/console.py +0 -89
- llama_stack/providers/impls/vllm/config.py +0 -35
- llama_stack/providers/impls/vllm/vllm.py +0 -241
- llama_stack/providers/registry/memory.py +0 -78
- llama_stack/providers/registry/telemetry.py +0 -44
- llama_stack/providers/tests/agents/test_agents.py +0 -210
- llama_stack/providers/tests/inference/test_inference.py +0 -257
- llama_stack/providers/tests/inference/test_prompt_adapter.py +0 -126
- llama_stack/providers/tests/memory/test_memory.py +0 -136
- llama_stack/providers/tests/resolver.py +0 -100
- llama_stack/providers/tests/safety/test_safety.py +0 -77
- llama_stack-0.0.42.dist-info/METADATA +0 -137
- llama_stack-0.0.42.dist-info/RECORD +0 -256
- /llama_stack/{distribution → core}/__init__.py +0 -0
- /llama_stack/{distribution/server → core/access_control}/__init__.py +0 -0
- /llama_stack/{distribution/utils → core/conversations}/__init__.py +0 -0
- /llama_stack/{providers/adapters → core/prompts}/__init__.py +0 -0
- /llama_stack/{providers/adapters/agents → core/routing_tables}/__init__.py +0 -0
- /llama_stack/{providers/adapters/inference → core/server}/__init__.py +0 -0
- /llama_stack/{providers/adapters/memory → core/storage}/__init__.py +0 -0
- /llama_stack/{providers/adapters/safety → core/ui}/__init__.py +0 -0
- /llama_stack/{providers/adapters/telemetry → core/ui/modules}/__init__.py +0 -0
- /llama_stack/{providers/impls → core/ui/page}/__init__.py +0 -0
- /llama_stack/{providers/impls/meta_reference → core/ui/page/distribution}/__init__.py +0 -0
- /llama_stack/{providers/impls/meta_reference/agents/rag → core/ui/page/evaluations}/__init__.py +0 -0
- /llama_stack/{providers/impls/meta_reference/agents/tests → core/ui/page/playground}/__init__.py +0 -0
- /llama_stack/{providers/impls/meta_reference/agents/tools → core/utils}/__init__.py +0 -0
- /llama_stack/{distribution → core}/utils/dynamic.py +0 -0
- /llama_stack/{distribution → core}/utils/serialize.py +0 -0
- /llama_stack/{providers/impls/meta_reference/agents/tools/ipython_tool → distributions}/__init__.py +0 -0
- /llama_stack/{providers/impls/meta_reference/inference/quantization → models}/__init__.py +0 -0
- /llama_stack/{providers/impls/meta_reference/inference/quantization/scripts → models/llama}/__init__.py +0 -0
- /llama_stack/{providers/tests → models/llama/llama3}/__init__.py +0 -0
- /llama_stack/{providers/tests/agents → models/llama/llama3/quantization}/__init__.py +0 -0
- /llama_stack/{providers/tests/inference → models/llama/llama3_2}/__init__.py +0 -0
- /llama_stack/{providers/tests/memory → models/llama/llama3_3}/__init__.py +0 -0
- /llama_stack/{providers/tests/safety → models/llama/llama4}/__init__.py +0 -0
- /llama_stack/{scripts → models/llama/llama4/prompt_templates}/__init__.py +0 -0
- /llama_stack/providers/{adapters → remote}/safety/bedrock/__init__.py +0 -0
- {llama_stack-0.0.42.dist-info → llama_stack-0.3.4.dist-info}/entry_points.txt +0 -0
- {llama_stack-0.0.42.dist-info → llama_stack-0.3.4.dist-info/licenses}/LICENSE +0 -0
- {llama_stack-0.0.42.dist-info → llama_stack-0.3.4.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
#
|
|
4
|
+
# This source code is licensed under the terms described in the LICENSE file in
|
|
5
|
+
# the root directory of this source tree.
|
|
6
|
+
|
|
7
|
+
from typing import Literal
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel
|
|
10
|
+
|
|
11
|
+
from llama_stack.apis.resource import Resource, ResourceType
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# Internal resource type for storing the vector store routing and other information
|
|
15
|
+
class VectorStore(Resource):
|
|
16
|
+
"""Vector database resource for storing and querying vector embeddings.
|
|
17
|
+
|
|
18
|
+
:param type: Type of resource, always 'vector_store' for vector stores
|
|
19
|
+
:param embedding_model: Name of the embedding model to use for vector generation
|
|
20
|
+
:param embedding_dimension: Dimension of the embedding vectors
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
type: Literal[ResourceType.vector_store] = ResourceType.vector_store
|
|
24
|
+
|
|
25
|
+
embedding_model: str
|
|
26
|
+
embedding_dimension: int
|
|
27
|
+
vector_store_name: str | None = None
|
|
28
|
+
|
|
29
|
+
@property
|
|
30
|
+
def vector_store_id(self) -> str:
|
|
31
|
+
return self.identifier
|
|
32
|
+
|
|
33
|
+
@property
|
|
34
|
+
def provider_vector_store_id(self) -> str | None:
|
|
35
|
+
return self.provider_resource_id
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class VectorStoreInput(BaseModel):
|
|
39
|
+
"""Input parameters for creating or configuring a vector database.
|
|
40
|
+
|
|
41
|
+
:param vector_store_id: Unique identifier for the vector store
|
|
42
|
+
:param embedding_model: Name of the embedding model to use for vector generation
|
|
43
|
+
:param embedding_dimension: Dimension of the embedding vectors
|
|
44
|
+
:param provider_vector_store_id: (Optional) Provider-specific identifier for the vector store
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
vector_store_id: str
|
|
48
|
+
embedding_model: str
|
|
49
|
+
embedding_dimension: int
|
|
50
|
+
provider_id: str | None = None
|
|
51
|
+
provider_vector_store_id: str | None = None
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
#
|
|
4
|
+
# This source code is licensed under the terms described in the LICENSE file in
|
|
5
|
+
# the root directory of this source tree.
|
|
6
|
+
|
|
7
|
+
LLAMA_STACK_API_V1 = "v1"
|
|
8
|
+
LLAMA_STACK_API_V1BETA = "v1beta"
|
|
9
|
+
LLAMA_STACK_API_V1ALPHA = "v1alpha"
|
llama_stack/cli/llama.py
CHANGED
|
@@ -6,9 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
import argparse
|
|
8
8
|
|
|
9
|
-
from .
|
|
10
|
-
|
|
9
|
+
from llama_stack.log import setup_logging
|
|
10
|
+
|
|
11
11
|
from .stack import StackParser
|
|
12
|
+
from .stack.utils import print_subcommand_description
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
class LlamaCLIParser:
|
|
@@ -19,6 +20,7 @@ class LlamaCLIParser:
|
|
|
19
20
|
prog="llama",
|
|
20
21
|
description="Welcome to the Llama CLI",
|
|
21
22
|
add_help=True,
|
|
23
|
+
formatter_class=argparse.RawTextHelpFormatter,
|
|
22
24
|
)
|
|
23
25
|
|
|
24
26
|
# Default command is to print help
|
|
@@ -27,18 +29,24 @@ class LlamaCLIParser:
|
|
|
27
29
|
subparsers = self.parser.add_subparsers(title="subcommands")
|
|
28
30
|
|
|
29
31
|
# Add sub-commands
|
|
30
|
-
Download.create(subparsers)
|
|
31
|
-
ModelParser.create(subparsers)
|
|
32
32
|
StackParser.create(subparsers)
|
|
33
33
|
|
|
34
|
+
print_subcommand_description(self.parser, subparsers)
|
|
35
|
+
|
|
34
36
|
def parse_args(self) -> argparse.Namespace:
|
|
35
|
-
|
|
37
|
+
args = self.parser.parse_args()
|
|
38
|
+
if not isinstance(args, argparse.Namespace):
|
|
39
|
+
raise TypeError(f"Expected argparse.Namespace, got {type(args)}")
|
|
40
|
+
return args
|
|
36
41
|
|
|
37
42
|
def run(self, args: argparse.Namespace) -> None:
|
|
38
43
|
args.func(args)
|
|
39
44
|
|
|
40
45
|
|
|
41
46
|
def main():
|
|
47
|
+
# Initialize logging from environment variables before any other operations
|
|
48
|
+
setup_logging()
|
|
49
|
+
|
|
42
50
|
parser = LlamaCLIParser()
|
|
43
51
|
args = parser.parse_args()
|
|
44
52
|
parser.run(args)
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
#
|
|
4
|
+
# This source code is licensed under the terms described in the LICENSE file in
|
|
5
|
+
# the root directory of this source tree.
|
|
6
|
+
|
|
7
|
+
import argparse
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
import yaml
|
|
12
|
+
from termcolor import cprint
|
|
13
|
+
|
|
14
|
+
from llama_stack.cli.stack.utils import ImageType
|
|
15
|
+
from llama_stack.core.build import get_provider_dependencies
|
|
16
|
+
from llama_stack.core.datatypes import (
|
|
17
|
+
BuildConfig,
|
|
18
|
+
BuildProvider,
|
|
19
|
+
DistributionSpec,
|
|
20
|
+
)
|
|
21
|
+
from llama_stack.core.distribution import get_provider_registry
|
|
22
|
+
from llama_stack.core.stack import replace_env_vars
|
|
23
|
+
from llama_stack.log import get_logger
|
|
24
|
+
from llama_stack.providers.datatypes import Api
|
|
25
|
+
|
|
26
|
+
TEMPLATES_PATH = Path(__file__).parent.parent.parent / "templates"
|
|
27
|
+
|
|
28
|
+
logger = get_logger(name=__name__, category="cli")
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# These are the dependencies needed by the distribution server.
|
|
32
|
+
# `llama-stack` is automatically installed by the installation script.
|
|
33
|
+
SERVER_DEPENDENCIES = [
|
|
34
|
+
"aiosqlite",
|
|
35
|
+
"fastapi",
|
|
36
|
+
"fire",
|
|
37
|
+
"httpx",
|
|
38
|
+
"uvicorn",
|
|
39
|
+
"opentelemetry-sdk",
|
|
40
|
+
"opentelemetry-exporter-otlp-proto-http",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def format_output_deps_only(
|
|
45
|
+
normal_deps: list[str],
|
|
46
|
+
special_deps: list[str],
|
|
47
|
+
external_deps: list[str],
|
|
48
|
+
uv: bool = False,
|
|
49
|
+
) -> str:
|
|
50
|
+
"""Format dependencies as a list."""
|
|
51
|
+
lines = []
|
|
52
|
+
|
|
53
|
+
uv_str = ""
|
|
54
|
+
if uv:
|
|
55
|
+
uv_str = "uv pip install "
|
|
56
|
+
|
|
57
|
+
# Quote deps with commas
|
|
58
|
+
quoted_normal_deps = [quote_if_needed(dep) for dep in normal_deps]
|
|
59
|
+
lines.append(f"{uv_str}{' '.join(quoted_normal_deps)}")
|
|
60
|
+
|
|
61
|
+
for special_dep in special_deps:
|
|
62
|
+
lines.append(f"{uv_str}{quote_special_dep(special_dep)}")
|
|
63
|
+
|
|
64
|
+
for external_dep in external_deps:
|
|
65
|
+
lines.append(f"{uv_str}{quote_special_dep(external_dep)}")
|
|
66
|
+
|
|
67
|
+
return "\n".join(lines)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def run_stack_list_deps_command(args: argparse.Namespace) -> None:
|
|
71
|
+
if args.config:
|
|
72
|
+
try:
|
|
73
|
+
from llama_stack.core.utils.config_resolution import Mode, resolve_config_or_distro
|
|
74
|
+
|
|
75
|
+
config_file = resolve_config_or_distro(args.config, Mode.BUILD)
|
|
76
|
+
except ValueError as e:
|
|
77
|
+
cprint(
|
|
78
|
+
f"Could not parse config file {args.config}: {e}",
|
|
79
|
+
color="red",
|
|
80
|
+
file=sys.stderr,
|
|
81
|
+
)
|
|
82
|
+
sys.exit(1)
|
|
83
|
+
if config_file:
|
|
84
|
+
with open(config_file) as f:
|
|
85
|
+
try:
|
|
86
|
+
contents = yaml.safe_load(f)
|
|
87
|
+
contents = replace_env_vars(contents)
|
|
88
|
+
build_config = BuildConfig(**contents)
|
|
89
|
+
build_config.image_type = "venv"
|
|
90
|
+
except Exception as e:
|
|
91
|
+
cprint(
|
|
92
|
+
f"Could not parse config file {config_file}: {e}",
|
|
93
|
+
color="red",
|
|
94
|
+
file=sys.stderr,
|
|
95
|
+
)
|
|
96
|
+
sys.exit(1)
|
|
97
|
+
elif args.providers:
|
|
98
|
+
provider_list: dict[str, list[BuildProvider]] = dict()
|
|
99
|
+
for api_provider in args.providers.split(","):
|
|
100
|
+
if "=" not in api_provider:
|
|
101
|
+
cprint(
|
|
102
|
+
"Could not parse `--providers`. Please ensure the list is in the format api1=provider1,api2=provider2",
|
|
103
|
+
color="red",
|
|
104
|
+
file=sys.stderr,
|
|
105
|
+
)
|
|
106
|
+
sys.exit(1)
|
|
107
|
+
api, provider_type = api_provider.split("=")
|
|
108
|
+
providers_for_api = get_provider_registry().get(Api(api), None)
|
|
109
|
+
if providers_for_api is None:
|
|
110
|
+
cprint(
|
|
111
|
+
f"{api} is not a valid API.",
|
|
112
|
+
color="red",
|
|
113
|
+
file=sys.stderr,
|
|
114
|
+
)
|
|
115
|
+
sys.exit(1)
|
|
116
|
+
if provider_type in providers_for_api:
|
|
117
|
+
provider = BuildProvider(
|
|
118
|
+
provider_type=provider_type,
|
|
119
|
+
module=None,
|
|
120
|
+
)
|
|
121
|
+
provider_list.setdefault(api, []).append(provider)
|
|
122
|
+
else:
|
|
123
|
+
cprint(
|
|
124
|
+
f"{provider_type} is not a valid provider for the {api} API.",
|
|
125
|
+
color="red",
|
|
126
|
+
file=sys.stderr,
|
|
127
|
+
)
|
|
128
|
+
sys.exit(1)
|
|
129
|
+
distribution_spec = DistributionSpec(
|
|
130
|
+
providers=provider_list,
|
|
131
|
+
description=",".join(args.providers),
|
|
132
|
+
)
|
|
133
|
+
build_config = BuildConfig(image_type=ImageType.VENV.value, distribution_spec=distribution_spec)
|
|
134
|
+
|
|
135
|
+
normal_deps, special_deps, external_provider_dependencies = get_provider_dependencies(build_config)
|
|
136
|
+
normal_deps += SERVER_DEPENDENCIES
|
|
137
|
+
|
|
138
|
+
# Add external API dependencies
|
|
139
|
+
if build_config.external_apis_dir:
|
|
140
|
+
from llama_stack.core.external import load_external_apis
|
|
141
|
+
|
|
142
|
+
external_apis = load_external_apis(build_config)
|
|
143
|
+
if external_apis:
|
|
144
|
+
for _, api_spec in external_apis.items():
|
|
145
|
+
normal_deps.extend(api_spec.pip_packages)
|
|
146
|
+
|
|
147
|
+
# Format and output based on requested format
|
|
148
|
+
output = format_output_deps_only(
|
|
149
|
+
normal_deps=normal_deps,
|
|
150
|
+
special_deps=special_deps,
|
|
151
|
+
external_deps=external_provider_dependencies,
|
|
152
|
+
uv=args.format == "uv",
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
print(output)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
def quote_if_needed(dep):
|
|
159
|
+
# Add quotes if the dependency contains special characters that need escaping in shell
|
|
160
|
+
# This includes: commas, comparison operators (<, >, <=, >=, ==, !=)
|
|
161
|
+
needs_quoting = any(char in dep for char in [",", "<", ">", "="])
|
|
162
|
+
return f"'{dep}'" if needs_quoting else dep
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def quote_special_dep(dep_string):
|
|
166
|
+
"""
|
|
167
|
+
Quote individual packages in a special dependency string.
|
|
168
|
+
Special deps may contain multiple packages and flags like --extra-index-url.
|
|
169
|
+
We need to quote only the package specs that contain special characters.
|
|
170
|
+
"""
|
|
171
|
+
parts = dep_string.split()
|
|
172
|
+
quoted_parts = []
|
|
173
|
+
|
|
174
|
+
for part in parts:
|
|
175
|
+
# Don't quote flags (they start with -)
|
|
176
|
+
if part.startswith("-"):
|
|
177
|
+
quoted_parts.append(part)
|
|
178
|
+
else:
|
|
179
|
+
# Quote package specs that need it
|
|
180
|
+
quoted_parts.append(quote_if_needed(part))
|
|
181
|
+
|
|
182
|
+
return " ".join(quoted_parts)
|
|
@@ -26,7 +26,7 @@ class StackListApis(Subcommand):
|
|
|
26
26
|
|
|
27
27
|
def _run_apis_list_cmd(self, args: argparse.Namespace) -> None:
|
|
28
28
|
from llama_stack.cli.table import print_table
|
|
29
|
-
from llama_stack.
|
|
29
|
+
from llama_stack.core.distribution import stack_apis
|
|
30
30
|
|
|
31
31
|
# eventually, this should query a registry at llama.meta.com/llamastack/distributions
|
|
32
32
|
headers = [
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
#
|
|
4
|
+
# This source code is licensed under the terms described in the LICENSE file in
|
|
5
|
+
# the root directory of this source tree.
|
|
6
|
+
import argparse
|
|
7
|
+
|
|
8
|
+
from llama_stack.cli.subcommand import Subcommand
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class StackListDeps(Subcommand):
|
|
12
|
+
def __init__(self, subparsers: argparse._SubParsersAction):
|
|
13
|
+
super().__init__()
|
|
14
|
+
self.parser = subparsers.add_parser(
|
|
15
|
+
"list-deps",
|
|
16
|
+
prog="llama stack list-deps",
|
|
17
|
+
description="list the dependencies for a llama stack distribution",
|
|
18
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
19
|
+
)
|
|
20
|
+
self._add_arguments()
|
|
21
|
+
self.parser.set_defaults(func=self._run_stack_list_deps_command)
|
|
22
|
+
|
|
23
|
+
def _add_arguments(self):
|
|
24
|
+
self.parser.add_argument(
|
|
25
|
+
"config",
|
|
26
|
+
type=str,
|
|
27
|
+
nargs="?", # Make it optional
|
|
28
|
+
metavar="config | distro",
|
|
29
|
+
help="Path to config file to use or name of known distro (llama stack list for a list).",
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
self.parser.add_argument(
|
|
33
|
+
"--providers",
|
|
34
|
+
type=str,
|
|
35
|
+
default=None,
|
|
36
|
+
help="sync dependencies for a list of providers and only those providers. This list is formatted like: api1=provider1,api2=provider2. Where there can be multiple providers per API.",
|
|
37
|
+
)
|
|
38
|
+
self.parser.add_argument(
|
|
39
|
+
"--format",
|
|
40
|
+
type=str,
|
|
41
|
+
choices=["uv", "deps-only"],
|
|
42
|
+
default="deps-only",
|
|
43
|
+
help="Output format: 'uv' shows shell commands, 'deps-only' shows just the list of dependencies without `uv` (default)",
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
def _run_stack_list_deps_command(self, args: argparse.Namespace) -> None:
|
|
47
|
+
# always keep implementation completely silo-ed away from CLI so CLI
|
|
48
|
+
# can be fast to load and reduces dependencies
|
|
49
|
+
if not args.config and not args.providers:
|
|
50
|
+
self.parser.print_help()
|
|
51
|
+
self.parser.exit()
|
|
52
|
+
|
|
53
|
+
from ._list_deps import run_stack_list_deps_command
|
|
54
|
+
|
|
55
|
+
return run_stack_list_deps_command(args)
|
|
@@ -21,42 +21,56 @@ class StackListProviders(Subcommand):
|
|
|
21
21
|
self._add_arguments()
|
|
22
22
|
self.parser.set_defaults(func=self._run_providers_list_cmd)
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
@property
|
|
25
|
+
def providable_apis(self):
|
|
26
|
+
from llama_stack.core.distribution import providable_apis
|
|
27
|
+
|
|
28
|
+
return [api.value for api in providable_apis()]
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
def _add_arguments(self):
|
|
28
31
|
self.parser.add_argument(
|
|
29
32
|
"api",
|
|
30
33
|
type=str,
|
|
31
|
-
choices=
|
|
32
|
-
|
|
34
|
+
choices=self.providable_apis,
|
|
35
|
+
nargs="?",
|
|
36
|
+
help="API to list providers for. List all if not specified.",
|
|
33
37
|
)
|
|
34
38
|
|
|
35
39
|
def _run_providers_list_cmd(self, args: argparse.Namespace) -> None:
|
|
36
40
|
from llama_stack.cli.table import print_table
|
|
37
|
-
from llama_stack.
|
|
41
|
+
from llama_stack.core.distribution import Api, get_provider_registry
|
|
38
42
|
|
|
39
43
|
all_providers = get_provider_registry()
|
|
40
|
-
|
|
44
|
+
if args.api:
|
|
45
|
+
providers = [(args.api, all_providers[Api(args.api)])]
|
|
46
|
+
else:
|
|
47
|
+
providers = [(k.value, prov) for k, prov in all_providers.items()]
|
|
48
|
+
|
|
49
|
+
providers = [(api, p) for api, p in providers if api in self.providable_apis]
|
|
41
50
|
|
|
42
51
|
# eventually, this should query a registry at llama.meta.com/llamastack/distributions
|
|
43
52
|
headers = [
|
|
53
|
+
"API Type",
|
|
44
54
|
"Provider Type",
|
|
45
55
|
"PIP Package Dependencies",
|
|
46
56
|
]
|
|
47
57
|
|
|
48
58
|
rows = []
|
|
49
|
-
|
|
50
|
-
|
|
59
|
+
|
|
60
|
+
specs = [spec for api, p in providers for spec in p.values()]
|
|
61
|
+
for spec in specs:
|
|
62
|
+
if spec.is_sample:
|
|
51
63
|
continue
|
|
52
64
|
rows.append(
|
|
53
65
|
[
|
|
66
|
+
spec.api.value,
|
|
54
67
|
spec.provider_type,
|
|
55
|
-
",".join(spec.pip_packages),
|
|
68
|
+
",".join(spec.pip_packages) if hasattr(spec, "pip_packages") else "",
|
|
56
69
|
]
|
|
57
70
|
)
|
|
58
71
|
print_table(
|
|
59
72
|
rows,
|
|
60
73
|
headers,
|
|
61
74
|
separate_rows=True,
|
|
75
|
+
sort_by=(0, 1),
|
|
62
76
|
)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
#
|
|
4
|
+
# This source code is licensed under the terms described in the LICENSE file in
|
|
5
|
+
# the root directory of this source tree.
|
|
6
|
+
|
|
7
|
+
import argparse
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
|
|
10
|
+
from llama_stack.cli.subcommand import Subcommand
|
|
11
|
+
from llama_stack.cli.table import print_table
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class StackListBuilds(Subcommand):
|
|
15
|
+
"""List built stacks in .llama/distributions directory"""
|
|
16
|
+
|
|
17
|
+
def __init__(self, subparsers: argparse._SubParsersAction):
|
|
18
|
+
super().__init__()
|
|
19
|
+
self.parser = subparsers.add_parser(
|
|
20
|
+
"list",
|
|
21
|
+
prog="llama stack list",
|
|
22
|
+
description="list the build stacks",
|
|
23
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
24
|
+
)
|
|
25
|
+
self._add_arguments()
|
|
26
|
+
self.parser.set_defaults(func=self._list_stack_command)
|
|
27
|
+
|
|
28
|
+
def _get_distribution_dirs(self) -> dict[str, Path]:
|
|
29
|
+
"""Return a dictionary of distribution names and their paths"""
|
|
30
|
+
distributions = {}
|
|
31
|
+
dist_dir = Path.home() / ".llama" / "distributions"
|
|
32
|
+
|
|
33
|
+
if dist_dir.exists():
|
|
34
|
+
for stack_dir in dist_dir.iterdir():
|
|
35
|
+
if stack_dir.is_dir():
|
|
36
|
+
distributions[stack_dir.name] = stack_dir
|
|
37
|
+
return distributions
|
|
38
|
+
|
|
39
|
+
def _list_stack_command(self, args: argparse.Namespace) -> None:
|
|
40
|
+
distributions = self._get_distribution_dirs()
|
|
41
|
+
|
|
42
|
+
if not distributions:
|
|
43
|
+
print("No stacks found in ~/.llama/distributions")
|
|
44
|
+
return
|
|
45
|
+
|
|
46
|
+
headers = ["Stack Name", "Path"]
|
|
47
|
+
headers.extend(["Build Config", "Run Config"])
|
|
48
|
+
rows = []
|
|
49
|
+
for name, path in distributions.items():
|
|
50
|
+
row = [name, str(path)]
|
|
51
|
+
# Check for build and run config files
|
|
52
|
+
build_config = "Yes" if (path / f"{name}-build.yaml").exists() else "No"
|
|
53
|
+
run_config = "Yes" if (path / f"{name}-run.yaml").exists() else "No"
|
|
54
|
+
row.extend([build_config, run_config])
|
|
55
|
+
rows.append(row)
|
|
56
|
+
print_table(rows, headers, separate_rows=True)
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
#
|
|
4
|
+
# This source code is licensed under the terms described in the LICENSE file in
|
|
5
|
+
# the root directory of this source tree.
|
|
6
|
+
|
|
7
|
+
import argparse
|
|
8
|
+
import shutil
|
|
9
|
+
import sys
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
|
|
12
|
+
from termcolor import cprint
|
|
13
|
+
|
|
14
|
+
from llama_stack.cli.subcommand import Subcommand
|
|
15
|
+
from llama_stack.cli.table import print_table
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class StackRemove(Subcommand):
|
|
19
|
+
"""Remove the build stack"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, subparsers: argparse._SubParsersAction):
|
|
22
|
+
super().__init__()
|
|
23
|
+
self.parser = subparsers.add_parser(
|
|
24
|
+
"rm",
|
|
25
|
+
prog="llama stack rm",
|
|
26
|
+
description="Remove the build stack",
|
|
27
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
28
|
+
)
|
|
29
|
+
self._add_arguments()
|
|
30
|
+
self.parser.set_defaults(func=self._remove_stack_build_command)
|
|
31
|
+
|
|
32
|
+
def _add_arguments(self) -> None:
|
|
33
|
+
self.parser.add_argument(
|
|
34
|
+
"name",
|
|
35
|
+
type=str,
|
|
36
|
+
nargs="?",
|
|
37
|
+
help="Name of the stack to delete",
|
|
38
|
+
)
|
|
39
|
+
self.parser.add_argument(
|
|
40
|
+
"--all",
|
|
41
|
+
"-a",
|
|
42
|
+
action="store_true",
|
|
43
|
+
help="Delete all stacks (use with caution)",
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
def _get_distribution_dirs(self) -> dict[str, Path]:
|
|
47
|
+
"""Return a dictionary of distribution names and their paths"""
|
|
48
|
+
distributions = {}
|
|
49
|
+
dist_dir = Path.home() / ".llama" / "distributions"
|
|
50
|
+
|
|
51
|
+
if dist_dir.exists():
|
|
52
|
+
for stack_dir in dist_dir.iterdir():
|
|
53
|
+
if stack_dir.is_dir():
|
|
54
|
+
distributions[stack_dir.name] = stack_dir
|
|
55
|
+
return distributions
|
|
56
|
+
|
|
57
|
+
def _list_stacks(self) -> None:
|
|
58
|
+
"""Display available stacks in a table"""
|
|
59
|
+
distributions = self._get_distribution_dirs()
|
|
60
|
+
if not distributions:
|
|
61
|
+
cprint("No stacks found in ~/.llama/distributions", color="red", file=sys.stderr)
|
|
62
|
+
sys.exit(1)
|
|
63
|
+
|
|
64
|
+
headers = ["Stack Name", "Path"]
|
|
65
|
+
rows = [[name, str(path)] for name, path in distributions.items()]
|
|
66
|
+
print_table(rows, headers, separate_rows=True)
|
|
67
|
+
|
|
68
|
+
def _remove_stack_build_command(self, args: argparse.Namespace) -> None:
|
|
69
|
+
distributions = self._get_distribution_dirs()
|
|
70
|
+
|
|
71
|
+
if args.all:
|
|
72
|
+
confirm = input("Are you sure you want to delete ALL stacks? [yes-i-really-want/N] ").lower()
|
|
73
|
+
if confirm != "yes-i-really-want":
|
|
74
|
+
cprint("Deletion cancelled.", color="green", file=sys.stderr)
|
|
75
|
+
return
|
|
76
|
+
|
|
77
|
+
for name, path in distributions.items():
|
|
78
|
+
try:
|
|
79
|
+
shutil.rmtree(path)
|
|
80
|
+
cprint(f"Deleted stack: {name}", color="green", file=sys.stderr)
|
|
81
|
+
except Exception as e:
|
|
82
|
+
cprint(
|
|
83
|
+
f"Failed to delete stack {name}: {e}",
|
|
84
|
+
color="red",
|
|
85
|
+
file=sys.stderr,
|
|
86
|
+
)
|
|
87
|
+
sys.exit(1)
|
|
88
|
+
|
|
89
|
+
if not args.name:
|
|
90
|
+
self._list_stacks()
|
|
91
|
+
if not args.name:
|
|
92
|
+
return
|
|
93
|
+
|
|
94
|
+
if args.name not in distributions:
|
|
95
|
+
self._list_stacks()
|
|
96
|
+
cprint(
|
|
97
|
+
f"Stack not found: {args.name}",
|
|
98
|
+
color="red",
|
|
99
|
+
file=sys.stderr,
|
|
100
|
+
)
|
|
101
|
+
sys.exit(1)
|
|
102
|
+
|
|
103
|
+
stack_path = distributions[args.name]
|
|
104
|
+
|
|
105
|
+
confirm = input(f"Are you sure you want to delete stack '{args.name}'? [y/N] ").lower()
|
|
106
|
+
if confirm != "y":
|
|
107
|
+
cprint("Deletion cancelled.", color="green", file=sys.stderr)
|
|
108
|
+
return
|
|
109
|
+
|
|
110
|
+
try:
|
|
111
|
+
shutil.rmtree(stack_path)
|
|
112
|
+
cprint(f"Successfully deleted stack: {args.name}", color="green", file=sys.stderr)
|
|
113
|
+
except Exception as e:
|
|
114
|
+
cprint(f"Failed to delete stack {args.name}: {e}", color="red", file=sys.stderr)
|
|
115
|
+
sys.exit(1)
|