llama-stack 0.3.5__py3-none-any.whl → 0.4.0__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 +201 -58
- 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 +43 -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 +40 -33
- llama_stack/providers/registry/agents.py +7 -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 +125 -20
- 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 +27 -21
- 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 +26 -18
- 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 +141 -24
- 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 +26 -21
- 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/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.0.dist-info}/METADATA +56 -54
- llama_stack-0.4.0.dist-info/RECORD +588 -0
- llama_stack-0.4.0.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.0.dist-info}/WHEEL +0 -0
- {llama_stack-0.3.5.dist-info → llama_stack-0.4.0.dist-info}/entry_points.txt +0 -0
- {llama_stack-0.3.5.dist-info → llama_stack-0.4.0.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
|
@@ -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 .batches import Batches, BatchObject, ListBatchesResponse
|
|
8
|
-
|
|
9
|
-
__all__ = ["Batches", "BatchObject", "ListBatchesResponse"]
|
|
@@ -1,100 +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 Literal, Protocol, runtime_checkable
|
|
8
|
-
|
|
9
|
-
from pydantic import BaseModel, Field
|
|
10
|
-
|
|
11
|
-
from llama_stack.apis.version import LLAMA_STACK_API_V1
|
|
12
|
-
from llama_stack.schema_utils import json_schema_type, webmethod
|
|
13
|
-
|
|
14
|
-
try:
|
|
15
|
-
from openai.types import Batch as BatchObject
|
|
16
|
-
except ImportError as e:
|
|
17
|
-
raise ImportError("OpenAI package is required for batches API. Please install it with: pip install openai") from e
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
@json_schema_type
|
|
21
|
-
class ListBatchesResponse(BaseModel):
|
|
22
|
-
"""Response containing a list of batch objects."""
|
|
23
|
-
|
|
24
|
-
object: Literal["list"] = "list"
|
|
25
|
-
data: list[BatchObject] = Field(..., description="List of batch objects")
|
|
26
|
-
first_id: str | None = Field(default=None, description="ID of the first batch in the list")
|
|
27
|
-
last_id: str | None = Field(default=None, description="ID of the last batch in the list")
|
|
28
|
-
has_more: bool = Field(default=False, description="Whether there are more batches available")
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
@runtime_checkable
|
|
32
|
-
class Batches(Protocol):
|
|
33
|
-
"""
|
|
34
|
-
The Batches API enables efficient processing of multiple requests in a single operation,
|
|
35
|
-
particularly useful for processing large datasets, batch evaluation workflows, and
|
|
36
|
-
cost-effective inference at scale.
|
|
37
|
-
|
|
38
|
-
The API is designed to allow use of openai client libraries for seamless integration.
|
|
39
|
-
|
|
40
|
-
This API provides the following extensions:
|
|
41
|
-
- idempotent batch creation
|
|
42
|
-
|
|
43
|
-
Note: This API is currently under active development and may undergo changes.
|
|
44
|
-
"""
|
|
45
|
-
|
|
46
|
-
@webmethod(route="/openai/v1/batches", method="POST", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
47
|
-
@webmethod(route="/batches", method="POST", level=LLAMA_STACK_API_V1)
|
|
48
|
-
async def create_batch(
|
|
49
|
-
self,
|
|
50
|
-
input_file_id: str,
|
|
51
|
-
endpoint: str,
|
|
52
|
-
completion_window: Literal["24h"],
|
|
53
|
-
metadata: dict[str, str] | None = None,
|
|
54
|
-
idempotency_key: str | None = None,
|
|
55
|
-
) -> BatchObject:
|
|
56
|
-
"""Create a new batch for processing multiple API requests.
|
|
57
|
-
|
|
58
|
-
:param input_file_id: The ID of an uploaded file containing requests for the batch.
|
|
59
|
-
:param endpoint: The endpoint to be used for all requests in the batch.
|
|
60
|
-
:param completion_window: The time window within which the batch should be processed.
|
|
61
|
-
:param metadata: Optional metadata for the batch.
|
|
62
|
-
:param idempotency_key: Optional idempotency key. When provided, enables idempotent behavior.
|
|
63
|
-
:returns: The created batch object.
|
|
64
|
-
"""
|
|
65
|
-
...
|
|
66
|
-
|
|
67
|
-
@webmethod(route="/openai/v1/batches/{batch_id}", method="GET", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
68
|
-
@webmethod(route="/batches/{batch_id}", method="GET", level=LLAMA_STACK_API_V1)
|
|
69
|
-
async def retrieve_batch(self, batch_id: str) -> BatchObject:
|
|
70
|
-
"""Retrieve information about a specific batch.
|
|
71
|
-
|
|
72
|
-
:param batch_id: The ID of the batch to retrieve.
|
|
73
|
-
:returns: The batch object.
|
|
74
|
-
"""
|
|
75
|
-
...
|
|
76
|
-
|
|
77
|
-
@webmethod(route="/openai/v1/batches/{batch_id}/cancel", method="POST", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
78
|
-
@webmethod(route="/batches/{batch_id}/cancel", method="POST", level=LLAMA_STACK_API_V1)
|
|
79
|
-
async def cancel_batch(self, batch_id: str) -> BatchObject:
|
|
80
|
-
"""Cancel a batch that is in progress.
|
|
81
|
-
|
|
82
|
-
:param batch_id: The ID of the batch to cancel.
|
|
83
|
-
:returns: The updated batch object.
|
|
84
|
-
"""
|
|
85
|
-
...
|
|
86
|
-
|
|
87
|
-
@webmethod(route="/openai/v1/batches", method="GET", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
88
|
-
@webmethod(route="/batches", method="GET", level=LLAMA_STACK_API_V1)
|
|
89
|
-
async def list_batches(
|
|
90
|
-
self,
|
|
91
|
-
after: str | None = None,
|
|
92
|
-
limit: int = 20,
|
|
93
|
-
) -> ListBatchesResponse:
|
|
94
|
-
"""List all batches for the current user.
|
|
95
|
-
|
|
96
|
-
:param after: A cursor for pagination; returns batches after this batch ID.
|
|
97
|
-
:param limit: Number of batches to return (default 20, max 100).
|
|
98
|
-
:returns: A list of batch objects.
|
|
99
|
-
"""
|
|
100
|
-
...
|
|
@@ -1,108 +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
|
-
from typing import Any, Literal, Protocol, runtime_checkable
|
|
7
|
-
|
|
8
|
-
from pydantic import BaseModel, Field
|
|
9
|
-
|
|
10
|
-
from llama_stack.apis.resource import Resource, ResourceType
|
|
11
|
-
from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1ALPHA
|
|
12
|
-
from llama_stack.schema_utils import json_schema_type, webmethod
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class CommonBenchmarkFields(BaseModel):
|
|
16
|
-
dataset_id: str
|
|
17
|
-
scoring_functions: list[str]
|
|
18
|
-
metadata: dict[str, Any] = Field(
|
|
19
|
-
default_factory=dict,
|
|
20
|
-
description="Metadata for this evaluation task",
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@json_schema_type
|
|
25
|
-
class Benchmark(CommonBenchmarkFields, Resource):
|
|
26
|
-
"""A benchmark resource for evaluating model performance.
|
|
27
|
-
|
|
28
|
-
:param dataset_id: Identifier of the dataset to use for the benchmark evaluation
|
|
29
|
-
:param scoring_functions: List of scoring function identifiers to apply during evaluation
|
|
30
|
-
:param metadata: Metadata for this evaluation task
|
|
31
|
-
:param type: The resource type, always benchmark
|
|
32
|
-
"""
|
|
33
|
-
|
|
34
|
-
type: Literal[ResourceType.benchmark] = ResourceType.benchmark
|
|
35
|
-
|
|
36
|
-
@property
|
|
37
|
-
def benchmark_id(self) -> str:
|
|
38
|
-
return self.identifier
|
|
39
|
-
|
|
40
|
-
@property
|
|
41
|
-
def provider_benchmark_id(self) -> str | None:
|
|
42
|
-
return self.provider_resource_id
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
class BenchmarkInput(CommonBenchmarkFields, BaseModel):
|
|
46
|
-
benchmark_id: str
|
|
47
|
-
provider_id: str | None = None
|
|
48
|
-
provider_benchmark_id: str | None = None
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
class ListBenchmarksResponse(BaseModel):
|
|
52
|
-
data: list[Benchmark]
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
@runtime_checkable
|
|
56
|
-
class Benchmarks(Protocol):
|
|
57
|
-
@webmethod(route="/eval/benchmarks", method="GET", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
58
|
-
@webmethod(route="/eval/benchmarks", method="GET", level=LLAMA_STACK_API_V1ALPHA)
|
|
59
|
-
async def list_benchmarks(self) -> ListBenchmarksResponse:
|
|
60
|
-
"""List all benchmarks.
|
|
61
|
-
|
|
62
|
-
:returns: A ListBenchmarksResponse.
|
|
63
|
-
"""
|
|
64
|
-
...
|
|
65
|
-
|
|
66
|
-
@webmethod(route="/eval/benchmarks/{benchmark_id}", method="GET", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
67
|
-
@webmethod(route="/eval/benchmarks/{benchmark_id}", method="GET", level=LLAMA_STACK_API_V1ALPHA)
|
|
68
|
-
async def get_benchmark(
|
|
69
|
-
self,
|
|
70
|
-
benchmark_id: str,
|
|
71
|
-
) -> Benchmark:
|
|
72
|
-
"""Get a benchmark by its ID.
|
|
73
|
-
|
|
74
|
-
:param benchmark_id: The ID of the benchmark to get.
|
|
75
|
-
:returns: A Benchmark.
|
|
76
|
-
"""
|
|
77
|
-
...
|
|
78
|
-
|
|
79
|
-
@webmethod(route="/eval/benchmarks", method="POST", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
80
|
-
@webmethod(route="/eval/benchmarks", method="POST", level=LLAMA_STACK_API_V1ALPHA)
|
|
81
|
-
async def register_benchmark(
|
|
82
|
-
self,
|
|
83
|
-
benchmark_id: str,
|
|
84
|
-
dataset_id: str,
|
|
85
|
-
scoring_functions: list[str],
|
|
86
|
-
provider_benchmark_id: str | None = None,
|
|
87
|
-
provider_id: str | None = None,
|
|
88
|
-
metadata: dict[str, Any] | None = None,
|
|
89
|
-
) -> None:
|
|
90
|
-
"""Register a benchmark.
|
|
91
|
-
|
|
92
|
-
:param benchmark_id: The ID of the benchmark to register.
|
|
93
|
-
:param dataset_id: The ID of the dataset to use for the benchmark.
|
|
94
|
-
:param scoring_functions: The scoring functions to use for the benchmark.
|
|
95
|
-
:param provider_benchmark_id: The ID of the provider benchmark to use for the benchmark.
|
|
96
|
-
:param provider_id: The ID of the provider to use for the benchmark.
|
|
97
|
-
:param metadata: The metadata to use for the benchmark.
|
|
98
|
-
"""
|
|
99
|
-
...
|
|
100
|
-
|
|
101
|
-
@webmethod(route="/eval/benchmarks/{benchmark_id}", method="DELETE", level=LLAMA_STACK_API_V1, deprecated=True)
|
|
102
|
-
@webmethod(route="/eval/benchmarks/{benchmark_id}", method="DELETE", level=LLAMA_STACK_API_V1ALPHA)
|
|
103
|
-
async def unregister_benchmark(self, benchmark_id: str) -> None:
|
|
104
|
-
"""Unregister a benchmark.
|
|
105
|
-
|
|
106
|
-
:param benchmark_id: The ID of the benchmark to unregister.
|
|
107
|
-
"""
|
|
108
|
-
...
|
|
@@ -1,36 +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
|
|
8
|
-
from typing import Any
|
|
9
|
-
|
|
10
|
-
from pydantic import BaseModel
|
|
11
|
-
|
|
12
|
-
from llama_stack.schema_utils import json_schema_type
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class Order(Enum):
|
|
16
|
-
"""Sort order for paginated responses.
|
|
17
|
-
:cvar asc: Ascending order
|
|
18
|
-
:cvar desc: Descending order
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
|
-
asc = "asc"
|
|
22
|
-
desc = "desc"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
@json_schema_type
|
|
26
|
-
class PaginatedResponse(BaseModel):
|
|
27
|
-
"""A generic paginated response that follows a simple format.
|
|
28
|
-
|
|
29
|
-
:param data: The list of items for the current page
|
|
30
|
-
:param has_more: Whether there are more items available after this set
|
|
31
|
-
:param url: The URL for accessing this list
|
|
32
|
-
"""
|
|
33
|
-
|
|
34
|
-
data: list[dict[str, Any]]
|
|
35
|
-
has_more: bool
|
|
36
|
-
url: str | None = None
|
|
@@ -1,31 +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 .conversations import (
|
|
8
|
-
Conversation,
|
|
9
|
-
ConversationCreateRequest,
|
|
10
|
-
ConversationDeletedResource,
|
|
11
|
-
ConversationItem,
|
|
12
|
-
ConversationItemCreateRequest,
|
|
13
|
-
ConversationItemDeletedResource,
|
|
14
|
-
ConversationItemList,
|
|
15
|
-
Conversations,
|
|
16
|
-
ConversationUpdateRequest,
|
|
17
|
-
Metadata,
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
__all__ = [
|
|
21
|
-
"Conversation",
|
|
22
|
-
"ConversationCreateRequest",
|
|
23
|
-
"ConversationDeletedResource",
|
|
24
|
-
"ConversationItem",
|
|
25
|
-
"ConversationItemCreateRequest",
|
|
26
|
-
"ConversationItemDeletedResource",
|
|
27
|
-
"ConversationItemList",
|
|
28
|
-
"Conversations",
|
|
29
|
-
"ConversationUpdateRequest",
|
|
30
|
-
"Metadata",
|
|
31
|
-
]
|
|
@@ -1,251 +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, StrEnum
|
|
8
|
-
from typing import Annotated, Any, Literal, Protocol
|
|
9
|
-
|
|
10
|
-
from pydantic import BaseModel, Field
|
|
11
|
-
|
|
12
|
-
from llama_stack.apis.resource import Resource, ResourceType
|
|
13
|
-
from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1BETA
|
|
14
|
-
from llama_stack.schema_utils import json_schema_type, register_schema, webmethod
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class DatasetPurpose(StrEnum):
|
|
18
|
-
"""
|
|
19
|
-
Purpose of the dataset. Each purpose has a required input data schema.
|
|
20
|
-
|
|
21
|
-
:cvar post-training/messages: The dataset contains messages used for post-training.
|
|
22
|
-
{
|
|
23
|
-
"messages": [
|
|
24
|
-
{"role": "user", "content": "Hello, world!"},
|
|
25
|
-
{"role": "assistant", "content": "Hello, world!"},
|
|
26
|
-
]
|
|
27
|
-
}
|
|
28
|
-
:cvar eval/question-answer: The dataset contains a question column and an answer column.
|
|
29
|
-
{
|
|
30
|
-
"question": "What is the capital of France?",
|
|
31
|
-
"answer": "Paris"
|
|
32
|
-
}
|
|
33
|
-
:cvar eval/messages-answer: The dataset contains a messages column with list of messages and an answer column.
|
|
34
|
-
{
|
|
35
|
-
"messages": [
|
|
36
|
-
{"role": "user", "content": "Hello, my name is John Doe."},
|
|
37
|
-
{"role": "assistant", "content": "Hello, John Doe. How can I help you today?"},
|
|
38
|
-
{"role": "user", "content": "What's my name?"},
|
|
39
|
-
],
|
|
40
|
-
"answer": "John Doe"
|
|
41
|
-
}
|
|
42
|
-
"""
|
|
43
|
-
|
|
44
|
-
post_training_messages = "post-training/messages"
|
|
45
|
-
eval_question_answer = "eval/question-answer"
|
|
46
|
-
eval_messages_answer = "eval/messages-answer"
|
|
47
|
-
|
|
48
|
-
# TODO: add more schemas here
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
class DatasetType(Enum):
|
|
52
|
-
"""
|
|
53
|
-
Type of the dataset source.
|
|
54
|
-
:cvar uri: The dataset can be obtained from a URI.
|
|
55
|
-
:cvar rows: The dataset is stored in rows.
|
|
56
|
-
"""
|
|
57
|
-
|
|
58
|
-
uri = "uri"
|
|
59
|
-
rows = "rows"
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
@json_schema_type
|
|
63
|
-
class URIDataSource(BaseModel):
|
|
64
|
-
"""A dataset that can be obtained from a URI.
|
|
65
|
-
:param uri: The dataset can be obtained from a URI. E.g.
|
|
66
|
-
- "https://mywebsite.com/mydata.jsonl"
|
|
67
|
-
- "lsfs://mydata.jsonl"
|
|
68
|
-
- "data:csv;base64,{base64_content}"
|
|
69
|
-
"""
|
|
70
|
-
|
|
71
|
-
type: Literal["uri"] = "uri"
|
|
72
|
-
uri: str
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
@json_schema_type
|
|
76
|
-
class RowsDataSource(BaseModel):
|
|
77
|
-
"""A dataset stored in rows.
|
|
78
|
-
:param rows: The dataset is stored in rows. E.g.
|
|
79
|
-
- [
|
|
80
|
-
{"messages": [{"role": "user", "content": "Hello, world!"}, {"role": "assistant", "content": "Hello, world!"}]}
|
|
81
|
-
]
|
|
82
|
-
"""
|
|
83
|
-
|
|
84
|
-
type: Literal["rows"] = "rows"
|
|
85
|
-
rows: list[dict[str, Any]]
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
DataSource = Annotated[
|
|
89
|
-
URIDataSource | RowsDataSource,
|
|
90
|
-
Field(discriminator="type"),
|
|
91
|
-
]
|
|
92
|
-
register_schema(DataSource, name="DataSource")
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
class CommonDatasetFields(BaseModel):
|
|
96
|
-
"""
|
|
97
|
-
Common fields for a dataset.
|
|
98
|
-
|
|
99
|
-
:param purpose: Purpose of the dataset indicating its intended use
|
|
100
|
-
:param source: Data source configuration for the dataset
|
|
101
|
-
:param metadata: Additional metadata for the dataset
|
|
102
|
-
"""
|
|
103
|
-
|
|
104
|
-
purpose: DatasetPurpose
|
|
105
|
-
source: DataSource
|
|
106
|
-
metadata: dict[str, Any] = Field(
|
|
107
|
-
default_factory=dict,
|
|
108
|
-
description="Any additional metadata for this dataset",
|
|
109
|
-
)
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
@json_schema_type
|
|
113
|
-
class Dataset(CommonDatasetFields, Resource):
|
|
114
|
-
"""Dataset resource for storing and accessing training or evaluation data.
|
|
115
|
-
|
|
116
|
-
:param type: Type of resource, always 'dataset' for datasets
|
|
117
|
-
"""
|
|
118
|
-
|
|
119
|
-
type: Literal[ResourceType.dataset] = ResourceType.dataset
|
|
120
|
-
|
|
121
|
-
@property
|
|
122
|
-
def dataset_id(self) -> str:
|
|
123
|
-
return self.identifier
|
|
124
|
-
|
|
125
|
-
@property
|
|
126
|
-
def provider_dataset_id(self) -> str | None:
|
|
127
|
-
return self.provider_resource_id
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
class DatasetInput(CommonDatasetFields, BaseModel):
|
|
131
|
-
"""Input parameters for dataset operations.
|
|
132
|
-
|
|
133
|
-
:param dataset_id: Unique identifier for the dataset
|
|
134
|
-
"""
|
|
135
|
-
|
|
136
|
-
dataset_id: str
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
class ListDatasetsResponse(BaseModel):
|
|
140
|
-
"""Response from listing datasets.
|
|
141
|
-
|
|
142
|
-
:param data: List of datasets
|
|
143
|
-
"""
|
|
144
|
-
|
|
145
|
-
data: list[Dataset]
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
class Datasets(Protocol):
|
|
149
|
-
@webmethod(route="/datasets", method="POST", deprecated=True, level=LLAMA_STACK_API_V1)
|
|
150
|
-
@webmethod(route="/datasets", method="POST", level=LLAMA_STACK_API_V1BETA)
|
|
151
|
-
async def register_dataset(
|
|
152
|
-
self,
|
|
153
|
-
purpose: DatasetPurpose,
|
|
154
|
-
source: DataSource,
|
|
155
|
-
metadata: dict[str, Any] | None = None,
|
|
156
|
-
dataset_id: str | None = None,
|
|
157
|
-
) -> Dataset:
|
|
158
|
-
"""
|
|
159
|
-
Register a new dataset.
|
|
160
|
-
|
|
161
|
-
:param purpose: The purpose of the dataset.
|
|
162
|
-
One of:
|
|
163
|
-
- "post-training/messages": The dataset contains a messages column with list of messages for post-training.
|
|
164
|
-
{
|
|
165
|
-
"messages": [
|
|
166
|
-
{"role": "user", "content": "Hello, world!"},
|
|
167
|
-
{"role": "assistant", "content": "Hello, world!"},
|
|
168
|
-
]
|
|
169
|
-
}
|
|
170
|
-
- "eval/question-answer": The dataset contains a question column and an answer column for evaluation.
|
|
171
|
-
{
|
|
172
|
-
"question": "What is the capital of France?",
|
|
173
|
-
"answer": "Paris"
|
|
174
|
-
}
|
|
175
|
-
- "eval/messages-answer": The dataset contains a messages column with list of messages and an answer column for evaluation.
|
|
176
|
-
{
|
|
177
|
-
"messages": [
|
|
178
|
-
{"role": "user", "content": "Hello, my name is John Doe."},
|
|
179
|
-
{"role": "assistant", "content": "Hello, John Doe. How can I help you today?"},
|
|
180
|
-
{"role": "user", "content": "What's my name?"},
|
|
181
|
-
],
|
|
182
|
-
"answer": "John Doe"
|
|
183
|
-
}
|
|
184
|
-
:param source: The data source of the dataset. Ensure that the data source schema is compatible with the purpose of the dataset. Examples:
|
|
185
|
-
- {
|
|
186
|
-
"type": "uri",
|
|
187
|
-
"uri": "https://mywebsite.com/mydata.jsonl"
|
|
188
|
-
}
|
|
189
|
-
- {
|
|
190
|
-
"type": "uri",
|
|
191
|
-
"uri": "lsfs://mydata.jsonl"
|
|
192
|
-
}
|
|
193
|
-
- {
|
|
194
|
-
"type": "uri",
|
|
195
|
-
"uri": "data:csv;base64,{base64_content}"
|
|
196
|
-
}
|
|
197
|
-
- {
|
|
198
|
-
"type": "uri",
|
|
199
|
-
"uri": "huggingface://llamastack/simpleqa?split=train"
|
|
200
|
-
}
|
|
201
|
-
- {
|
|
202
|
-
"type": "rows",
|
|
203
|
-
"rows": [
|
|
204
|
-
{
|
|
205
|
-
"messages": [
|
|
206
|
-
{"role": "user", "content": "Hello, world!"},
|
|
207
|
-
{"role": "assistant", "content": "Hello, world!"},
|
|
208
|
-
]
|
|
209
|
-
}
|
|
210
|
-
]
|
|
211
|
-
}
|
|
212
|
-
:param metadata: The metadata for the dataset.
|
|
213
|
-
- E.g. {"description": "My dataset"}.
|
|
214
|
-
:param dataset_id: The ID of the dataset. If not provided, an ID will be generated.
|
|
215
|
-
:returns: A Dataset.
|
|
216
|
-
"""
|
|
217
|
-
...
|
|
218
|
-
|
|
219
|
-
@webmethod(route="/datasets/{dataset_id:path}", method="GET", deprecated=True, level=LLAMA_STACK_API_V1)
|
|
220
|
-
@webmethod(route="/datasets/{dataset_id:path}", method="GET", level=LLAMA_STACK_API_V1BETA)
|
|
221
|
-
async def get_dataset(
|
|
222
|
-
self,
|
|
223
|
-
dataset_id: str,
|
|
224
|
-
) -> Dataset:
|
|
225
|
-
"""Get a dataset by its ID.
|
|
226
|
-
|
|
227
|
-
:param dataset_id: The ID of the dataset to get.
|
|
228
|
-
:returns: A Dataset.
|
|
229
|
-
"""
|
|
230
|
-
...
|
|
231
|
-
|
|
232
|
-
@webmethod(route="/datasets", method="GET", deprecated=True, level=LLAMA_STACK_API_V1)
|
|
233
|
-
@webmethod(route="/datasets", method="GET", level=LLAMA_STACK_API_V1BETA)
|
|
234
|
-
async def list_datasets(self) -> ListDatasetsResponse:
|
|
235
|
-
"""List all datasets.
|
|
236
|
-
|
|
237
|
-
:returns: A ListDatasetsResponse.
|
|
238
|
-
"""
|
|
239
|
-
...
|
|
240
|
-
|
|
241
|
-
@webmethod(route="/datasets/{dataset_id:path}", method="DELETE", deprecated=True, level=LLAMA_STACK_API_V1)
|
|
242
|
-
@webmethod(route="/datasets/{dataset_id:path}", method="DELETE", level=LLAMA_STACK_API_V1BETA)
|
|
243
|
-
async def unregister_dataset(
|
|
244
|
-
self,
|
|
245
|
-
dataset_id: str,
|
|
246
|
-
) -> None:
|
|
247
|
-
"""Unregister a dataset by its ID.
|
|
248
|
-
|
|
249
|
-
:param dataset_id: The ID of the dataset to unregister.
|
|
250
|
-
"""
|
|
251
|
-
...
|