llama-stack 0.3.5__py3-none-any.whl → 0.4.1__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 +0 -5
- llama_stack/cli/llama.py +3 -3
- llama_stack/cli/stack/_list_deps.py +12 -23
- llama_stack/cli/stack/list_stacks.py +37 -18
- llama_stack/cli/stack/run.py +121 -11
- llama_stack/cli/stack/utils.py +0 -127
- llama_stack/core/access_control/access_control.py +69 -28
- llama_stack/core/access_control/conditions.py +15 -5
- llama_stack/core/admin.py +267 -0
- llama_stack/core/build.py +6 -74
- llama_stack/core/client.py +1 -1
- llama_stack/core/configure.py +6 -6
- llama_stack/core/conversations/conversations.py +28 -25
- llama_stack/core/datatypes.py +271 -79
- llama_stack/core/distribution.py +15 -16
- llama_stack/core/external.py +3 -3
- llama_stack/core/inspect.py +98 -15
- llama_stack/core/library_client.py +73 -61
- llama_stack/core/prompts/prompts.py +12 -11
- llama_stack/core/providers.py +17 -11
- llama_stack/core/resolver.py +65 -56
- llama_stack/core/routers/__init__.py +8 -12
- llama_stack/core/routers/datasets.py +1 -4
- llama_stack/core/routers/eval_scoring.py +7 -4
- llama_stack/core/routers/inference.py +55 -271
- llama_stack/core/routers/safety.py +52 -24
- llama_stack/core/routers/tool_runtime.py +6 -48
- llama_stack/core/routers/vector_io.py +130 -51
- llama_stack/core/routing_tables/benchmarks.py +24 -20
- llama_stack/core/routing_tables/common.py +1 -4
- llama_stack/core/routing_tables/datasets.py +22 -22
- llama_stack/core/routing_tables/models.py +119 -6
- llama_stack/core/routing_tables/scoring_functions.py +7 -7
- llama_stack/core/routing_tables/shields.py +1 -2
- llama_stack/core/routing_tables/toolgroups.py +17 -7
- llama_stack/core/routing_tables/vector_stores.py +51 -16
- llama_stack/core/server/auth.py +5 -3
- llama_stack/core/server/auth_providers.py +36 -20
- llama_stack/core/server/fastapi_router_registry.py +84 -0
- llama_stack/core/server/quota.py +2 -2
- llama_stack/core/server/routes.py +79 -27
- llama_stack/core/server/server.py +102 -87
- llama_stack/core/stack.py +235 -62
- llama_stack/core/storage/datatypes.py +26 -3
- llama_stack/{providers/utils → core/storage}/kvstore/__init__.py +2 -0
- llama_stack/{providers/utils → core/storage}/kvstore/kvstore.py +55 -24
- llama_stack/{providers/utils → core/storage}/kvstore/mongodb/mongodb.py +13 -10
- llama_stack/{providers/utils → core/storage}/kvstore/postgres/postgres.py +28 -17
- llama_stack/{providers/utils → core/storage}/kvstore/redis/redis.py +41 -16
- llama_stack/{providers/utils → core/storage}/kvstore/sqlite/sqlite.py +1 -1
- llama_stack/core/storage/sqlstore/__init__.py +17 -0
- llama_stack/{providers/utils → core/storage}/sqlstore/authorized_sqlstore.py +69 -49
- llama_stack/{providers/utils → core/storage}/sqlstore/sqlalchemy_sqlstore.py +47 -17
- llama_stack/{providers/utils → core/storage}/sqlstore/sqlstore.py +25 -8
- llama_stack/core/store/registry.py +1 -1
- llama_stack/core/utils/config.py +8 -2
- llama_stack/core/utils/config_resolution.py +32 -29
- llama_stack/core/utils/context.py +4 -10
- llama_stack/core/utils/exec.py +9 -0
- llama_stack/core/utils/type_inspection.py +45 -0
- llama_stack/distributions/dell/{run.yaml → config.yaml} +3 -2
- llama_stack/distributions/dell/dell.py +2 -2
- llama_stack/distributions/dell/run-with-safety.yaml +3 -2
- llama_stack/distributions/meta-reference-gpu/{run.yaml → config.yaml} +3 -2
- llama_stack/distributions/meta-reference-gpu/meta_reference.py +2 -2
- llama_stack/distributions/meta-reference-gpu/run-with-safety.yaml +3 -2
- llama_stack/distributions/nvidia/{run.yaml → config.yaml} +4 -4
- llama_stack/distributions/nvidia/nvidia.py +1 -1
- llama_stack/distributions/nvidia/run-with-safety.yaml +4 -4
- llama_stack/{apis/datasetio → distributions/oci}/__init__.py +1 -1
- llama_stack/distributions/oci/config.yaml +134 -0
- llama_stack/distributions/oci/oci.py +108 -0
- llama_stack/distributions/open-benchmark/{run.yaml → config.yaml} +5 -4
- llama_stack/distributions/open-benchmark/open_benchmark.py +2 -3
- llama_stack/distributions/postgres-demo/{run.yaml → config.yaml} +4 -3
- llama_stack/distributions/starter/{run.yaml → config.yaml} +64 -13
- llama_stack/distributions/starter/run-with-postgres-store.yaml +64 -13
- llama_stack/distributions/starter/starter.py +8 -5
- llama_stack/distributions/starter-gpu/{run.yaml → config.yaml} +64 -13
- llama_stack/distributions/starter-gpu/run-with-postgres-store.yaml +64 -13
- llama_stack/distributions/template.py +13 -69
- llama_stack/distributions/watsonx/{run.yaml → config.yaml} +4 -3
- llama_stack/distributions/watsonx/watsonx.py +1 -1
- llama_stack/log.py +28 -11
- llama_stack/models/llama/checkpoint.py +6 -6
- llama_stack/models/llama/hadamard_utils.py +2 -0
- llama_stack/models/llama/llama3/generation.py +3 -1
- llama_stack/models/llama/llama3/interface.py +2 -5
- llama_stack/models/llama/llama3/multimodal/encoder_utils.py +3 -3
- llama_stack/models/llama/llama3/multimodal/image_transform.py +6 -6
- llama_stack/models/llama/llama3/prompt_templates/system_prompts.py +1 -1
- llama_stack/models/llama/llama3/tool_utils.py +2 -1
- llama_stack/models/llama/llama4/prompt_templates/system_prompts.py +1 -1
- llama_stack/providers/inline/agents/meta_reference/__init__.py +3 -3
- llama_stack/providers/inline/agents/meta_reference/agents.py +44 -261
- llama_stack/providers/inline/agents/meta_reference/config.py +6 -1
- llama_stack/providers/inline/agents/meta_reference/responses/openai_responses.py +207 -57
- llama_stack/providers/inline/agents/meta_reference/responses/streaming.py +308 -47
- llama_stack/providers/inline/agents/meta_reference/responses/tool_executor.py +162 -96
- llama_stack/providers/inline/agents/meta_reference/responses/types.py +23 -8
- llama_stack/providers/inline/agents/meta_reference/responses/utils.py +201 -33
- llama_stack/providers/inline/agents/meta_reference/safety.py +8 -13
- llama_stack/providers/inline/batches/reference/__init__.py +2 -4
- llama_stack/providers/inline/batches/reference/batches.py +78 -60
- llama_stack/providers/inline/datasetio/localfs/datasetio.py +2 -5
- llama_stack/providers/inline/eval/meta_reference/eval.py +16 -61
- llama_stack/providers/inline/files/localfs/files.py +37 -28
- llama_stack/providers/inline/inference/meta_reference/config.py +2 -2
- llama_stack/providers/inline/inference/meta_reference/generators.py +50 -60
- llama_stack/providers/inline/inference/meta_reference/inference.py +403 -19
- llama_stack/providers/inline/inference/meta_reference/model_parallel.py +7 -26
- llama_stack/providers/inline/inference/meta_reference/parallel_utils.py +2 -12
- llama_stack/providers/inline/inference/sentence_transformers/sentence_transformers.py +10 -15
- llama_stack/providers/inline/post_training/common/validator.py +1 -5
- llama_stack/providers/inline/post_training/huggingface/post_training.py +8 -8
- llama_stack/providers/inline/post_training/huggingface/recipes/finetune_single_device.py +18 -10
- llama_stack/providers/inline/post_training/huggingface/recipes/finetune_single_device_dpo.py +12 -9
- llama_stack/providers/inline/post_training/huggingface/utils.py +27 -6
- llama_stack/providers/inline/post_training/torchtune/common/checkpointer.py +1 -1
- llama_stack/providers/inline/post_training/torchtune/common/utils.py +1 -1
- llama_stack/providers/inline/post_training/torchtune/datasets/format_adapter.py +1 -1
- llama_stack/providers/inline/post_training/torchtune/post_training.py +8 -8
- llama_stack/providers/inline/post_training/torchtune/recipes/lora_finetuning_single_device.py +16 -16
- llama_stack/providers/inline/safety/code_scanner/code_scanner.py +13 -9
- llama_stack/providers/inline/safety/llama_guard/llama_guard.py +18 -15
- llama_stack/providers/inline/safety/prompt_guard/prompt_guard.py +9 -9
- llama_stack/providers/inline/scoring/basic/scoring.py +6 -13
- llama_stack/providers/inline/scoring/basic/scoring_fn/docvqa_scoring_fn.py +1 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/equality_scoring_fn.py +1 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/docvqa.py +2 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/equality.py +2 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/ifeval.py +2 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/regex_parser_math_response.py +2 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/regex_parser_multiple_choice_answer.py +2 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/fn_defs/subset_of.py +2 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/ifeval_scoring_fn.py +1 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/regex_parser_math_response_scoring_fn.py +1 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/regex_parser_scoring_fn.py +1 -2
- llama_stack/providers/inline/scoring/basic/scoring_fn/subset_of_scoring_fn.py +1 -2
- llama_stack/providers/inline/scoring/braintrust/braintrust.py +12 -15
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/answer_correctness.py +2 -2
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/answer_relevancy.py +2 -2
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/answer_similarity.py +2 -2
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/context_entity_recall.py +2 -2
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/context_precision.py +2 -2
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/context_recall.py +2 -2
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/context_relevancy.py +2 -2
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/factuality.py +2 -2
- llama_stack/providers/inline/scoring/braintrust/scoring_fn/fn_defs/faithfulness.py +2 -2
- llama_stack/providers/inline/scoring/llm_as_judge/scoring.py +7 -14
- llama_stack/providers/inline/scoring/llm_as_judge/scoring_fn/fn_defs/llm_as_judge_405b_simpleqa.py +2 -2
- llama_stack/providers/inline/scoring/llm_as_judge/scoring_fn/fn_defs/llm_as_judge_base.py +1 -2
- llama_stack/providers/inline/scoring/llm_as_judge/scoring_fn/llm_as_judge_scoring_fn.py +1 -3
- llama_stack/providers/inline/tool_runtime/rag/__init__.py +1 -1
- llama_stack/providers/inline/tool_runtime/rag/config.py +8 -1
- llama_stack/providers/inline/tool_runtime/rag/context_retriever.py +7 -6
- llama_stack/providers/inline/tool_runtime/rag/memory.py +64 -48
- llama_stack/providers/inline/vector_io/chroma/__init__.py +1 -1
- llama_stack/providers/inline/vector_io/chroma/config.py +1 -1
- llama_stack/providers/inline/vector_io/faiss/__init__.py +1 -1
- llama_stack/providers/inline/vector_io/faiss/config.py +1 -1
- llama_stack/providers/inline/vector_io/faiss/faiss.py +46 -28
- llama_stack/providers/inline/vector_io/milvus/__init__.py +1 -1
- llama_stack/providers/inline/vector_io/milvus/config.py +1 -1
- llama_stack/providers/inline/vector_io/qdrant/__init__.py +1 -1
- llama_stack/providers/inline/vector_io/qdrant/config.py +1 -1
- llama_stack/providers/inline/vector_io/sqlite_vec/__init__.py +1 -1
- llama_stack/providers/inline/vector_io/sqlite_vec/sqlite_vec.py +44 -33
- llama_stack/providers/registry/agents.py +8 -3
- llama_stack/providers/registry/batches.py +1 -1
- llama_stack/providers/registry/datasetio.py +1 -1
- llama_stack/providers/registry/eval.py +1 -1
- llama_stack/{apis/datasets/__init__.py → providers/registry/file_processors.py} +5 -1
- llama_stack/providers/registry/files.py +11 -2
- llama_stack/providers/registry/inference.py +22 -3
- llama_stack/providers/registry/post_training.py +1 -1
- llama_stack/providers/registry/safety.py +1 -1
- llama_stack/providers/registry/scoring.py +1 -1
- llama_stack/providers/registry/tool_runtime.py +2 -2
- llama_stack/providers/registry/vector_io.py +7 -7
- llama_stack/providers/remote/datasetio/huggingface/huggingface.py +2 -5
- llama_stack/providers/remote/datasetio/nvidia/datasetio.py +1 -4
- llama_stack/providers/remote/eval/nvidia/eval.py +15 -9
- llama_stack/providers/remote/files/openai/__init__.py +19 -0
- llama_stack/providers/remote/files/openai/config.py +28 -0
- llama_stack/providers/remote/files/openai/files.py +253 -0
- llama_stack/providers/remote/files/s3/files.py +52 -30
- llama_stack/providers/remote/inference/anthropic/anthropic.py +2 -1
- llama_stack/providers/remote/inference/anthropic/config.py +1 -1
- llama_stack/providers/remote/inference/azure/azure.py +1 -3
- llama_stack/providers/remote/inference/azure/config.py +8 -7
- llama_stack/providers/remote/inference/bedrock/__init__.py +1 -1
- llama_stack/providers/remote/inference/bedrock/bedrock.py +82 -105
- llama_stack/providers/remote/inference/bedrock/config.py +24 -3
- llama_stack/providers/remote/inference/cerebras/cerebras.py +5 -5
- llama_stack/providers/remote/inference/cerebras/config.py +12 -5
- llama_stack/providers/remote/inference/databricks/config.py +13 -6
- llama_stack/providers/remote/inference/databricks/databricks.py +16 -6
- llama_stack/providers/remote/inference/fireworks/config.py +5 -5
- llama_stack/providers/remote/inference/fireworks/fireworks.py +1 -1
- llama_stack/providers/remote/inference/gemini/config.py +1 -1
- llama_stack/providers/remote/inference/gemini/gemini.py +13 -14
- llama_stack/providers/remote/inference/groq/config.py +5 -5
- llama_stack/providers/remote/inference/groq/groq.py +1 -1
- llama_stack/providers/remote/inference/llama_openai_compat/config.py +5 -5
- llama_stack/providers/remote/inference/llama_openai_compat/llama.py +8 -6
- llama_stack/providers/remote/inference/nvidia/__init__.py +1 -1
- llama_stack/providers/remote/inference/nvidia/config.py +21 -11
- llama_stack/providers/remote/inference/nvidia/nvidia.py +115 -3
- llama_stack/providers/remote/inference/nvidia/utils.py +1 -1
- llama_stack/providers/remote/inference/oci/__init__.py +17 -0
- llama_stack/providers/remote/inference/oci/auth.py +79 -0
- llama_stack/providers/remote/inference/oci/config.py +75 -0
- llama_stack/providers/remote/inference/oci/oci.py +162 -0
- llama_stack/providers/remote/inference/ollama/config.py +7 -5
- llama_stack/providers/remote/inference/ollama/ollama.py +17 -8
- llama_stack/providers/remote/inference/openai/config.py +4 -4
- llama_stack/providers/remote/inference/openai/openai.py +1 -1
- llama_stack/providers/remote/inference/passthrough/__init__.py +2 -2
- llama_stack/providers/remote/inference/passthrough/config.py +5 -10
- llama_stack/providers/remote/inference/passthrough/passthrough.py +97 -75
- llama_stack/providers/remote/inference/runpod/config.py +12 -5
- llama_stack/providers/remote/inference/runpod/runpod.py +2 -20
- llama_stack/providers/remote/inference/sambanova/config.py +5 -5
- llama_stack/providers/remote/inference/sambanova/sambanova.py +1 -1
- llama_stack/providers/remote/inference/tgi/config.py +7 -6
- llama_stack/providers/remote/inference/tgi/tgi.py +19 -11
- llama_stack/providers/remote/inference/together/config.py +5 -5
- llama_stack/providers/remote/inference/together/together.py +15 -12
- llama_stack/providers/remote/inference/vertexai/config.py +1 -1
- llama_stack/providers/remote/inference/vllm/config.py +5 -5
- llama_stack/providers/remote/inference/vllm/vllm.py +13 -14
- llama_stack/providers/remote/inference/watsonx/config.py +4 -4
- llama_stack/providers/remote/inference/watsonx/watsonx.py +21 -94
- llama_stack/providers/remote/post_training/nvidia/post_training.py +4 -4
- llama_stack/providers/remote/post_training/nvidia/utils.py +1 -1
- llama_stack/providers/remote/safety/bedrock/bedrock.py +6 -6
- llama_stack/providers/remote/safety/bedrock/config.py +1 -1
- llama_stack/providers/remote/safety/nvidia/config.py +1 -1
- llama_stack/providers/remote/safety/nvidia/nvidia.py +11 -5
- llama_stack/providers/remote/safety/sambanova/config.py +1 -1
- llama_stack/providers/remote/safety/sambanova/sambanova.py +6 -6
- llama_stack/providers/remote/tool_runtime/bing_search/bing_search.py +11 -6
- llama_stack/providers/remote/tool_runtime/brave_search/brave_search.py +12 -7
- llama_stack/providers/remote/tool_runtime/model_context_protocol/config.py +8 -2
- llama_stack/providers/remote/tool_runtime/model_context_protocol/model_context_protocol.py +57 -15
- llama_stack/providers/remote/tool_runtime/tavily_search/tavily_search.py +11 -6
- llama_stack/providers/remote/tool_runtime/wolfram_alpha/wolfram_alpha.py +11 -6
- llama_stack/providers/remote/vector_io/chroma/__init__.py +1 -1
- llama_stack/providers/remote/vector_io/chroma/chroma.py +131 -23
- llama_stack/providers/remote/vector_io/chroma/config.py +1 -1
- llama_stack/providers/remote/vector_io/milvus/__init__.py +1 -1
- llama_stack/providers/remote/vector_io/milvus/config.py +1 -1
- llama_stack/providers/remote/vector_io/milvus/milvus.py +37 -28
- llama_stack/providers/remote/vector_io/pgvector/__init__.py +1 -1
- llama_stack/providers/remote/vector_io/pgvector/config.py +1 -1
- llama_stack/providers/remote/vector_io/pgvector/pgvector.py +37 -25
- llama_stack/providers/remote/vector_io/qdrant/__init__.py +1 -1
- llama_stack/providers/remote/vector_io/qdrant/config.py +1 -1
- llama_stack/providers/remote/vector_io/qdrant/qdrant.py +147 -30
- llama_stack/providers/remote/vector_io/weaviate/__init__.py +1 -1
- llama_stack/providers/remote/vector_io/weaviate/config.py +1 -1
- llama_stack/providers/remote/vector_io/weaviate/weaviate.py +31 -26
- llama_stack/providers/utils/common/data_schema_validator.py +1 -5
- llama_stack/providers/utils/files/form_data.py +1 -1
- llama_stack/providers/utils/inference/embedding_mixin.py +1 -1
- llama_stack/providers/utils/inference/inference_store.py +7 -8
- llama_stack/providers/utils/inference/litellm_openai_mixin.py +79 -79
- llama_stack/providers/utils/inference/model_registry.py +1 -3
- llama_stack/providers/utils/inference/openai_compat.py +44 -1171
- llama_stack/providers/utils/inference/openai_mixin.py +68 -42
- llama_stack/providers/utils/inference/prompt_adapter.py +50 -265
- llama_stack/providers/utils/inference/stream_utils.py +23 -0
- llama_stack/providers/utils/memory/__init__.py +2 -0
- llama_stack/providers/utils/memory/file_utils.py +1 -1
- llama_stack/providers/utils/memory/openai_vector_store_mixin.py +181 -84
- llama_stack/providers/utils/memory/vector_store.py +39 -38
- llama_stack/providers/utils/pagination.py +1 -1
- llama_stack/providers/utils/responses/responses_store.py +15 -25
- llama_stack/providers/utils/scoring/aggregation_utils.py +1 -2
- llama_stack/providers/utils/scoring/base_scoring_fn.py +1 -2
- llama_stack/providers/utils/tools/mcp.py +93 -11
- llama_stack/providers/utils/vector_io/__init__.py +16 -0
- llama_stack/providers/utils/vector_io/vector_utils.py +36 -0
- llama_stack/telemetry/constants.py +27 -0
- llama_stack/telemetry/helpers.py +43 -0
- llama_stack/testing/api_recorder.py +25 -16
- {llama_stack-0.3.5.dist-info → llama_stack-0.4.1.dist-info}/METADATA +57 -55
- llama_stack-0.4.1.dist-info/RECORD +588 -0
- llama_stack-0.4.1.dist-info/top_level.txt +2 -0
- llama_stack_api/__init__.py +945 -0
- llama_stack_api/admin/__init__.py +45 -0
- llama_stack_api/admin/api.py +72 -0
- llama_stack_api/admin/fastapi_routes.py +117 -0
- llama_stack_api/admin/models.py +113 -0
- llama_stack_api/agents.py +173 -0
- llama_stack_api/batches/__init__.py +40 -0
- llama_stack_api/batches/api.py +53 -0
- llama_stack_api/batches/fastapi_routes.py +113 -0
- llama_stack_api/batches/models.py +78 -0
- llama_stack_api/benchmarks/__init__.py +43 -0
- llama_stack_api/benchmarks/api.py +39 -0
- llama_stack_api/benchmarks/fastapi_routes.py +109 -0
- llama_stack_api/benchmarks/models.py +109 -0
- {llama_stack/apis → llama_stack_api}/common/content_types.py +1 -43
- {llama_stack/apis → llama_stack_api}/common/errors.py +0 -8
- {llama_stack/apis → llama_stack_api}/common/job_types.py +1 -1
- llama_stack_api/common/responses.py +77 -0
- {llama_stack/apis → llama_stack_api}/common/training_types.py +1 -1
- {llama_stack/apis → llama_stack_api}/common/type_system.py +2 -14
- llama_stack_api/connectors.py +146 -0
- {llama_stack/apis/conversations → llama_stack_api}/conversations.py +23 -39
- {llama_stack/apis/datasetio → llama_stack_api}/datasetio.py +4 -8
- llama_stack_api/datasets/__init__.py +61 -0
- llama_stack_api/datasets/api.py +35 -0
- llama_stack_api/datasets/fastapi_routes.py +104 -0
- llama_stack_api/datasets/models.py +152 -0
- {llama_stack/providers → llama_stack_api}/datatypes.py +166 -10
- {llama_stack/apis/eval → llama_stack_api}/eval.py +8 -40
- llama_stack_api/file_processors/__init__.py +27 -0
- llama_stack_api/file_processors/api.py +64 -0
- llama_stack_api/file_processors/fastapi_routes.py +78 -0
- llama_stack_api/file_processors/models.py +42 -0
- llama_stack_api/files/__init__.py +35 -0
- llama_stack_api/files/api.py +51 -0
- llama_stack_api/files/fastapi_routes.py +124 -0
- llama_stack_api/files/models.py +107 -0
- {llama_stack/apis/inference → llama_stack_api}/inference.py +90 -194
- llama_stack_api/inspect_api/__init__.py +37 -0
- llama_stack_api/inspect_api/api.py +25 -0
- llama_stack_api/inspect_api/fastapi_routes.py +76 -0
- llama_stack_api/inspect_api/models.py +28 -0
- {llama_stack/apis/agents → llama_stack_api/internal}/__init__.py +3 -1
- llama_stack/providers/utils/kvstore/api.py → llama_stack_api/internal/kvstore.py +5 -0
- llama_stack_api/internal/sqlstore.py +79 -0
- {llama_stack/apis/models → llama_stack_api}/models.py +11 -9
- {llama_stack/apis/agents → llama_stack_api}/openai_responses.py +184 -27
- {llama_stack/apis/post_training → llama_stack_api}/post_training.py +7 -11
- {llama_stack/apis/prompts → llama_stack_api}/prompts.py +3 -4
- llama_stack_api/providers/__init__.py +33 -0
- llama_stack_api/providers/api.py +16 -0
- llama_stack_api/providers/fastapi_routes.py +57 -0
- llama_stack_api/providers/models.py +24 -0
- {llama_stack/apis/tools → llama_stack_api}/rag_tool.py +2 -52
- {llama_stack/apis → llama_stack_api}/resource.py +1 -1
- llama_stack_api/router_utils.py +160 -0
- {llama_stack/apis/safety → llama_stack_api}/safety.py +6 -9
- {llama_stack → llama_stack_api}/schema_utils.py +94 -4
- {llama_stack/apis/scoring → llama_stack_api}/scoring.py +3 -3
- {llama_stack/apis/scoring_functions → llama_stack_api}/scoring_functions.py +9 -6
- {llama_stack/apis/shields → llama_stack_api}/shields.py +6 -7
- {llama_stack/apis/tools → llama_stack_api}/tools.py +26 -21
- {llama_stack/apis/vector_io → llama_stack_api}/vector_io.py +133 -152
- {llama_stack/apis/vector_stores → llama_stack_api}/vector_stores.py +1 -1
- llama_stack/apis/agents/agents.py +0 -894
- llama_stack/apis/batches/__init__.py +0 -9
- llama_stack/apis/batches/batches.py +0 -100
- llama_stack/apis/benchmarks/__init__.py +0 -7
- llama_stack/apis/benchmarks/benchmarks.py +0 -108
- llama_stack/apis/common/responses.py +0 -36
- llama_stack/apis/conversations/__init__.py +0 -31
- llama_stack/apis/datasets/datasets.py +0 -251
- llama_stack/apis/datatypes.py +0 -160
- llama_stack/apis/eval/__init__.py +0 -7
- llama_stack/apis/files/__init__.py +0 -7
- llama_stack/apis/files/files.py +0 -199
- llama_stack/apis/inference/__init__.py +0 -7
- llama_stack/apis/inference/event_logger.py +0 -43
- llama_stack/apis/inspect/__init__.py +0 -7
- llama_stack/apis/inspect/inspect.py +0 -94
- llama_stack/apis/models/__init__.py +0 -7
- llama_stack/apis/post_training/__init__.py +0 -7
- llama_stack/apis/prompts/__init__.py +0 -9
- llama_stack/apis/providers/__init__.py +0 -7
- llama_stack/apis/providers/providers.py +0 -69
- llama_stack/apis/safety/__init__.py +0 -7
- llama_stack/apis/scoring/__init__.py +0 -7
- llama_stack/apis/scoring_functions/__init__.py +0 -7
- llama_stack/apis/shields/__init__.py +0 -7
- llama_stack/apis/synthetic_data_generation/__init__.py +0 -7
- llama_stack/apis/synthetic_data_generation/synthetic_data_generation.py +0 -77
- llama_stack/apis/telemetry/__init__.py +0 -7
- llama_stack/apis/telemetry/telemetry.py +0 -423
- llama_stack/apis/tools/__init__.py +0 -8
- llama_stack/apis/vector_io/__init__.py +0 -7
- llama_stack/apis/vector_stores/__init__.py +0 -7
- llama_stack/core/server/tracing.py +0 -80
- llama_stack/core/ui/app.py +0 -55
- llama_stack/core/ui/modules/__init__.py +0 -5
- llama_stack/core/ui/modules/api.py +0 -32
- llama_stack/core/ui/modules/utils.py +0 -42
- llama_stack/core/ui/page/__init__.py +0 -5
- llama_stack/core/ui/page/distribution/__init__.py +0 -5
- llama_stack/core/ui/page/distribution/datasets.py +0 -18
- llama_stack/core/ui/page/distribution/eval_tasks.py +0 -20
- llama_stack/core/ui/page/distribution/models.py +0 -18
- llama_stack/core/ui/page/distribution/providers.py +0 -27
- llama_stack/core/ui/page/distribution/resources.py +0 -48
- llama_stack/core/ui/page/distribution/scoring_functions.py +0 -18
- llama_stack/core/ui/page/distribution/shields.py +0 -19
- llama_stack/core/ui/page/evaluations/__init__.py +0 -5
- llama_stack/core/ui/page/evaluations/app_eval.py +0 -143
- llama_stack/core/ui/page/evaluations/native_eval.py +0 -253
- llama_stack/core/ui/page/playground/__init__.py +0 -5
- llama_stack/core/ui/page/playground/chat.py +0 -130
- llama_stack/core/ui/page/playground/tools.py +0 -352
- llama_stack/distributions/dell/build.yaml +0 -33
- llama_stack/distributions/meta-reference-gpu/build.yaml +0 -32
- llama_stack/distributions/nvidia/build.yaml +0 -29
- llama_stack/distributions/open-benchmark/build.yaml +0 -36
- llama_stack/distributions/postgres-demo/__init__.py +0 -7
- llama_stack/distributions/postgres-demo/build.yaml +0 -23
- llama_stack/distributions/postgres-demo/postgres_demo.py +0 -125
- llama_stack/distributions/starter/build.yaml +0 -61
- llama_stack/distributions/starter-gpu/build.yaml +0 -61
- llama_stack/distributions/watsonx/build.yaml +0 -33
- llama_stack/providers/inline/agents/meta_reference/agent_instance.py +0 -1024
- llama_stack/providers/inline/agents/meta_reference/persistence.py +0 -228
- llama_stack/providers/inline/telemetry/__init__.py +0 -5
- llama_stack/providers/inline/telemetry/meta_reference/__init__.py +0 -21
- llama_stack/providers/inline/telemetry/meta_reference/config.py +0 -47
- llama_stack/providers/inline/telemetry/meta_reference/telemetry.py +0 -252
- llama_stack/providers/remote/inference/bedrock/models.py +0 -29
- llama_stack/providers/utils/kvstore/sqlite/config.py +0 -20
- llama_stack/providers/utils/sqlstore/__init__.py +0 -5
- llama_stack/providers/utils/sqlstore/api.py +0 -128
- llama_stack/providers/utils/telemetry/__init__.py +0 -5
- llama_stack/providers/utils/telemetry/trace_protocol.py +0 -142
- llama_stack/providers/utils/telemetry/tracing.py +0 -384
- llama_stack/strong_typing/__init__.py +0 -19
- llama_stack/strong_typing/auxiliary.py +0 -228
- llama_stack/strong_typing/classdef.py +0 -440
- llama_stack/strong_typing/core.py +0 -46
- llama_stack/strong_typing/deserializer.py +0 -877
- llama_stack/strong_typing/docstring.py +0 -409
- llama_stack/strong_typing/exception.py +0 -23
- llama_stack/strong_typing/inspection.py +0 -1085
- llama_stack/strong_typing/mapping.py +0 -40
- llama_stack/strong_typing/name.py +0 -182
- llama_stack/strong_typing/schema.py +0 -792
- llama_stack/strong_typing/serialization.py +0 -97
- llama_stack/strong_typing/serializer.py +0 -500
- llama_stack/strong_typing/slots.py +0 -27
- llama_stack/strong_typing/topological.py +0 -89
- llama_stack/ui/node_modules/flatted/python/flatted.py +0 -149
- llama_stack-0.3.5.dist-info/RECORD +0 -625
- llama_stack-0.3.5.dist-info/top_level.txt +0 -1
- /llama_stack/{providers/utils → core/storage}/kvstore/config.py +0 -0
- /llama_stack/{providers/utils → core/storage}/kvstore/mongodb/__init__.py +0 -0
- /llama_stack/{providers/utils → core/storage}/kvstore/postgres/__init__.py +0 -0
- /llama_stack/{providers/utils → core/storage}/kvstore/redis/__init__.py +0 -0
- /llama_stack/{providers/utils → core/storage}/kvstore/sqlite/__init__.py +0 -0
- /llama_stack/{apis → providers/inline/file_processor}/__init__.py +0 -0
- /llama_stack/{apis/common → telemetry}/__init__.py +0 -0
- {llama_stack-0.3.5.dist-info → llama_stack-0.4.1.dist-info}/WHEEL +0 -0
- {llama_stack-0.3.5.dist-info → llama_stack-0.4.1.dist-info}/entry_points.txt +0 -0
- {llama_stack-0.3.5.dist-info → llama_stack-0.4.1.dist-info}/licenses/LICENSE +0 -0
- {llama_stack/core/ui → llama_stack_api/common}/__init__.py +0 -0
- {llama_stack/strong_typing → llama_stack_api}/py.typed +0 -0
- {llama_stack/apis → llama_stack_api}/version.py +0 -0
llama_stack/apis/datatypes.py
DELETED
|
@@ -1,160 +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 enum import Enum, EnumMeta
|
|
8
|
-
|
|
9
|
-
from pydantic import BaseModel, Field
|
|
10
|
-
|
|
11
|
-
from llama_stack.schema_utils import json_schema_type
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class DynamicApiMeta(EnumMeta):
|
|
15
|
-
def __new__(cls, name, bases, namespace):
|
|
16
|
-
# Store the original enum values
|
|
17
|
-
original_values = {k: v for k, v in namespace.items() if not k.startswith("_")}
|
|
18
|
-
|
|
19
|
-
# Create the enum class
|
|
20
|
-
cls = super().__new__(cls, name, bases, namespace)
|
|
21
|
-
|
|
22
|
-
# Store the original values for reference
|
|
23
|
-
cls._original_values = original_values
|
|
24
|
-
# Initialize _dynamic_values
|
|
25
|
-
cls._dynamic_values = {}
|
|
26
|
-
|
|
27
|
-
return cls
|
|
28
|
-
|
|
29
|
-
def __call__(cls, value):
|
|
30
|
-
try:
|
|
31
|
-
return super().__call__(value)
|
|
32
|
-
except ValueError as e:
|
|
33
|
-
# If this value was already dynamically added, return it
|
|
34
|
-
if value in cls._dynamic_values:
|
|
35
|
-
return cls._dynamic_values[value]
|
|
36
|
-
|
|
37
|
-
# If the value doesn't exist, create a new enum member
|
|
38
|
-
# Create a new member name from the value
|
|
39
|
-
member_name = value.lower().replace("-", "_")
|
|
40
|
-
|
|
41
|
-
# If this member name already exists in the enum, return the existing member
|
|
42
|
-
if member_name in cls._member_map_:
|
|
43
|
-
return cls._member_map_[member_name]
|
|
44
|
-
|
|
45
|
-
# Instead of creating a new member, raise ValueError to force users to use Api.add() to
|
|
46
|
-
# register new APIs explicitly
|
|
47
|
-
raise ValueError(f"API '{value}' does not exist. Use Api.add() to register new APIs.") from e
|
|
48
|
-
|
|
49
|
-
def __iter__(cls):
|
|
50
|
-
# Allow iteration over both static and dynamic members
|
|
51
|
-
yield from super().__iter__()
|
|
52
|
-
if hasattr(cls, "_dynamic_values"):
|
|
53
|
-
yield from cls._dynamic_values.values()
|
|
54
|
-
|
|
55
|
-
def add(cls, value):
|
|
56
|
-
"""
|
|
57
|
-
Add a new API to the enum.
|
|
58
|
-
Used to register external APIs.
|
|
59
|
-
"""
|
|
60
|
-
member_name = value.lower().replace("-", "_")
|
|
61
|
-
|
|
62
|
-
# If this member name already exists in the enum, return it
|
|
63
|
-
if member_name in cls._member_map_:
|
|
64
|
-
return cls._member_map_[member_name]
|
|
65
|
-
|
|
66
|
-
# Create a new enum member
|
|
67
|
-
member = object.__new__(cls)
|
|
68
|
-
member._name_ = member_name
|
|
69
|
-
member._value_ = value
|
|
70
|
-
|
|
71
|
-
# Add it to the enum class
|
|
72
|
-
cls._member_map_[member_name] = member
|
|
73
|
-
cls._member_names_.append(member_name)
|
|
74
|
-
cls._member_type_ = str
|
|
75
|
-
|
|
76
|
-
# Store it in our dynamic values
|
|
77
|
-
cls._dynamic_values[value] = member
|
|
78
|
-
|
|
79
|
-
return member
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
@json_schema_type
|
|
83
|
-
class Api(Enum, metaclass=DynamicApiMeta):
|
|
84
|
-
"""Enumeration of all available APIs in the Llama Stack system.
|
|
85
|
-
:cvar providers: Provider management and configuration
|
|
86
|
-
:cvar inference: Text generation, chat completions, and embeddings
|
|
87
|
-
:cvar safety: Content moderation and safety shields
|
|
88
|
-
:cvar agents: Agent orchestration and execution
|
|
89
|
-
:cvar batches: Batch processing for asynchronous API requests
|
|
90
|
-
:cvar vector_io: Vector database operations and queries
|
|
91
|
-
:cvar datasetio: Dataset input/output operations
|
|
92
|
-
:cvar scoring: Model output evaluation and scoring
|
|
93
|
-
:cvar eval: Model evaluation and benchmarking framework
|
|
94
|
-
:cvar post_training: Fine-tuning and model training
|
|
95
|
-
:cvar tool_runtime: Tool execution and management
|
|
96
|
-
:cvar telemetry: Observability and system monitoring
|
|
97
|
-
:cvar models: Model metadata and management
|
|
98
|
-
:cvar shields: Safety shield implementations
|
|
99
|
-
:cvar datasets: Dataset creation and management
|
|
100
|
-
:cvar scoring_functions: Scoring function definitions
|
|
101
|
-
:cvar benchmarks: Benchmark suite management
|
|
102
|
-
:cvar tool_groups: Tool group organization
|
|
103
|
-
:cvar files: File storage and management
|
|
104
|
-
:cvar prompts: Prompt versions and management
|
|
105
|
-
:cvar inspect: Built-in system inspection and introspection
|
|
106
|
-
"""
|
|
107
|
-
|
|
108
|
-
providers = "providers"
|
|
109
|
-
inference = "inference"
|
|
110
|
-
safety = "safety"
|
|
111
|
-
agents = "agents"
|
|
112
|
-
batches = "batches"
|
|
113
|
-
vector_io = "vector_io"
|
|
114
|
-
datasetio = "datasetio"
|
|
115
|
-
scoring = "scoring"
|
|
116
|
-
eval = "eval"
|
|
117
|
-
post_training = "post_training"
|
|
118
|
-
tool_runtime = "tool_runtime"
|
|
119
|
-
|
|
120
|
-
telemetry = "telemetry"
|
|
121
|
-
|
|
122
|
-
models = "models"
|
|
123
|
-
shields = "shields"
|
|
124
|
-
vector_stores = "vector_stores" # only used for routing table
|
|
125
|
-
datasets = "datasets"
|
|
126
|
-
scoring_functions = "scoring_functions"
|
|
127
|
-
benchmarks = "benchmarks"
|
|
128
|
-
tool_groups = "tool_groups"
|
|
129
|
-
files = "files"
|
|
130
|
-
prompts = "prompts"
|
|
131
|
-
conversations = "conversations"
|
|
132
|
-
|
|
133
|
-
# built-in API
|
|
134
|
-
inspect = "inspect"
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
@json_schema_type
|
|
138
|
-
class Error(BaseModel):
|
|
139
|
-
"""
|
|
140
|
-
Error response from the API. Roughly follows RFC 7807.
|
|
141
|
-
|
|
142
|
-
:param status: HTTP status code
|
|
143
|
-
:param title: Error title, a short summary of the error which is invariant for an error type
|
|
144
|
-
:param detail: Error detail, a longer human-readable description of the error
|
|
145
|
-
:param instance: (Optional) A URL which can be used to retrieve more information about the specific occurrence of the error
|
|
146
|
-
"""
|
|
147
|
-
|
|
148
|
-
status: int
|
|
149
|
-
title: str
|
|
150
|
-
detail: str
|
|
151
|
-
instance: str | None = None
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
class ExternalApiSpec(BaseModel):
|
|
155
|
-
"""Specification for an external API implementation."""
|
|
156
|
-
|
|
157
|
-
module: str = Field(..., description="Python module containing the API implementation")
|
|
158
|
-
name: str = Field(..., description="Name of the API")
|
|
159
|
-
pip_packages: list[str] = Field(default=[], description="List of pip packages to install the API")
|
|
160
|
-
protocol: str = Field(..., description="Name of the protocol class for the API")
|
llama_stack/apis/files/files.py
DELETED
|
@@ -1,199 +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 enum import StrEnum
|
|
8
|
-
from typing import Annotated, ClassVar, Literal, Protocol, runtime_checkable
|
|
9
|
-
|
|
10
|
-
from fastapi import File, Form, Response, UploadFile
|
|
11
|
-
from pydantic import BaseModel, Field
|
|
12
|
-
|
|
13
|
-
from llama_stack.apis.common.responses import Order
|
|
14
|
-
from llama_stack.apis.version import LLAMA_STACK_API_V1
|
|
15
|
-
from llama_stack.providers.utils.telemetry.trace_protocol import trace_protocol
|
|
16
|
-
from llama_stack.schema_utils import json_schema_type, webmethod
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
# OpenAI Files API Models
|
|
20
|
-
class OpenAIFilePurpose(StrEnum):
|
|
21
|
-
"""
|
|
22
|
-
Valid purpose values for OpenAI Files API.
|
|
23
|
-
"""
|
|
24
|
-
|
|
25
|
-
ASSISTANTS = "assistants"
|
|
26
|
-
BATCH = "batch"
|
|
27
|
-
# TODO: Add other purposes as needed
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
@json_schema_type
|
|
31
|
-
class OpenAIFileObject(BaseModel):
|
|
32
|
-
"""
|
|
33
|
-
OpenAI File object as defined in the OpenAI Files API.
|
|
34
|
-
|
|
35
|
-
:param object: The object type, which is always "file"
|
|
36
|
-
:param id: The file identifier, which can be referenced in the API endpoints
|
|
37
|
-
:param bytes: The size of the file, in bytes
|
|
38
|
-
:param created_at: The Unix timestamp (in seconds) for when the file was created
|
|
39
|
-
:param expires_at: The Unix timestamp (in seconds) for when the file expires
|
|
40
|
-
:param filename: The name of the file
|
|
41
|
-
:param purpose: The intended purpose of the file
|
|
42
|
-
"""
|
|
43
|
-
|
|
44
|
-
object: Literal["file"] = "file"
|
|
45
|
-
id: str
|
|
46
|
-
bytes: int
|
|
47
|
-
created_at: int
|
|
48
|
-
expires_at: int
|
|
49
|
-
filename: str
|
|
50
|
-
purpose: OpenAIFilePurpose
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
@json_schema_type
|
|
54
|
-
class ExpiresAfter(BaseModel):
|
|
55
|
-
"""
|
|
56
|
-
Control expiration of uploaded files.
|
|
57
|
-
|
|
58
|
-
Params:
|
|
59
|
-
- anchor, must be "created_at"
|
|
60
|
-
- seconds, must be int between 3600 and 2592000 (1 hour to 30 days)
|
|
61
|
-
"""
|
|
62
|
-
|
|
63
|
-
MIN: ClassVar[int] = 3600 # 1 hour
|
|
64
|
-
MAX: ClassVar[int] = 2592000 # 30 days
|
|
65
|
-
|
|
66
|
-
anchor: Literal["created_at"]
|
|
67
|
-
seconds: int = Field(..., ge=3600, le=2592000)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
@json_schema_type
|
|
71
|
-
class ListOpenAIFileResponse(BaseModel):
|
|
72
|
-
"""
|
|
73
|
-
Response for listing files in OpenAI Files API.
|
|
74
|
-
|
|
75
|
-
:param data: List of file objects
|
|
76
|
-
:param has_more: Whether there are more files available beyond this page
|
|
77
|
-
:param first_id: ID of the first file in the list for pagination
|
|
78
|
-
:param last_id: ID of the last file in the list for pagination
|
|
79
|
-
:param object: The object type, which is always "list"
|
|
80
|
-
"""
|
|
81
|
-
|
|
82
|
-
data: list[OpenAIFileObject]
|
|
83
|
-
has_more: bool
|
|
84
|
-
first_id: str
|
|
85
|
-
last_id: str
|
|
86
|
-
object: Literal["list"] = "list"
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
@json_schema_type
|
|
90
|
-
class OpenAIFileDeleteResponse(BaseModel):
|
|
91
|
-
"""
|
|
92
|
-
Response for deleting a file in OpenAI Files API.
|
|
93
|
-
|
|
94
|
-
:param id: The file identifier that was deleted
|
|
95
|
-
:param object: The object type, which is always "file"
|
|
96
|
-
:param deleted: Whether the file was successfully deleted
|
|
97
|
-
"""
|
|
98
|
-
|
|
99
|
-
id: str
|
|
100
|
-
object: Literal["file"] = "file"
|
|
101
|
-
deleted: bool
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
@runtime_checkable
|
|
105
|
-
@trace_protocol
|
|
106
|
-
class Files(Protocol):
|
|
107
|
-
"""Files
|
|
108
|
-
|
|
109
|
-
This API is used to upload documents that can be used with other Llama Stack APIs.
|
|
110
|
-
"""
|
|
111
|
-
|
|
112
|
-
# OpenAI Files API Endpoints
|
|
113
|
-
@webmethod(route="/openai/v1/files", method="POST", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
114
|
-
@webmethod(route="/files", method="POST", level=LLAMA_STACK_API_V1)
|
|
115
|
-
async def openai_upload_file(
|
|
116
|
-
self,
|
|
117
|
-
file: Annotated[UploadFile, File()],
|
|
118
|
-
purpose: Annotated[OpenAIFilePurpose, Form()],
|
|
119
|
-
expires_after: Annotated[ExpiresAfter | None, Form()] = None,
|
|
120
|
-
) -> OpenAIFileObject:
|
|
121
|
-
"""Upload file.
|
|
122
|
-
|
|
123
|
-
Upload a file that can be used across various endpoints.
|
|
124
|
-
|
|
125
|
-
The file upload should be a multipart form request with:
|
|
126
|
-
- file: The File object (not file name) to be uploaded.
|
|
127
|
-
- purpose: The intended purpose of the uploaded file.
|
|
128
|
-
- expires_after: Optional form values describing expiration for the file.
|
|
129
|
-
|
|
130
|
-
:param file: The uploaded file object containing content and metadata (filename, content_type, etc.).
|
|
131
|
-
:param purpose: The intended purpose of the uploaded file (e.g., "assistants", "fine-tune").
|
|
132
|
-
:param expires_after: Optional form values describing expiration for the file.
|
|
133
|
-
:returns: An OpenAIFileObject representing the uploaded file.
|
|
134
|
-
"""
|
|
135
|
-
...
|
|
136
|
-
|
|
137
|
-
@webmethod(route="/openai/v1/files", method="GET", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
138
|
-
@webmethod(route="/files", method="GET", level=LLAMA_STACK_API_V1)
|
|
139
|
-
async def openai_list_files(
|
|
140
|
-
self,
|
|
141
|
-
after: str | None = None,
|
|
142
|
-
limit: int | None = 10000,
|
|
143
|
-
order: Order | None = Order.desc,
|
|
144
|
-
purpose: OpenAIFilePurpose | None = None,
|
|
145
|
-
) -> ListOpenAIFileResponse:
|
|
146
|
-
"""List files.
|
|
147
|
-
|
|
148
|
-
Returns a list of files that belong to the user's organization.
|
|
149
|
-
|
|
150
|
-
:param after: A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.
|
|
151
|
-
:param limit: A limit on the number of objects to be returned. Limit can range between 1 and 10,000, and the default is 10,000.
|
|
152
|
-
:param order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.
|
|
153
|
-
:param purpose: Only return files with the given purpose.
|
|
154
|
-
:returns: An ListOpenAIFileResponse containing the list of files.
|
|
155
|
-
"""
|
|
156
|
-
...
|
|
157
|
-
|
|
158
|
-
@webmethod(route="/openai/v1/files/{file_id}", method="GET", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
159
|
-
@webmethod(route="/files/{file_id}", method="GET", level=LLAMA_STACK_API_V1)
|
|
160
|
-
async def openai_retrieve_file(
|
|
161
|
-
self,
|
|
162
|
-
file_id: str,
|
|
163
|
-
) -> OpenAIFileObject:
|
|
164
|
-
"""Retrieve file.
|
|
165
|
-
|
|
166
|
-
Returns information about a specific file.
|
|
167
|
-
|
|
168
|
-
:param file_id: The ID of the file to use for this request.
|
|
169
|
-
:returns: An OpenAIFileObject containing file information.
|
|
170
|
-
"""
|
|
171
|
-
...
|
|
172
|
-
|
|
173
|
-
@webmethod(route="/openai/v1/files/{file_id}", method="DELETE", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
174
|
-
@webmethod(route="/files/{file_id}", method="DELETE", level=LLAMA_STACK_API_V1)
|
|
175
|
-
async def openai_delete_file(
|
|
176
|
-
self,
|
|
177
|
-
file_id: str,
|
|
178
|
-
) -> OpenAIFileDeleteResponse:
|
|
179
|
-
"""Delete file.
|
|
180
|
-
|
|
181
|
-
:param file_id: The ID of the file to use for this request.
|
|
182
|
-
:returns: An OpenAIFileDeleteResponse indicating successful deletion.
|
|
183
|
-
"""
|
|
184
|
-
...
|
|
185
|
-
|
|
186
|
-
@webmethod(route="/openai/v1/files/{file_id}/content", method="GET", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
187
|
-
@webmethod(route="/files/{file_id}/content", method="GET", level=LLAMA_STACK_API_V1)
|
|
188
|
-
async def openai_retrieve_file_content(
|
|
189
|
-
self,
|
|
190
|
-
file_id: str,
|
|
191
|
-
) -> Response:
|
|
192
|
-
"""Retrieve file content.
|
|
193
|
-
|
|
194
|
-
Returns the contents of the specified file.
|
|
195
|
-
|
|
196
|
-
:param file_id: The ID of the file to use for this request.
|
|
197
|
-
:returns: The raw file content as a binary response.
|
|
198
|
-
"""
|
|
199
|
-
...
|
|
@@ -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 termcolor import cprint
|
|
8
|
-
|
|
9
|
-
from llama_stack.apis.inference import (
|
|
10
|
-
ChatCompletionResponseEventType,
|
|
11
|
-
ChatCompletionResponseStreamChunk,
|
|
12
|
-
)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class LogEvent:
|
|
16
|
-
def __init__(
|
|
17
|
-
self,
|
|
18
|
-
content: str = "",
|
|
19
|
-
end: str = "\n",
|
|
20
|
-
color="white",
|
|
21
|
-
):
|
|
22
|
-
self.content = content
|
|
23
|
-
self.color = color
|
|
24
|
-
self.end = "\n" if end is None else end
|
|
25
|
-
|
|
26
|
-
def print(self, flush=True):
|
|
27
|
-
cprint(f"{self.content}", color=self.color, end=self.end, flush=flush)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
class EventLogger:
|
|
31
|
-
async def log(self, event_generator):
|
|
32
|
-
async for chunk in event_generator:
|
|
33
|
-
if isinstance(chunk, ChatCompletionResponseStreamChunk):
|
|
34
|
-
event = chunk.event
|
|
35
|
-
if event.event_type == ChatCompletionResponseEventType.start:
|
|
36
|
-
yield LogEvent("Assistant> ", color="cyan", end="")
|
|
37
|
-
elif event.event_type == ChatCompletionResponseEventType.progress:
|
|
38
|
-
yield LogEvent(event.delta, color="yellow", end="")
|
|
39
|
-
elif event.event_type == ChatCompletionResponseEventType.complete:
|
|
40
|
-
yield LogEvent("")
|
|
41
|
-
else:
|
|
42
|
-
yield LogEvent("Assistant> ", color="cyan", end="")
|
|
43
|
-
yield LogEvent(chunk.completion_message.content, color="yellow")
|
|
@@ -1,94 +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 Protocol, runtime_checkable
|
|
8
|
-
|
|
9
|
-
from pydantic import BaseModel
|
|
10
|
-
|
|
11
|
-
from llama_stack.apis.version import LLAMA_STACK_API_V1
|
|
12
|
-
from llama_stack.providers.datatypes import HealthStatus
|
|
13
|
-
from llama_stack.schema_utils import json_schema_type, webmethod
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@json_schema_type
|
|
17
|
-
class RouteInfo(BaseModel):
|
|
18
|
-
"""Information about an API route including its path, method, and implementing providers.
|
|
19
|
-
|
|
20
|
-
:param route: The API endpoint path
|
|
21
|
-
:param method: HTTP method for the route
|
|
22
|
-
:param provider_types: List of provider types that implement this route
|
|
23
|
-
"""
|
|
24
|
-
|
|
25
|
-
route: str
|
|
26
|
-
method: str
|
|
27
|
-
provider_types: list[str]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
@json_schema_type
|
|
31
|
-
class HealthInfo(BaseModel):
|
|
32
|
-
"""Health status information for the service.
|
|
33
|
-
|
|
34
|
-
:param status: Current health status of the service
|
|
35
|
-
"""
|
|
36
|
-
|
|
37
|
-
status: HealthStatus
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
@json_schema_type
|
|
41
|
-
class VersionInfo(BaseModel):
|
|
42
|
-
"""Version information for the service.
|
|
43
|
-
|
|
44
|
-
:param version: Version number of the service
|
|
45
|
-
"""
|
|
46
|
-
|
|
47
|
-
version: str
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
class ListRoutesResponse(BaseModel):
|
|
51
|
-
"""Response containing a list of all available API routes.
|
|
52
|
-
|
|
53
|
-
:param data: List of available route information objects
|
|
54
|
-
"""
|
|
55
|
-
|
|
56
|
-
data: list[RouteInfo]
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
@runtime_checkable
|
|
60
|
-
class Inspect(Protocol):
|
|
61
|
-
"""Inspect
|
|
62
|
-
|
|
63
|
-
APIs for inspecting the Llama Stack service, including health status, available API routes with methods and implementing providers.
|
|
64
|
-
"""
|
|
65
|
-
|
|
66
|
-
@webmethod(route="/inspect/routes", method="GET", level=LLAMA_STACK_API_V1)
|
|
67
|
-
async def list_routes(self) -> ListRoutesResponse:
|
|
68
|
-
"""List routes.
|
|
69
|
-
|
|
70
|
-
List all available API routes with their methods and implementing providers.
|
|
71
|
-
|
|
72
|
-
:returns: Response containing information about all available routes.
|
|
73
|
-
"""
|
|
74
|
-
...
|
|
75
|
-
|
|
76
|
-
@webmethod(route="/health", method="GET", level=LLAMA_STACK_API_V1, require_authentication=False)
|
|
77
|
-
async def health(self) -> HealthInfo:
|
|
78
|
-
"""Get health status.
|
|
79
|
-
|
|
80
|
-
Get the current health status of the service.
|
|
81
|
-
|
|
82
|
-
:returns: Health information indicating if the service is operational.
|
|
83
|
-
"""
|
|
84
|
-
...
|
|
85
|
-
|
|
86
|
-
@webmethod(route="/version", method="GET", level=LLAMA_STACK_API_V1, require_authentication=False)
|
|
87
|
-
async def version(self) -> VersionInfo:
|
|
88
|
-
"""Get version.
|
|
89
|
-
|
|
90
|
-
Get the version of the service.
|
|
91
|
-
|
|
92
|
-
:returns: Version information containing the service version number.
|
|
93
|
-
"""
|
|
94
|
-
...
|
|
@@ -1,9 +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 .prompts import ListPromptsResponse, Prompt, Prompts
|
|
8
|
-
|
|
9
|
-
__all__ = ["Prompt", "Prompts", "ListPromptsResponse"]
|
|
@@ -1,69 +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, Protocol, runtime_checkable
|
|
8
|
-
|
|
9
|
-
from pydantic import BaseModel
|
|
10
|
-
|
|
11
|
-
from llama_stack.apis.version import LLAMA_STACK_API_V1
|
|
12
|
-
from llama_stack.providers.datatypes import HealthResponse
|
|
13
|
-
from llama_stack.schema_utils import json_schema_type, webmethod
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@json_schema_type
|
|
17
|
-
class ProviderInfo(BaseModel):
|
|
18
|
-
"""Information about a registered provider including its configuration and health status.
|
|
19
|
-
|
|
20
|
-
:param api: The API name this provider implements
|
|
21
|
-
:param provider_id: Unique identifier for the provider
|
|
22
|
-
:param provider_type: The type of provider implementation
|
|
23
|
-
:param config: Configuration parameters for the provider
|
|
24
|
-
:param health: Current health status of the provider
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
api: str
|
|
28
|
-
provider_id: str
|
|
29
|
-
provider_type: str
|
|
30
|
-
config: dict[str, Any]
|
|
31
|
-
health: HealthResponse
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
class ListProvidersResponse(BaseModel):
|
|
35
|
-
"""Response containing a list of all available providers.
|
|
36
|
-
|
|
37
|
-
:param data: List of provider information objects
|
|
38
|
-
"""
|
|
39
|
-
|
|
40
|
-
data: list[ProviderInfo]
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
@runtime_checkable
|
|
44
|
-
class Providers(Protocol):
|
|
45
|
-
"""Providers
|
|
46
|
-
|
|
47
|
-
Providers API for inspecting, listing, and modifying providers and their configurations.
|
|
48
|
-
"""
|
|
49
|
-
|
|
50
|
-
@webmethod(route="/providers", method="GET", level=LLAMA_STACK_API_V1)
|
|
51
|
-
async def list_providers(self) -> ListProvidersResponse:
|
|
52
|
-
"""List providers.
|
|
53
|
-
|
|
54
|
-
List all available providers.
|
|
55
|
-
|
|
56
|
-
:returns: A ListProvidersResponse containing information about all providers.
|
|
57
|
-
"""
|
|
58
|
-
...
|
|
59
|
-
|
|
60
|
-
@webmethod(route="/providers/{provider_id}", method="GET", level=LLAMA_STACK_API_V1)
|
|
61
|
-
async def inspect_provider(self, provider_id: str) -> ProviderInfo:
|
|
62
|
-
"""Get provider.
|
|
63
|
-
|
|
64
|
-
Get detailed information about a specific provider.
|
|
65
|
-
|
|
66
|
-
:param provider_id: The ID of the provider to inspect.
|
|
67
|
-
:returns: A ProviderInfo object containing the provider's details.
|
|
68
|
-
"""
|
|
69
|
-
...
|