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
|
@@ -1,133 +0,0 @@
|
|
|
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 errno
|
|
8
|
-
|
|
9
|
-
# Disabling potentially dangerous functions
|
|
10
|
-
import os as _os
|
|
11
|
-
from functools import partial
|
|
12
|
-
|
|
13
|
-
os_funcs_to_disable = [
|
|
14
|
-
"kill",
|
|
15
|
-
"system",
|
|
16
|
-
"putenv",
|
|
17
|
-
"remove",
|
|
18
|
-
"removedirs",
|
|
19
|
-
"rmdir",
|
|
20
|
-
"fchdir",
|
|
21
|
-
"setuid",
|
|
22
|
-
"fork",
|
|
23
|
-
"forkpty",
|
|
24
|
-
"killpg",
|
|
25
|
-
"rename",
|
|
26
|
-
"renames",
|
|
27
|
-
"truncate",
|
|
28
|
-
"replace",
|
|
29
|
-
# "unlink", # Commenting as this was blocking matpltlib from rendering plots correctly
|
|
30
|
-
"fchmod",
|
|
31
|
-
"fchown",
|
|
32
|
-
"chmod",
|
|
33
|
-
"chown",
|
|
34
|
-
"chroot",
|
|
35
|
-
"fchdir",
|
|
36
|
-
"lchflags",
|
|
37
|
-
"lchmod",
|
|
38
|
-
"lchown",
|
|
39
|
-
"chdir",
|
|
40
|
-
]
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def call_not_allowed(*args, **kwargs):
|
|
44
|
-
raise OSError(errno.EPERM, "Call are not permitted in this environment")
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
for func_name in os_funcs_to_disable:
|
|
48
|
-
if hasattr(_os, func_name):
|
|
49
|
-
setattr(_os, func_name, partial(call_not_allowed, _func_name=f"os.{func_name}"))
|
|
50
|
-
|
|
51
|
-
import shutil as _shutil
|
|
52
|
-
|
|
53
|
-
for func_name in ["rmtree", "move", "chown"]:
|
|
54
|
-
if hasattr(_shutil, func_name):
|
|
55
|
-
setattr(
|
|
56
|
-
_shutil,
|
|
57
|
-
func_name,
|
|
58
|
-
partial(call_not_allowed, _func_name=f"shutil.{func_name}"),
|
|
59
|
-
)
|
|
60
|
-
|
|
61
|
-
import subprocess as _subprocess
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def popen_not_allowed(*args, **kwargs):
|
|
65
|
-
raise _subprocess.CalledProcessError(
|
|
66
|
-
-1,
|
|
67
|
-
args[0] if args else "unknown",
|
|
68
|
-
stderr="subprocess.Popen is not allowed in this environment",
|
|
69
|
-
)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
_subprocess.Popen = popen_not_allowed
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
import atexit as _atexit
|
|
76
|
-
import builtins as _builtins
|
|
77
|
-
import io as _io
|
|
78
|
-
import json as _json
|
|
79
|
-
import sys as _sys
|
|
80
|
-
|
|
81
|
-
# NB! The following "unused" imports crucial, make sure not not to remove
|
|
82
|
-
# them with linters - they're used in code_execution.py
|
|
83
|
-
from contextlib import ( # noqa
|
|
84
|
-
contextmanager as _contextmanager,
|
|
85
|
-
redirect_stderr as _redirect_stderr,
|
|
86
|
-
redirect_stdout as _redirect_stdout,
|
|
87
|
-
)
|
|
88
|
-
from multiprocessing.connection import Connection as _Connection
|
|
89
|
-
|
|
90
|
-
# Mangle imports to avoid polluting model execution namespace.
|
|
91
|
-
|
|
92
|
-
_IO_SINK = _io.StringIO()
|
|
93
|
-
_NETWORK_TIMEOUT = 5
|
|
94
|
-
_NETWORK_CONNECTIONS = None
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
def _open_connections():
|
|
98
|
-
global _NETWORK_CONNECTIONS
|
|
99
|
-
if _NETWORK_CONNECTIONS is not None:
|
|
100
|
-
# Ensure connections only opened once.
|
|
101
|
-
return _NETWORK_CONNECTIONS
|
|
102
|
-
req_w_fd, resp_r_fd = _sys.argv[1], _sys.argv[2]
|
|
103
|
-
req_con = _Connection(int(req_w_fd), readable=False)
|
|
104
|
-
resp_con = _Connection(int(resp_r_fd), writable=False)
|
|
105
|
-
_NETWORK_CONNECTIONS = (req_con, resp_con)
|
|
106
|
-
return _NETWORK_CONNECTIONS
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
_builtins._open_connections = _open_connections
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
@_atexit.register
|
|
113
|
-
def _close_connections():
|
|
114
|
-
global _NETWORK_CONNECTIONS
|
|
115
|
-
if _NETWORK_CONNECTIONS is None:
|
|
116
|
-
return
|
|
117
|
-
for con in _NETWORK_CONNECTIONS:
|
|
118
|
-
con.close()
|
|
119
|
-
del _NETWORK_CONNECTIONS
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
def _network_call(request):
|
|
123
|
-
# NOTE: We communicate with the parent process in json, encoded
|
|
124
|
-
# in raw bytes. We do this because native send/recv methods use
|
|
125
|
-
# pickle which involves execution of arbitrary code.
|
|
126
|
-
_open_connections()
|
|
127
|
-
req_con, resp_con = _NETWORK_CONNECTIONS
|
|
128
|
-
|
|
129
|
-
req_con.send_bytes(_json.dumps(request).encode("utf-8"))
|
|
130
|
-
if resp_con.poll(timeout=_NETWORK_TIMEOUT) is None:
|
|
131
|
-
raise Exception(f"Network request timed out: {_json.dumps(request)}")
|
|
132
|
-
else:
|
|
133
|
-
return _json.loads(resp_con.recv_bytes().decode("utf-8"))
|
|
@@ -1,256 +0,0 @@
|
|
|
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 base64
|
|
8
|
-
import json
|
|
9
|
-
import multiprocessing
|
|
10
|
-
import os
|
|
11
|
-
import re
|
|
12
|
-
import subprocess
|
|
13
|
-
import sys
|
|
14
|
-
import tempfile
|
|
15
|
-
import textwrap
|
|
16
|
-
import time
|
|
17
|
-
from dataclasses import dataclass
|
|
18
|
-
from datetime import datetime
|
|
19
|
-
from io import BytesIO
|
|
20
|
-
from pathlib import Path
|
|
21
|
-
from typing import List
|
|
22
|
-
|
|
23
|
-
from PIL import Image
|
|
24
|
-
|
|
25
|
-
from .utils import get_code_env_prefix
|
|
26
|
-
|
|
27
|
-
TOOLS_ATTACHMENT_KEY = "__tools_attachment__"
|
|
28
|
-
TOOLS_ATTACHMENT_KEY_REGEX = re.compile(r"__tools_attachment__=(\{.*?\})")
|
|
29
|
-
|
|
30
|
-
DIRNAME = Path(__file__).parent
|
|
31
|
-
|
|
32
|
-
CODE_EXEC_TIMEOUT = 20
|
|
33
|
-
CODE_ENV_PREFIX = get_code_env_prefix()
|
|
34
|
-
|
|
35
|
-
STDOUTERR_SINK_WRAPPER_TEMPLATE = """\
|
|
36
|
-
with _redirect_stdout(_IO_SINK), _redirect_stderr(_IO_SINK):
|
|
37
|
-
{code}\
|
|
38
|
-
"""
|
|
39
|
-
|
|
40
|
-
TRYEXCEPT_WRAPPER_TEMPLATE = """\
|
|
41
|
-
try:
|
|
42
|
-
{code}
|
|
43
|
-
except:
|
|
44
|
-
pass\
|
|
45
|
-
"""
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def generate_bwrap_command(bind_dirs: List[str]) -> str:
|
|
49
|
-
"""
|
|
50
|
-
Generate the bwrap command string for binding all
|
|
51
|
-
directories in the current directory read-only.
|
|
52
|
-
"""
|
|
53
|
-
bwrap_args = ""
|
|
54
|
-
bwrap_args += "--ro-bind / / "
|
|
55
|
-
# Add the --dev flag to mount device files
|
|
56
|
-
bwrap_args += "--dev /dev "
|
|
57
|
-
for d in bind_dirs:
|
|
58
|
-
bwrap_args += f"--bind {d} {d} "
|
|
59
|
-
|
|
60
|
-
# Add the --unshare-all flag to isolate the sandbox from the rest of the system
|
|
61
|
-
bwrap_args += "--unshare-all "
|
|
62
|
-
# Add the --die-with-parent flag to ensure the child process dies when bwrap's parent dies
|
|
63
|
-
bwrap_args += "--die-with-parent "
|
|
64
|
-
return bwrap_args
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
@dataclass
|
|
68
|
-
class CodeExecutionContext:
|
|
69
|
-
matplotlib_dump_dir: str
|
|
70
|
-
use_proxy: bool = False
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
@dataclass
|
|
74
|
-
class CodeExecutionRequest:
|
|
75
|
-
scripts: List[str]
|
|
76
|
-
only_last_cell_stdouterr: bool = True
|
|
77
|
-
only_last_cell_fail: bool = True
|
|
78
|
-
seed: int = 0
|
|
79
|
-
strip_fpaths_in_stderr: bool = True
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
class CodeExecutor:
|
|
83
|
-
def __init__(self, context: CodeExecutionContext):
|
|
84
|
-
self.context = context
|
|
85
|
-
|
|
86
|
-
def execute(self, req: CodeExecutionRequest) -> dict:
|
|
87
|
-
scripts = req.scripts
|
|
88
|
-
for i in range(len(scripts) - 1):
|
|
89
|
-
if req.only_last_cell_stdouterr:
|
|
90
|
-
scripts[i] = STDOUTERR_SINK_WRAPPER_TEMPLATE.format(
|
|
91
|
-
code=textwrap.indent(scripts[i], " " * 4)
|
|
92
|
-
)
|
|
93
|
-
if req.only_last_cell_fail:
|
|
94
|
-
scripts[i] = TRYEXCEPT_WRAPPER_TEMPLATE.format(
|
|
95
|
-
code=textwrap.indent(scripts[i], " " * 4)
|
|
96
|
-
)
|
|
97
|
-
|
|
98
|
-
# Seeds prefix:
|
|
99
|
-
seed = req.seed
|
|
100
|
-
seeds_prefix = f"""\
|
|
101
|
-
def _set_seeds():
|
|
102
|
-
import random
|
|
103
|
-
random.seed({seed})
|
|
104
|
-
import numpy as np
|
|
105
|
-
np.random.seed({seed})
|
|
106
|
-
_set_seeds()\
|
|
107
|
-
"""
|
|
108
|
-
|
|
109
|
-
script = "\n\n".join([seeds_prefix] + [CODE_ENV_PREFIX] + scripts)
|
|
110
|
-
with tempfile.TemporaryDirectory() as dpath:
|
|
111
|
-
bwrap_prefix = "bwrap " + generate_bwrap_command(bind_dirs=[dpath])
|
|
112
|
-
cmd = [*bwrap_prefix.split(), sys.executable, "-c", script]
|
|
113
|
-
code_fpath = os.path.join(dpath, "code.py")
|
|
114
|
-
with open(code_fpath, "w") as f:
|
|
115
|
-
f.write(script)
|
|
116
|
-
|
|
117
|
-
try:
|
|
118
|
-
python_path = os.environ.get("PYTHONPATH", "")
|
|
119
|
-
env = dict(
|
|
120
|
-
os.environ,
|
|
121
|
-
PYTHONHASHSEED=str(seed),
|
|
122
|
-
MPLCONFIGDIR=dpath,
|
|
123
|
-
MPLBACKEND="module://matplotlib_custom_backend",
|
|
124
|
-
PYTHONPATH=f"{DIRNAME}:{python_path}",
|
|
125
|
-
)
|
|
126
|
-
stdout, stderr, returncode = do_subprocess(
|
|
127
|
-
cmd=cmd,
|
|
128
|
-
env=env,
|
|
129
|
-
ctx=self.context,
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
stderr = stderr.strip()
|
|
133
|
-
if req.strip_fpaths_in_stderr:
|
|
134
|
-
pattern = r'File "([^"]+)", line (\d+)'
|
|
135
|
-
stderr = re.sub(pattern, r"line \2", stderr)
|
|
136
|
-
|
|
137
|
-
return {
|
|
138
|
-
"process_status": "completed",
|
|
139
|
-
"returncode": returncode,
|
|
140
|
-
"stdout": stdout.strip(),
|
|
141
|
-
"stderr": stderr,
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
except subprocess.TimeoutExpired:
|
|
145
|
-
return {
|
|
146
|
-
"process_status": "timeout",
|
|
147
|
-
"stdout": "Timed out",
|
|
148
|
-
"stderr": "Timed out",
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
except Exception as e:
|
|
152
|
-
return {
|
|
153
|
-
"process_status": "error",
|
|
154
|
-
"error_type": type(e).__name__,
|
|
155
|
-
"stderr": str(e),
|
|
156
|
-
"stdout": str(e),
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
def process_matplotlib_response(response, matplotlib_dump_dir: str):
|
|
161
|
-
image_data = response["image_data"]
|
|
162
|
-
# Convert the base64 string to a bytes object
|
|
163
|
-
images = [base64.b64decode(d["image_base64"]) for d in image_data]
|
|
164
|
-
# Create a list of PIL images from the bytes objects
|
|
165
|
-
images = [Image.open(BytesIO(img)) for img in images]
|
|
166
|
-
# Create a list of image paths
|
|
167
|
-
image_paths = []
|
|
168
|
-
for i, img in enumerate(images):
|
|
169
|
-
# create new directory for each day to better organize data:
|
|
170
|
-
dump_dname = datetime.today().strftime("%Y-%m-%d")
|
|
171
|
-
dump_dpath = Path(matplotlib_dump_dir, dump_dname)
|
|
172
|
-
dump_dpath.mkdir(parents=True, exist_ok=True)
|
|
173
|
-
# save image into a file
|
|
174
|
-
dump_fname = f"matplotlib_{str(time.time()).replace('.', '_')}_{i}.png"
|
|
175
|
-
dump_fpath = dump_dpath / dump_fname
|
|
176
|
-
img.save(dump_fpath, "PNG")
|
|
177
|
-
image_paths.append(str(dump_fpath))
|
|
178
|
-
|
|
179
|
-
# this is kind of convoluted, we send back this response to the subprocess which
|
|
180
|
-
# prints it out
|
|
181
|
-
info = {
|
|
182
|
-
"filepath": str(image_paths[-1]),
|
|
183
|
-
"mimetype": "image/png",
|
|
184
|
-
}
|
|
185
|
-
return f"{TOOLS_ATTACHMENT_KEY}={json.dumps(info)}"
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
def execute_subprocess_request(request, ctx: CodeExecutionContext):
|
|
189
|
-
"Route requests from the subprocess (via network Pipes) to the internet/tools."
|
|
190
|
-
if request["type"] == "matplotlib":
|
|
191
|
-
return process_matplotlib_response(request, ctx.matplotlib_dump_dir)
|
|
192
|
-
else:
|
|
193
|
-
raise Exception(f'Unrecognised network request type: {request["type"]}')
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
def do_subprocess(*, cmd: list, env: dict, ctx: CodeExecutionContext):
|
|
197
|
-
# Create Pipes to be used for any external tool/network requests.
|
|
198
|
-
req_r, req_w = multiprocessing.Pipe(duplex=False)
|
|
199
|
-
resp_r, resp_w = multiprocessing.Pipe(duplex=False)
|
|
200
|
-
|
|
201
|
-
cmd += [str(req_w.fileno()), str(resp_r.fileno())]
|
|
202
|
-
proc = subprocess.Popen(
|
|
203
|
-
cmd,
|
|
204
|
-
pass_fds=(req_w.fileno(), resp_r.fileno()),
|
|
205
|
-
text=True,
|
|
206
|
-
stdout=subprocess.PIPE,
|
|
207
|
-
stderr=subprocess.PIPE,
|
|
208
|
-
close_fds=True,
|
|
209
|
-
env=env,
|
|
210
|
-
)
|
|
211
|
-
|
|
212
|
-
# Close unnecessary fds.
|
|
213
|
-
req_w.close()
|
|
214
|
-
resp_r.close()
|
|
215
|
-
|
|
216
|
-
pipe_close = False
|
|
217
|
-
done_read = False
|
|
218
|
-
start = time.monotonic()
|
|
219
|
-
while proc.poll() is None and not pipe_close:
|
|
220
|
-
if req_r.poll(0.1):
|
|
221
|
-
# NB: Python pipe semantics for poll and recv mean that
|
|
222
|
-
# poll() returns True is a pipe is closed.
|
|
223
|
-
# CF old school PEP from '09
|
|
224
|
-
# https://bugs.python.org/issue5573
|
|
225
|
-
try:
|
|
226
|
-
request = json.loads(req_r.recv_bytes().decode("utf-8"))
|
|
227
|
-
response = execute_subprocess_request(request, ctx)
|
|
228
|
-
|
|
229
|
-
resp_w.send_bytes(json.dumps(response).encode("utf-8"))
|
|
230
|
-
except EOFError:
|
|
231
|
-
# The request pipe is closed - set a marker to exit
|
|
232
|
-
# after the next attempt at reading stdout/stderr.
|
|
233
|
-
pipe_close = True
|
|
234
|
-
|
|
235
|
-
try:
|
|
236
|
-
# If lots has been printed, pipe might be full but
|
|
237
|
-
# proc cannot exit until all the stdout/stderr
|
|
238
|
-
# been written/read.
|
|
239
|
-
stdout, stderr = proc.communicate(timeout=0.3)
|
|
240
|
-
done_read = True
|
|
241
|
-
except subprocess.TimeoutExpired:
|
|
242
|
-
# The program has not terminated. Ignore it, there
|
|
243
|
-
# may be more network/tool requests.
|
|
244
|
-
continue
|
|
245
|
-
if time.monotonic() - start > CODE_EXEC_TIMEOUT:
|
|
246
|
-
proc.terminate()
|
|
247
|
-
raise subprocess.TimeoutExpired(cmd, CODE_EXEC_TIMEOUT)
|
|
248
|
-
|
|
249
|
-
if not done_read:
|
|
250
|
-
# Solve race condition where process terminates before
|
|
251
|
-
# we hit the while loop.
|
|
252
|
-
stdout, stderr = proc.communicate(timeout=0.3)
|
|
253
|
-
|
|
254
|
-
resp_w.close()
|
|
255
|
-
req_r.close()
|
|
256
|
-
return stdout, stderr, proc.returncode
|
llama_stack/providers/impls/meta_reference/agents/tools/ipython_tool/matplotlib_custom_backend.py
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
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
|
-
"""
|
|
8
|
-
A custom Matplotlib backend that overrides the show method to return image bytes.
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
import base64
|
|
12
|
-
import io
|
|
13
|
-
import json as _json
|
|
14
|
-
|
|
15
|
-
import matplotlib
|
|
16
|
-
from matplotlib.backend_bases import FigureManagerBase
|
|
17
|
-
|
|
18
|
-
# Import necessary components from Matplotlib
|
|
19
|
-
from matplotlib.backends.backend_agg import FigureCanvasAgg
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class CustomFigureCanvas(FigureCanvasAgg):
|
|
23
|
-
def show(self):
|
|
24
|
-
# Save the figure to a BytesIO object
|
|
25
|
-
buf = io.BytesIO()
|
|
26
|
-
self.print_png(buf)
|
|
27
|
-
image_bytes = buf.getvalue()
|
|
28
|
-
buf.close()
|
|
29
|
-
return image_bytes
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
class CustomFigureManager(FigureManagerBase):
|
|
33
|
-
def __init__(self, canvas, num):
|
|
34
|
-
super().__init__(canvas, num)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
# Mimic module initialization that integrates with the Matplotlib backend system
|
|
38
|
-
def _create_figure_manager(num, *args, **kwargs):
|
|
39
|
-
"""
|
|
40
|
-
Create a custom figure manager instance.
|
|
41
|
-
"""
|
|
42
|
-
FigureClass = kwargs.pop("FigureClass", None) # noqa: N806
|
|
43
|
-
if FigureClass is None:
|
|
44
|
-
from matplotlib.figure import Figure
|
|
45
|
-
|
|
46
|
-
FigureClass = Figure # noqa: N806
|
|
47
|
-
fig = FigureClass(*args, **kwargs)
|
|
48
|
-
canvas = CustomFigureCanvas(fig)
|
|
49
|
-
manager = CustomFigureManager(canvas, num)
|
|
50
|
-
return manager
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
def show():
|
|
54
|
-
"""
|
|
55
|
-
Handle all figures and potentially return their images as bytes.
|
|
56
|
-
|
|
57
|
-
This function iterates over all figures registered with the custom backend,
|
|
58
|
-
renders them as images in bytes format, and could return a list of bytes objects,
|
|
59
|
-
one for each figure, or handle them as needed.
|
|
60
|
-
"""
|
|
61
|
-
image_data = []
|
|
62
|
-
for manager in matplotlib._pylab_helpers.Gcf.get_all_fig_managers():
|
|
63
|
-
# Get the figure from the manager
|
|
64
|
-
fig = manager.canvas.figure
|
|
65
|
-
buf = io.BytesIO() # Create a buffer for the figure
|
|
66
|
-
fig.savefig(buf, format="png") # Save the figure to the buffer in PNG format
|
|
67
|
-
buf.seek(0) # Go to the beginning of the buffer
|
|
68
|
-
image_bytes = buf.getvalue() # Retrieve bytes value
|
|
69
|
-
image_base64 = base64.b64encode(image_bytes).decode("utf-8")
|
|
70
|
-
image_data.append({"image_base64": image_base64})
|
|
71
|
-
buf.close()
|
|
72
|
-
|
|
73
|
-
req_con, resp_con = _open_connections()
|
|
74
|
-
|
|
75
|
-
_json_dump = _json.dumps(
|
|
76
|
-
{
|
|
77
|
-
"type": "matplotlib",
|
|
78
|
-
"image_data": image_data,
|
|
79
|
-
}
|
|
80
|
-
)
|
|
81
|
-
req_con.send_bytes(_json_dump.encode("utf-8"))
|
|
82
|
-
resp = _json.loads(resp_con.recv_bytes().decode("utf-8"))
|
|
83
|
-
print(resp)
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
FigureCanvas = CustomFigureCanvas
|
|
87
|
-
FigureManager = CustomFigureManager
|
|
@@ -1,21 +0,0 @@
|
|
|
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 os
|
|
8
|
-
|
|
9
|
-
DIR = os.path.dirname(os.path.realpath(__file__))
|
|
10
|
-
CODE_ENV_PREFIX_FILE = os.path.join(DIR, "code_env_prefix.py")
|
|
11
|
-
CODE_ENV_PREFIX = None
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def get_code_env_prefix() -> str:
|
|
15
|
-
global CODE_ENV_PREFIX
|
|
16
|
-
|
|
17
|
-
if CODE_ENV_PREFIX is None:
|
|
18
|
-
with open(CODE_ENV_PREFIX_FILE, "r") as f:
|
|
19
|
-
CODE_ENV_PREFIX = f.read()
|
|
20
|
-
|
|
21
|
-
return CODE_ENV_PREFIX
|
|
@@ -1,43 +0,0 @@
|
|
|
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 List
|
|
8
|
-
|
|
9
|
-
from llama_stack.apis.inference import Message
|
|
10
|
-
from llama_stack.apis.safety import * # noqa: F403
|
|
11
|
-
|
|
12
|
-
from llama_stack.providers.impls.meta_reference.agents.safety import ShieldRunnerMixin
|
|
13
|
-
|
|
14
|
-
from .builtin import BaseTool
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class SafeTool(BaseTool, ShieldRunnerMixin):
|
|
18
|
-
"""A tool that makes other tools safety enabled"""
|
|
19
|
-
|
|
20
|
-
def __init__(
|
|
21
|
-
self,
|
|
22
|
-
tool: BaseTool,
|
|
23
|
-
safety_api: Safety,
|
|
24
|
-
input_shields: List[str] = None,
|
|
25
|
-
output_shields: List[str] = None,
|
|
26
|
-
):
|
|
27
|
-
self._tool = tool
|
|
28
|
-
ShieldRunnerMixin.__init__(
|
|
29
|
-
self, safety_api, input_shields=input_shields, output_shields=output_shields
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
def get_name(self) -> str:
|
|
33
|
-
return self._tool.get_name()
|
|
34
|
-
|
|
35
|
-
async def run(self, messages: List[Message]) -> List[Message]:
|
|
36
|
-
if self.input_shields:
|
|
37
|
-
await self.run_multiple_shields(messages, self.input_shields)
|
|
38
|
-
# run the underlying tool
|
|
39
|
-
res = await self._tool.run(messages)
|
|
40
|
-
if self.output_shields:
|
|
41
|
-
await self.run_multiple_shields(messages, self.output_shields)
|
|
42
|
-
|
|
43
|
-
return res
|
|
@@ -1,58 +0,0 @@
|
|
|
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 Any, Dict, List
|
|
8
|
-
|
|
9
|
-
from llama_models.llama3.api.datatypes import interleaved_text_media_as_str, Message
|
|
10
|
-
from termcolor import cprint
|
|
11
|
-
|
|
12
|
-
from .config import CodeScannerConfig
|
|
13
|
-
|
|
14
|
-
from llama_stack.apis.safety import * # noqa: F403
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class MetaReferenceCodeScannerSafetyImpl(Safety):
|
|
18
|
-
def __init__(self, config: CodeScannerConfig, deps) -> None:
|
|
19
|
-
self.config = config
|
|
20
|
-
|
|
21
|
-
async def initialize(self) -> None:
|
|
22
|
-
pass
|
|
23
|
-
|
|
24
|
-
async def shutdown(self) -> None:
|
|
25
|
-
pass
|
|
26
|
-
|
|
27
|
-
async def register_shield(self, shield: ShieldDef) -> None:
|
|
28
|
-
if shield.type != ShieldType.code_scanner.value:
|
|
29
|
-
raise ValueError(f"Unsupported safety shield type: {shield.type}")
|
|
30
|
-
|
|
31
|
-
async def run_shield(
|
|
32
|
-
self,
|
|
33
|
-
shield_type: str,
|
|
34
|
-
messages: List[Message],
|
|
35
|
-
params: Dict[str, Any] = None,
|
|
36
|
-
) -> RunShieldResponse:
|
|
37
|
-
shield_def = await self.shield_store.get_shield(shield_type)
|
|
38
|
-
if not shield_def:
|
|
39
|
-
raise ValueError(f"Unknown shield {shield_type}")
|
|
40
|
-
|
|
41
|
-
from codeshield.cs import CodeShield
|
|
42
|
-
|
|
43
|
-
text = "\n".join([interleaved_text_media_as_str(m.content) for m in messages])
|
|
44
|
-
cprint(f"Running CodeScannerShield on {text[50:]}", color="magenta")
|
|
45
|
-
result = await CodeShield.scan_code(text)
|
|
46
|
-
|
|
47
|
-
violation = None
|
|
48
|
-
if result.is_insecure:
|
|
49
|
-
violation = SafetyViolation(
|
|
50
|
-
violation_level=(ViolationLevel.ERROR),
|
|
51
|
-
user_message="Sorry, I found security concerns in the code.",
|
|
52
|
-
metadata={
|
|
53
|
-
"violation_type": ",".join(
|
|
54
|
-
[issue.pattern_id for issue in result.issues_found]
|
|
55
|
-
)
|
|
56
|
-
},
|
|
57
|
-
)
|
|
58
|
-
return RunShieldResponse(violation=violation)
|
|
@@ -1,45 +0,0 @@
|
|
|
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 Optional
|
|
8
|
-
|
|
9
|
-
from llama_models.datatypes import * # noqa: F403
|
|
10
|
-
from llama_models.sku_list import resolve_model
|
|
11
|
-
|
|
12
|
-
from llama_stack.apis.inference import * # noqa: F401, F403
|
|
13
|
-
from pydantic import BaseModel, Field, field_validator
|
|
14
|
-
|
|
15
|
-
from llama_stack.providers.utils.inference import supported_inference_models
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class MetaReferenceInferenceConfig(BaseModel):
|
|
19
|
-
model: str = Field(
|
|
20
|
-
default="Llama3.1-8B-Instruct",
|
|
21
|
-
description="Model descriptor from `llama model list`",
|
|
22
|
-
)
|
|
23
|
-
torch_seed: Optional[int] = None
|
|
24
|
-
max_seq_len: int = 4096
|
|
25
|
-
max_batch_size: int = 1
|
|
26
|
-
|
|
27
|
-
@field_validator("model")
|
|
28
|
-
@classmethod
|
|
29
|
-
def validate_model(cls, model: str) -> str:
|
|
30
|
-
permitted_models = supported_inference_models()
|
|
31
|
-
if model not in permitted_models:
|
|
32
|
-
model_list = "\n\t".join(permitted_models)
|
|
33
|
-
raise ValueError(
|
|
34
|
-
f"Unknown model: `{model}`. Choose from [\n\t{model_list}\n]"
|
|
35
|
-
)
|
|
36
|
-
return model
|
|
37
|
-
|
|
38
|
-
@property
|
|
39
|
-
def model_parallel_size(self) -> int:
|
|
40
|
-
resolved = resolve_model(self.model)
|
|
41
|
-
return resolved.pth_file_count
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
class MetaReferenceQuantizedInferenceConfig(MetaReferenceInferenceConfig):
|
|
45
|
-
quantization: QuantizationConfig
|