diff --git a/.vscode/launch.json b/.vscode/launch.json index 3d4f2d3c..99013fd3 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,11 +6,21 @@ "configurations": [ { - "name": "Debug Ragas Distribution", + "name": "Debug Ragas Distribution -- Remote", "type": "debugpy", "request": "launch", "module": "llama_stack.cli.llama", - "args": ["stack", "run", "distribution/run.yaml"], + "args": ["stack", "run", "distribution/run-remote.yaml"], + "cwd": "${workspaceFolder}", + "envFile": "${workspaceFolder}/.env", + "justMyCode": false + }, + { + "name": "Debug Ragas Distribution -- Inline", + "type": "debugpy", + "request": "launch", + "module": "llama_stack.cli.llama", + "args": ["stack", "run", "distribution/run-inline.yaml"], "cwd": "${workspaceFolder}", "envFile": "${workspaceFolder}/.env", "justMyCode": false diff --git a/README.md b/README.md index 1f7d5d43..833b7516 100644 --- a/README.md +++ b/README.md @@ -38,19 +38,7 @@ There are two versions of the provider: ``` - The sample LS distributions (one for inline and one for remote provider) is a simple LS distribution that uses Ollama for inference and embeddings. See the provider-specific sections below for setup and run commands. -### Inline provider - -Create a `.env` file with the required environment variable: -```bash -EMBEDDING_MODEL=all-MiniLM-L6-v2 -``` - -Run the server: -```bash -dotenv run uv run llama stack run distribution/run-inline.yaml -``` - -### Remote provider +### Remote provider (default) Create a `.env` file with the following: ```bash @@ -75,6 +63,19 @@ Run the server: dotenv run uv run llama stack run distribution/run-remote.yaml ``` +### Inline provider (need to specify `.inline` in the module name) + +Create a `.env` file with the required environment variable: +```bash +EMBEDDING_MODEL=all-MiniLM-L6-v2 +``` + +Run the server: +```bash +dotenv run uv run llama stack run distribution/run-inline.yaml +``` + +You will notice that `run-inline.yaml` file has the module name as `llama_stack_provider_ragas.inline`, in order to specify the inline provider. ## Usage See the demos in the `demos` directory. diff --git a/demos/inline_demo.ipynb b/demos/inline_demo.ipynb index 47ae6726..e24ba331 100644 --- a/demos/inline_demo.ipynb +++ b/demos/inline_demo.ipynb @@ -67,13 +67,40 @@ "│ │ model_type='embedding'\n", "│ ),\n", "│ Model(\n", - "│ │ identifier='granite3.3:2b',\n", + "│ │ identifier='ollama/granite3.3:2b',\n", "│ │ metadata={},\n", "│ │ api_model_type='llm',\n", "│ │ provider_id='ollama',\n", "│ │ type='model',\n", "│ │ provider_resource_id='granite3.3:2b',\n", "│ │ model_type='llm'\n", + "│ ),\n", + "│ Model(\n", + "│ │ identifier='ollama/all-minilm:l6-v2',\n", + "│ │ metadata={'embedding_dimension': 384.0, 'context_length': 512.0},\n", + "│ │ api_model_type='embedding',\n", + "│ │ provider_id='ollama',\n", + "│ │ type='model',\n", + "│ │ provider_resource_id='all-minilm:l6-v2',\n", + "│ │ model_type='embedding'\n", + "│ ),\n", + "│ Model(\n", + "│ │ identifier='all-minilm',\n", + "│ │ metadata={'embedding_dimension': 384.0, 'context_length': 512.0},\n", + "│ │ api_model_type='embedding',\n", + "│ │ provider_id='ollama',\n", + "│ │ type='model',\n", + "│ │ provider_resource_id='all-minilm:l6-v2',\n", + "│ │ model_type='embedding'\n", + "│ ),\n", + "│ Model(\n", + "│ │ identifier='nomic-embed-text',\n", + "│ │ metadata={'embedding_dimension': 768.0, 'context_length': 8192.0},\n", + "│ │ api_model_type='embedding',\n", + "│ │ provider_id='ollama',\n", + "│ │ type='model',\n", + "│ │ provider_resource_id='nomic-embed-text:latest',\n", + "│ │ model_type='embedding'\n", "│ )\n", "]\n", "\n" @@ -90,13 +117,40 @@ "\u001b[2;32m│ │ \u001b[0m\u001b[33mmodel_type\u001b[0m=\u001b[32m'embedding'\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[1;35mModel\u001b[0m\u001b[1m(\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'granite3.3:2b'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'ollama/granite3.3:2b'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mmetadata\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mapi_model_type\u001b[0m=\u001b[32m'llm'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'ollama'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'model'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'granite3.3:2b'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mmodel_type\u001b[0m=\u001b[32m'llm'\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[1;35mModel\u001b[0m\u001b[1m(\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'ollama/all-minilm:l6-v2'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mmetadata\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'embedding_dimension'\u001b[0m: \u001b[1;36m384.0\u001b[0m, \u001b[32m'context_length'\u001b[0m: \u001b[1;36m512.0\u001b[0m\u001b[1m}\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mapi_model_type\u001b[0m=\u001b[32m'embedding'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'ollama'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'model'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'all-minilm:l6-v2'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mmodel_type\u001b[0m=\u001b[32m'embedding'\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[1;35mModel\u001b[0m\u001b[1m(\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'all-minilm'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mmetadata\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'embedding_dimension'\u001b[0m: \u001b[1;36m384.0\u001b[0m, \u001b[32m'context_length'\u001b[0m: \u001b[1;36m512.0\u001b[0m\u001b[1m}\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mapi_model_type\u001b[0m=\u001b[32m'embedding'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'ollama'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'model'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'all-minilm:l6-v2'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mmodel_type\u001b[0m=\u001b[32m'embedding'\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[1;35mModel\u001b[0m\u001b[1m(\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'nomic-embed-text'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mmetadata\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'embedding_dimension'\u001b[0m: \u001b[1;36m768.0\u001b[0m, \u001b[32m'context_length'\u001b[0m: \u001b[1;36m8192.0\u001b[0m\u001b[1m}\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mapi_model_type\u001b[0m=\u001b[32m'embedding'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'ollama'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'model'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'nomic-embed-text:latest'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mmodel_type\u001b[0m=\u001b[32m'embedding'\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m\n", "\u001b[1m]\u001b[0m\n" ] @@ -181,13 +235,13 @@ "data": { "text/html": [ "
DatasetRegisterResponse(\n", - "│ identifier='ragas_demo_dataset_20250903_153732',\n", + "│ identifier='ragas_demo_dataset_inline',\n", "│ metadata={\n", "│ │ 'provider_id': 'localfs',\n", "│ │ 'description': 'Sample RAG evaluation dataset for Ragas demo',\n", "│ │ 'size': 3.0,\n", "│ │ 'format': 'ragas',\n", - "│ │ 'created_at': '2025-09-03T15:37:32.376389'\n", + "│ │ 'created_at': '2025-09-25T19:25:53.739691'\n", "│ },\n", "│ provider_id='localfs',\n", "│ purpose='eval/question-answer',\n", @@ -219,20 +273,20 @@ "│ │ type='rows'\n", "│ ),\n", "│ type='dataset',\n", - "│ provider_resource_id='ragas_demo_dataset_20250903_153732',\n", - "│ owner={'principal': '', 'attributes': {}}\n", + "│ provider_resource_id='ragas_demo_dataset_inline',\n", + "│ owner=None\n", ")\n", "\n" ], "text/plain": [ "\u001b[1;35mDatasetRegisterResponse\u001b[0m\u001b[1m(\u001b[0m\n", - "\u001b[2;32m│ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'ragas_demo_dataset_20250903_153732'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'ragas_demo_dataset_inline'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mmetadata\u001b[0m=\u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'provider_id'\u001b[0m: \u001b[32m'localfs'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'description'\u001b[0m: \u001b[32m'Sample RAG evaluation dataset for Ragas demo'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'size'\u001b[0m: \u001b[1;36m3.0\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'format'\u001b[0m: \u001b[32m'ragas'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[32m'2025-09-03T15:37:32.376389'\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[32m'2025-09-25T19:25:53.739691'\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'localfs'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mpurpose\u001b[0m=\u001b[32m'eval/question-answer'\u001b[0m,\n", @@ -264,8 +318,8 @@ "\u001b[2;32m│ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'rows'\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'dataset'\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'ragas_demo_dataset_20250903_153732'\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mowner\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'principal'\u001b[0m: \u001b[32m''\u001b[0m, \u001b[32m'attributes'\u001b[0m: \u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\u001b[1m}\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'ragas_demo_dataset_inline'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mowner\u001b[0m=\u001b[3;35mNone\u001b[0m\n", "\u001b[1m)\u001b[0m\n" ] }, @@ -275,7 +329,7 @@ ], "source": [ "# Register the dataset\n", - "dataset_id = f\"ragas_demo_dataset_{datetime.now().strftime('%Y%m%d_%H%M%S')}\"\n", + "dataset_id = \"ragas_demo_dataset_inline\"\n", "\n", "dataset_response = client.datasets.register(\n", " dataset_id=dataset_id,\n", @@ -342,7 +396,7 @@ " benchmark_id=benchmark_id,\n", " dataset_id=dataset_id,\n", " scoring_functions=ragas_metrics,\n", - " provider_id=\"trustyai_ragas_inline\",\n", + " provider_id=\"trustyai_ragas\",\n", " # metadata={\n", " # \"provider\": \"ragas\",\n", " # \"version\": \"1.0\",\n", @@ -371,22 +425,22 @@ "text/html": [ "
[\n", "│ Benchmark(\n", - "│ │ dataset_id='ragas_demo_dataset_remote',\n", - "│ │ identifier='ragas_demo_benchmark_remote',\n", + "│ │ dataset_id='ragas_demo_dataset_inline',\n", + "│ │ identifier='ragas_demo_benchmark_20250925_192402',\n", "│ │ metadata={},\n", - "│ │ provider_id='trustyai_ragas_remote',\n", + "│ │ provider_id='trustyai_ragas',\n", "│ │ scoring_functions=['answer_relevancy'],\n", "│ │ type='benchmark',\n", - "│ │ provider_resource_id='ragas_demo_benchmark_remote'\n", + "│ │ provider_resource_id='ragas_demo_benchmark_20250925_192402'\n", "│ ),\n", "│ Benchmark(\n", - "│ │ dataset_id='ragas_demo_dataset_20250903_153732',\n", - "│ │ identifier='ragas_demo_benchmark_20250903_153732',\n", + "│ │ dataset_id='ragas_demo_dataset_inline',\n", + "│ │ identifier='ragas_demo_benchmark_20250925_192553',\n", "│ │ metadata={},\n", - "│ │ provider_id='trustyai_ragas_inline',\n", + "│ │ provider_id='trustyai_ragas',\n", "│ │ scoring_functions=['answer_relevancy'],\n", "│ │ type='benchmark',\n", - "│ │ provider_resource_id='ragas_demo_benchmark_20250903_153732'\n", + "│ │ provider_resource_id='ragas_demo_benchmark_20250925_192553'\n", "│ )\n", "]\n", "\n" @@ -394,22 +448,22 @@ "text/plain": [ "\u001b[1m[\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1;35mBenchmark\u001b[0m\u001b[1m(\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[33mdataset_id\u001b[0m=\u001b[32m'ragas_demo_dataset_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mdataset_id\u001b[0m=\u001b[32m'ragas_demo_dataset_inline'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'ragas_demo_benchmark_20250925_192402'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mmetadata\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'trustyai_ragas_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'trustyai_ragas'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mscoring_functions\u001b[0m=\u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'benchmark'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'ragas_demo_benchmark_remote'\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'ragas_demo_benchmark_20250925_192402'\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[1;35mBenchmark\u001b[0m\u001b[1m(\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[33mdataset_id\u001b[0m=\u001b[32m'ragas_demo_dataset_20250903_153732'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'ragas_demo_benchmark_20250903_153732'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mdataset_id\u001b[0m=\u001b[32m'ragas_demo_dataset_inline'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'ragas_demo_benchmark_20250925_192553'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mmetadata\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'trustyai_ragas_inline'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'trustyai_ragas'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mscoring_functions\u001b[0m=\u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'benchmark'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'ragas_demo_benchmark_20250903_153732'\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'ragas_demo_benchmark_20250925_192553'\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m\n", "\u001b[1m]\u001b[0m\n" ] @@ -441,21 +495,18 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: POST http://localhost:8321/v1/eval/benchmarks/ragas_demo_benchmark_20250903_153732/jobs \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: POST http://localhost:8321/v1/eval/benchmarks/ragas_demo_benchmark_20250925_192553/jobs \"HTTP/1.1 200 OK\"\n" ] }, { "data": { "text/html": [ "
Job(\n", - "│ job_id='0',\n", + "│ job_id='1',\n", "│ status='in_progress',\n", "│ result=None,\n", "│ eval_config={\n", - "│ │ 'model': 'granite3.3:2b',\n", - "│ │ 'sampling_params': {'temperature': 0.1, 'max_tokens': 100},\n", "│ │ 'embedding_model': 'all-MiniLM-L6-v2',\n", - "│ │ 'metrics': ['answer_relevancy'],\n", "│ │ 'ragas_config': {\n", "│ │ │ 'batch_size': None,\n", "│ │ │ 'show_progress': True,\n", @@ -469,14 +520,11 @@ ], "text/plain": [ "\u001b[1;35mJob\u001b[0m\u001b[1m(\u001b[0m\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'0'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'1'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mstatus\u001b[0m=\u001b[32m'in_progress'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mresult\u001b[0m=\u001b[3;35mNone\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33meval_config\u001b[0m=\u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'granite3.3:2b'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'sampling_params'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'temperature'\u001b[0m: \u001b[1;36m0.1\u001b[0m, \u001b[32m'max_tokens'\u001b[0m: \u001b[1;36m100\u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'embedding_model'\u001b[0m: \u001b[32m'all-MiniLM-L6-v2'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'metrics'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ragas_config'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'batch_size'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'show_progress'\u001b[0m: \u001b[3;92mTrue\u001b[0m,\n", @@ -502,7 +550,7 @@ " \"eval_candidate\": {\n", " \"type\": \"model\",\n", " # \"model\": \"meta-llama/Llama-3.2-3B-Instruct\",\n", - " \"model\": \"granite3.3:2b\",\n", + " \"model\": \"ollama/granite3.3:2b\",\n", " \"sampling_params\": {\"temperature\": 0.1, \"max_tokens\": 100},\n", " },\n", " \"scoring_params\": {},\n", @@ -527,21 +575,18 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: GET http://localhost:8321/v1/eval/benchmarks/ragas_demo_benchmark_20250903_153732/jobs/0 \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: GET http://localhost:8321/v1/eval/benchmarks/ragas_demo_benchmark_20250925_192553/jobs/1 \"HTTP/1.1 200 OK\"\n" ] }, { "data": { "text/html": [ "Job(\n", - "│ job_id='0',\n", + "│ job_id='1',\n", "│ status='in_progress',\n", "│ result=None,\n", "│ eval_config={\n", - "│ │ 'model': 'granite3.3:2b',\n", - "│ │ 'sampling_params': {'temperature': 0.1, 'max_tokens': 100},\n", "│ │ 'embedding_model': 'all-MiniLM-L6-v2',\n", - "│ │ 'metrics': ['answer_relevancy'],\n", "│ │ 'ragas_config': {\n", "│ │ │ 'batch_size': None,\n", "│ │ │ 'show_progress': True,\n", @@ -555,14 +600,11 @@ ], "text/plain": [ "\u001b[1;35mJob\u001b[0m\u001b[1m(\u001b[0m\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'0'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'1'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mstatus\u001b[0m=\u001b[32m'in_progress'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mresult\u001b[0m=\u001b[3;35mNone\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33meval_config\u001b[0m=\u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'granite3.3:2b'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'sampling_params'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'temperature'\u001b[0m: \u001b[1;36m0.1\u001b[0m, \u001b[32m'max_tokens'\u001b[0m: \u001b[1;36m100\u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'embedding_model'\u001b[0m: \u001b[32m'all-MiniLM-L6-v2'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'metrics'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ragas_config'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'batch_size'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'show_progress'\u001b[0m: \u001b[3;92mTrue\u001b[0m,\n", @@ -585,21 +627,21 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: GET http://localhost:8321/v1/eval/benchmarks/ragas_demo_benchmark_20250903_153732/jobs/0 \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: GET http://localhost:8321/v1/eval/benchmarks/ragas_demo_benchmark_20250925_192553/jobs/1 \"HTTP/1.1 200 OK\"\n" ] }, { "data": { "text/html": [ "Job(\n", - "│ job_id='0',\n", + "│ job_id='1',\n", "│ status='completed',\n", "│ result={\n", "│ │ 'generations': [\n", @@ -638,10 +680,7 @@ "│ │ }\n", "│ },\n", "│ eval_config={\n", - "│ │ 'model': 'granite3.3:2b',\n", - "│ │ 'sampling_params': {'temperature': 0.1, 'max_tokens': 100},\n", "│ │ 'embedding_model': 'all-MiniLM-L6-v2',\n", - "│ │ 'metrics': ['answer_relevancy'],\n", "│ │ 'ragas_config': {\n", "│ │ │ 'batch_size': None,\n", "│ │ │ 'show_progress': True,\n", @@ -655,7 +694,7 @@ ], "text/plain": [ "\u001b[1;35mJob\u001b[0m\u001b[1m(\u001b[0m\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'0'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'1'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mstatus\u001b[0m=\u001b[32m'completed'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mresult\u001b[0m=\u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'generations'\u001b[0m: \u001b[1m[\u001b[0m\n", @@ -694,10 +733,7 @@ "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33meval_config\u001b[0m=\u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'granite3.3:2b'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'sampling_params'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'temperature'\u001b[0m: \u001b[1;36m0.1\u001b[0m, \u001b[32m'max_tokens'\u001b[0m: \u001b[1;36m100\u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'embedding_model'\u001b[0m: \u001b[32m'all-MiniLM-L6-v2'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'metrics'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ragas_config'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'batch_size'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'show_progress'\u001b[0m: \u001b[3;92mTrue\u001b[0m,\n", @@ -720,14 +756,14 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: GET http://localhost:8321/v1/eval/benchmarks/ragas_demo_benchmark_20250903_153732/jobs/0/result \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: GET http://localhost:8321/v1/eval/benchmarks/ragas_demo_benchmark_20250925_192553/jobs/1/result \"HTTP/1.1 200 OK\"\n" ] }, { @@ -836,7 +872,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.3" + "version": "3.12.11" } }, "nbformat": 4, diff --git a/demos/remote_demo.ipynb b/demos/remote_demo.ipynb index 141067de..b88d67cf 100644 --- a/demos/remote_demo.ipynb +++ b/demos/remote_demo.ipynb @@ -71,7 +71,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: GET https://af5761af120e.ngrok-free.app/v1/models \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: GET https://3e112b480059.ngrok-free.app/v1/models \"HTTP/1.1 200 OK\"\n" ] } ], @@ -143,7 +143,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: POST https://af5761af120e.ngrok-free.app/v1/datasets \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: POST https://3e112b480059.ngrok-free.app/v1/datasets \"HTTP/1.1 200 OK\"\n" ] }, { @@ -156,7 +156,7 @@ "│ │ 'description': 'Sample RAG evaluation dataset for Ragas demo',\n", "│ │ 'size': 3.0,\n", "│ │ 'format': 'ragas',\n", - "│ │ 'created_at': '2025-09-08T16:30:57.540198'\n", + "│ │ 'created_at': '2025-09-25T19:26:49.309288'\n", "│ },\n", "│ provider_id='localfs',\n", "│ purpose='eval/question-answer',\n", @@ -189,7 +189,7 @@ "│ ),\n", "│ type='dataset',\n", "│ provider_resource_id='ragas_demo_dataset_remote',\n", - "│ owner={'principal': '', 'attributes': {}}\n", + "│ owner=None\n", ")\n", "\n" ], @@ -201,7 +201,7 @@ "\u001b[2;32m│ │ \u001b[0m\u001b[32m'description'\u001b[0m: \u001b[32m'Sample RAG evaluation dataset for Ragas demo'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'size'\u001b[0m: \u001b[1;36m3.0\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'format'\u001b[0m: \u001b[32m'ragas'\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[32m'2025-09-08T16:30:57.540198'\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[32m'2025-09-25T19:26:49.309288'\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'localfs'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mpurpose\u001b[0m=\u001b[32m'eval/question-answer'\u001b[0m,\n", @@ -234,7 +234,7 @@ "\u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'dataset'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'ragas_demo_dataset_remote'\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mowner\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'principal'\u001b[0m: \u001b[32m''\u001b[0m, \u001b[32m'attributes'\u001b[0m: \u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\u001b[1m}\u001b[0m\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mowner\u001b[0m=\u001b[3;35mNone\u001b[0m\n", "\u001b[1m)\u001b[0m\n" ] }, @@ -279,7 +279,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: POST https://af5761af120e.ngrok-free.app/v1/eval/benchmarks \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: POST https://3e112b480059.ngrok-free.app/v1/eval/benchmarks \"HTTP/1.1 200 OK\"\n" ] }, { @@ -309,7 +309,7 @@ " # \"context_recall\", # How much of the ground truth is covered by contexts?\n", " # \"answer_correctness\" # How correct is the answer compared to ground truth?\n", " ],\n", - " provider_id=\"trustyai_ragas_remote\",\n", + " provider_id=\"trustyai_ragas\",\n", " # metadata={\n", " # \"provider\": \"ragas\",\n", " # \"version\": \"1.0\",\n", @@ -330,7 +330,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: GET https://af5761af120e.ngrok-free.app/v1/eval/benchmarks \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: GET https://3e112b480059.ngrok-free.app/v1/eval/benchmarks \"HTTP/1.1 200 OK\"\n" ] }, { @@ -341,7 +341,7 @@ "│ │ dataset_id='ragas_demo_dataset_remote',\n", "│ │ identifier='ragas_demo_benchmark_remote',\n", "│ │ metadata={},\n", - "│ │ provider_id='trustyai_ragas_remote',\n", + "│ │ provider_id='trustyai_ragas',\n", "│ │ scoring_functions=['answer_relevancy'],\n", "│ │ type='benchmark',\n", "│ │ provider_resource_id='ragas_demo_benchmark_remote'\n", @@ -355,7 +355,7 @@ "\u001b[2;32m│ │ \u001b[0m\u001b[33mdataset_id\u001b[0m=\u001b[32m'ragas_demo_dataset_remote'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33midentifier\u001b[0m=\u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mmetadata\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m,\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'trustyai_ragas_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_id\u001b[0m=\u001b[32m'trustyai_ragas'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mscoring_functions\u001b[0m=\u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'benchmark'\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[33mprovider_resource_id\u001b[0m=\u001b[32m'ragas_demo_benchmark_remote'\u001b[0m\n", @@ -390,29 +390,20 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: POST https://af5761af120e.ngrok-free.app/v1/eval/benchmarks/ragas_demo_benchmark_remote/jobs \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: POST https://3e112b480059.ngrok-free.app/v1/eval/benchmarks/ragas_demo_benchmark_remote/jobs \"HTTP/1.1 200 OK\"\n" ] }, { "data": { "text/html": [ "Job(\n", - "│ job_id='1ef4027c-3529-4023-9c60-bde1ed43af54',\n", + "│ job_id='afc31c92-5887-4b84-933c-009e8ae0594e',\n", "│ status='in_progress',\n", "│ runtime_config={\n", - "│ │ 'benchmark': {\n", - "│ │ │ 'identifier': 'ragas_demo_benchmark_remote',\n", - "│ │ │ 'provider_resource_id': 'ragas_demo_benchmark_remote',\n", - "│ │ │ 'provider_id': 'trustyai_ragas_remote',\n", - "│ │ │ 'type': 'benchmark',\n", - "│ │ │ 'dataset_id': 'ragas_demo_dataset_remote',\n", - "│ │ │ 'scoring_functions': ['answer_relevancy'],\n", - "│ │ │ 'metadata': {}\n", - "│ │ },\n", "│ │ 'benchmark_config': {\n", "│ │ │ 'eval_candidate': {\n", "│ │ │ │ 'type': 'model',\n", - "│ │ │ │ 'model': 'granite3.3:2b',\n", + "│ │ │ │ 'model': 'ollama/granite3.3:2b',\n", "│ │ │ │ 'sampling_params': {\n", "│ │ │ │ │ 'strategy': {'type': 'greedy'},\n", "│ │ │ │ │ 'max_tokens': 100,\n", @@ -425,6 +416,15 @@ "│ │ │ 'num_examples': None\n", "│ │ },\n", "│ │ 'embedding_model': 'all-MiniLM-L6-v2',\n", + "│ │ 'benchmark': {\n", + "│ │ │ 'identifier': 'ragas_demo_benchmark_remote',\n", + "│ │ │ 'provider_resource_id': 'ragas_demo_benchmark_remote',\n", + "│ │ │ 'provider_id': 'trustyai_ragas',\n", + "│ │ │ 'type': 'benchmark',\n", + "│ │ │ 'dataset_id': 'ragas_demo_dataset_remote',\n", + "│ │ │ 'scoring_functions': ['answer_relevancy'],\n", + "│ │ │ 'metadata': {}\n", + "│ │ },\n", "│ │ 'ragas_config': {\n", "│ │ │ 'batch_size': None,\n", "│ │ │ 'show_progress': True,\n", @@ -433,37 +433,28 @@ "│ │ │ 'column_map': None\n", "│ │ },\n", "│ │ 'kubeflow_config': {\n", - "│ │ │ 'results_s3_prefix': 's3://public-rhods/ragas-evaluation-pipeline',\n", + "│ │ │ 'results_s3_prefix': 's3://public-rhods/ragas-evaluation-pipeline/test-two',\n", "│ │ │ 's3_credentials_secret_name': 'aws-credentials',\n", "│ │ │ 'pipelines_endpoint': 'https://ds-pipeline-dspa-ragas-eval-v3.apps.rosa.diego-ragas.zch5.p3.openshiftapps.com',\n", "│ │ │ 'namespace': 'ragas-eval-v3',\n", - "│ │ │ 'llama_stack_url': 'https://af5761af120e.ngrok-free.app',\n", + "│ │ │ 'llama_stack_url': 'https://3e112b480059.ngrok-free.app',\n", "│ │ │ 'base_image': 'quay.io/diegosquayorg/my-ragas-provider-image:latest'\n", "│ │ }\n", "│ },\n", - "│ kubeflow_run_id='b423afbc-3696-4ede-80b9-925655e568f4',\n", + "│ kubeflow_run_id='738a0fcf-8780-4a9d-b661-0874de18b96c',\n", "│ result=None\n", ")\n", "\n" ], "text/plain": [ "\u001b[1;35mJob\u001b[0m\u001b[1m(\u001b[0m\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'1ef4027c-3529-4023-9c60-bde1ed43af54'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'afc31c92-5887-4b84-933c-009e8ae0594e'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mstatus\u001b[0m=\u001b[32m'in_progress'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mruntime_config\u001b[0m=\u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'benchmark'\u001b[0m: \u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'identifier'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_resource_id'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_id'\u001b[0m: \u001b[32m'trustyai_ragas_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'benchmark'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'dataset_id'\u001b[0m: \u001b[32m'ragas_demo_dataset_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'scoring_functions'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'metadata'\u001b[0m: \u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'benchmark_config'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'eval_candidate'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'model'\u001b[0m,\n", - "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'granite3.3:2b'\u001b[0m,\n", + "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'ollama/granite3.3:2b'\u001b[0m,\n", "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'sampling_params'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[32m'strategy'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'greedy'\u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[32m'max_tokens'\u001b[0m: \u001b[1;36m100\u001b[0m,\n", @@ -476,6 +467,15 @@ "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'num_examples'\u001b[0m: \u001b[3;35mNone\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'embedding_model'\u001b[0m: \u001b[32m'all-MiniLM-L6-v2'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'benchmark'\u001b[0m: \u001b[1m{\u001b[0m\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'identifier'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_resource_id'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_id'\u001b[0m: \u001b[32m'trustyai_ragas'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'benchmark'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'dataset_id'\u001b[0m: \u001b[32m'ragas_demo_dataset_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'scoring_functions'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'metadata'\u001b[0m: \u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ragas_config'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'batch_size'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'show_progress'\u001b[0m: \u001b[3;92mTrue\u001b[0m,\n", @@ -484,15 +484,15 @@ "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'column_map'\u001b[0m: \u001b[3;35mNone\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'kubeflow_config'\u001b[0m: \u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'results_s3_prefix'\u001b[0m: \u001b[32m's3://public-rhods/ragas-evaluation-pipeline'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'results_s3_prefix'\u001b[0m: \u001b[32m's3://public-rhods/ragas-evaluation-pipeline/test-two'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m's3_credentials_secret_name'\u001b[0m: \u001b[32m'aws-credentials'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'pipelines_endpoint'\u001b[0m: \u001b[32m'https://ds-pipeline-dspa-ragas-eval-v3.apps.rosa.diego-ragas.zch5.p3.openshiftapps.com'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'namespace'\u001b[0m: \u001b[32m'ragas-eval-v3'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'llama_stack_url'\u001b[0m: \u001b[32m'https://af5761af120e.ngrok-free.app'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'llama_stack_url'\u001b[0m: \u001b[32m'https://3e112b480059.ngrok-free.app'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'base_image'\u001b[0m: \u001b[32m'quay.io/diegosquayorg/my-ragas-provider-image:latest'\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mkubeflow_run_id\u001b[0m=\u001b[32m'b423afbc-3696-4ede-80b9-925655e568f4'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mkubeflow_run_id\u001b[0m=\u001b[32m'738a0fcf-8780-4a9d-b661-0874de18b96c'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mresult\u001b[0m=\u001b[3;35mNone\u001b[0m\n", "\u001b[1m)\u001b[0m\n" ] @@ -511,7 +511,7 @@ " benchmark_config={\n", " \"eval_candidate\": {\n", " \"type\": \"model\",\n", - " \"model\": \"granite3.3:2b\",\n", + " \"model\": \"ollama/granite3.3:2b\",\n", " \"sampling_params\": {\"temperature\": 0.1, \"max_tokens\": 100},\n", " },\n", " \"scoring_params\": {},\n", @@ -537,29 +537,20 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: GET https://af5761af120e.ngrok-free.app/v1/eval/benchmarks/ragas_demo_benchmark_remote/jobs/1ef4027c-3529-4023-9c60-bde1ed43af54 \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: GET https://3e112b480059.ngrok-free.app/v1/eval/benchmarks/ragas_demo_benchmark_remote/jobs/afc31c92-5887-4b84-933c-009e8ae0594e \"HTTP/1.1 200 OK\"\n" ] }, { "data": { "text/html": [ "Job(\n", - "│ job_id='1ef4027c-3529-4023-9c60-bde1ed43af54',\n", + "│ job_id='afc31c92-5887-4b84-933c-009e8ae0594e',\n", "│ status='in_progress',\n", "│ runtime_config={\n", - "│ │ 'benchmark': {\n", - "│ │ │ 'identifier': 'ragas_demo_benchmark_remote',\n", - "│ │ │ 'provider_resource_id': 'ragas_demo_benchmark_remote',\n", - "│ │ │ 'provider_id': 'trustyai_ragas_remote',\n", - "│ │ │ 'type': 'benchmark',\n", - "│ │ │ 'dataset_id': 'ragas_demo_dataset_remote',\n", - "│ │ │ 'scoring_functions': ['answer_relevancy'],\n", - "│ │ │ 'metadata': {}\n", - "│ │ },\n", "│ │ 'benchmark_config': {\n", "│ │ │ 'eval_candidate': {\n", "│ │ │ │ 'type': 'model',\n", - "│ │ │ │ 'model': 'granite3.3:2b',\n", + "│ │ │ │ 'model': 'ollama/granite3.3:2b',\n", "│ │ │ │ 'sampling_params': {\n", "│ │ │ │ │ 'strategy': {'type': 'greedy'},\n", "│ │ │ │ │ 'max_tokens': 100,\n", @@ -572,6 +563,15 @@ "│ │ │ 'num_examples': None\n", "│ │ },\n", "│ │ 'embedding_model': 'all-MiniLM-L6-v2',\n", + "│ │ 'benchmark': {\n", + "│ │ │ 'identifier': 'ragas_demo_benchmark_remote',\n", + "│ │ │ 'provider_resource_id': 'ragas_demo_benchmark_remote',\n", + "│ │ │ 'provider_id': 'trustyai_ragas',\n", + "│ │ │ 'type': 'benchmark',\n", + "│ │ │ 'dataset_id': 'ragas_demo_dataset_remote',\n", + "│ │ │ 'scoring_functions': ['answer_relevancy'],\n", + "│ │ │ 'metadata': {}\n", + "│ │ },\n", "│ │ 'ragas_config': {\n", "│ │ │ 'batch_size': None,\n", "│ │ │ 'show_progress': True,\n", @@ -580,37 +580,28 @@ "│ │ │ 'column_map': None\n", "│ │ },\n", "│ │ 'kubeflow_config': {\n", - "│ │ │ 'results_s3_prefix': 's3://public-rhods/ragas-evaluation-pipeline',\n", + "│ │ │ 'results_s3_prefix': 's3://public-rhods/ragas-evaluation-pipeline/test-two',\n", "│ │ │ 's3_credentials_secret_name': 'aws-credentials',\n", "│ │ │ 'pipelines_endpoint': 'https://ds-pipeline-dspa-ragas-eval-v3.apps.rosa.diego-ragas.zch5.p3.openshiftapps.com',\n", "│ │ │ 'namespace': 'ragas-eval-v3',\n", - "│ │ │ 'llama_stack_url': 'https://af5761af120e.ngrok-free.app',\n", + "│ │ │ 'llama_stack_url': 'https://3e112b480059.ngrok-free.app',\n", "│ │ │ 'base_image': 'quay.io/diegosquayorg/my-ragas-provider-image:latest'\n", "│ │ }\n", "│ },\n", - "│ kubeflow_run_id='b423afbc-3696-4ede-80b9-925655e568f4',\n", + "│ kubeflow_run_id='738a0fcf-8780-4a9d-b661-0874de18b96c',\n", "│ result=None\n", ")\n", "\n" ], "text/plain": [ "\u001b[1;35mJob\u001b[0m\u001b[1m(\u001b[0m\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'1ef4027c-3529-4023-9c60-bde1ed43af54'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'afc31c92-5887-4b84-933c-009e8ae0594e'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mstatus\u001b[0m=\u001b[32m'in_progress'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mruntime_config\u001b[0m=\u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'benchmark'\u001b[0m: \u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'identifier'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_resource_id'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_id'\u001b[0m: \u001b[32m'trustyai_ragas_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'benchmark'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'dataset_id'\u001b[0m: \u001b[32m'ragas_demo_dataset_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'scoring_functions'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'metadata'\u001b[0m: \u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'benchmark_config'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'eval_candidate'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'model'\u001b[0m,\n", - "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'granite3.3:2b'\u001b[0m,\n", + "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'ollama/granite3.3:2b'\u001b[0m,\n", "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'sampling_params'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[32m'strategy'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'greedy'\u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[32m'max_tokens'\u001b[0m: \u001b[1;36m100\u001b[0m,\n", @@ -623,6 +614,15 @@ "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'num_examples'\u001b[0m: \u001b[3;35mNone\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'embedding_model'\u001b[0m: \u001b[32m'all-MiniLM-L6-v2'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'benchmark'\u001b[0m: \u001b[1m{\u001b[0m\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'identifier'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_resource_id'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_id'\u001b[0m: \u001b[32m'trustyai_ragas'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'benchmark'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'dataset_id'\u001b[0m: \u001b[32m'ragas_demo_dataset_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'scoring_functions'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'metadata'\u001b[0m: \u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ragas_config'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'batch_size'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'show_progress'\u001b[0m: \u001b[3;92mTrue\u001b[0m,\n", @@ -631,15 +631,15 @@ "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'column_map'\u001b[0m: \u001b[3;35mNone\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'kubeflow_config'\u001b[0m: \u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'results_s3_prefix'\u001b[0m: \u001b[32m's3://public-rhods/ragas-evaluation-pipeline'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'results_s3_prefix'\u001b[0m: \u001b[32m's3://public-rhods/ragas-evaluation-pipeline/test-two'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m's3_credentials_secret_name'\u001b[0m: \u001b[32m'aws-credentials'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'pipelines_endpoint'\u001b[0m: \u001b[32m'https://ds-pipeline-dspa-ragas-eval-v3.apps.rosa.diego-ragas.zch5.p3.openshiftapps.com'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'namespace'\u001b[0m: \u001b[32m'ragas-eval-v3'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'llama_stack_url'\u001b[0m: \u001b[32m'https://af5761af120e.ngrok-free.app'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'llama_stack_url'\u001b[0m: \u001b[32m'https://3e112b480059.ngrok-free.app'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'base_image'\u001b[0m: \u001b[32m'quay.io/diegosquayorg/my-ragas-provider-image:latest'\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mkubeflow_run_id\u001b[0m=\u001b[32m'b423afbc-3696-4ede-80b9-925655e568f4'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mkubeflow_run_id\u001b[0m=\u001b[32m'738a0fcf-8780-4a9d-b661-0874de18b96c'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mresult\u001b[0m=\u001b[3;35mNone\u001b[0m\n", "\u001b[1m)\u001b[0m\n" ] @@ -662,29 +662,20 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: GET https://af5761af120e.ngrok-free.app/v1/eval/benchmarks/ragas_demo_benchmark_remote/jobs/1ef4027c-3529-4023-9c60-bde1ed43af54 \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: GET https://3e112b480059.ngrok-free.app/v1/eval/benchmarks/ragas_demo_benchmark_remote/jobs/afc31c92-5887-4b84-933c-009e8ae0594e \"HTTP/1.1 200 OK\"\n" ] }, { "data": { "text/html": [ "Job(\n", - "│ job_id='1ef4027c-3529-4023-9c60-bde1ed43af54',\n", + "│ job_id='afc31c92-5887-4b84-933c-009e8ae0594e',\n", "│ status='completed',\n", "│ runtime_config={\n", - "│ │ 'benchmark': {\n", - "│ │ │ 'identifier': 'ragas_demo_benchmark_remote',\n", - "│ │ │ 'provider_resource_id': 'ragas_demo_benchmark_remote',\n", - "│ │ │ 'provider_id': 'trustyai_ragas_remote',\n", - "│ │ │ 'type': 'benchmark',\n", - "│ │ │ 'dataset_id': 'ragas_demo_dataset_remote',\n", - "│ │ │ 'scoring_functions': ['answer_relevancy'],\n", - "│ │ │ 'metadata': {}\n", - "│ │ },\n", "│ │ 'benchmark_config': {\n", "│ │ │ 'eval_candidate': {\n", "│ │ │ │ 'type': 'model',\n", - "│ │ │ │ 'model': 'granite3.3:2b',\n", + "│ │ │ │ 'model': 'ollama/granite3.3:2b',\n", "│ │ │ │ 'sampling_params': {\n", "│ │ │ │ │ 'strategy': {'type': 'greedy'},\n", "│ │ │ │ │ 'max_tokens': 100,\n", @@ -697,6 +688,15 @@ "│ │ │ 'num_examples': None\n", "│ │ },\n", "│ │ 'embedding_model': 'all-MiniLM-L6-v2',\n", + "│ │ 'benchmark': {\n", + "│ │ │ 'identifier': 'ragas_demo_benchmark_remote',\n", + "│ │ │ 'provider_resource_id': 'ragas_demo_benchmark_remote',\n", + "│ │ │ 'provider_id': 'trustyai_ragas',\n", + "│ │ │ 'type': 'benchmark',\n", + "│ │ │ 'dataset_id': 'ragas_demo_dataset_remote',\n", + "│ │ │ 'scoring_functions': ['answer_relevancy'],\n", + "│ │ │ 'metadata': {}\n", + "│ │ },\n", "│ │ 'ragas_config': {\n", "│ │ │ 'batch_size': None,\n", "│ │ │ 'show_progress': True,\n", @@ -705,15 +705,15 @@ "│ │ │ 'column_map': None\n", "│ │ },\n", "│ │ 'kubeflow_config': {\n", - "│ │ │ 'results_s3_prefix': 's3://public-rhods/ragas-evaluation-pipeline',\n", + "│ │ │ 'results_s3_prefix': 's3://public-rhods/ragas-evaluation-pipeline/test-two',\n", "│ │ │ 's3_credentials_secret_name': 'aws-credentials',\n", "│ │ │ 'pipelines_endpoint': 'https://ds-pipeline-dspa-ragas-eval-v3.apps.rosa.diego-ragas.zch5.p3.openshiftapps.com',\n", "│ │ │ 'namespace': 'ragas-eval-v3',\n", - "│ │ │ 'llama_stack_url': 'https://af5761af120e.ngrok-free.app',\n", + "│ │ │ 'llama_stack_url': 'https://3e112b480059.ngrok-free.app',\n", "│ │ │ 'base_image': 'quay.io/diegosquayorg/my-ragas-provider-image:latest'\n", "│ │ }\n", "│ },\n", - "│ kubeflow_run_id='b423afbc-3696-4ede-80b9-925655e568f4',\n", + "│ kubeflow_run_id='738a0fcf-8780-4a9d-b661-0874de18b96c',\n", "│ result={\n", "│ │ 'generations': [\n", "│ │ │ {\n", @@ -760,22 +760,13 @@ ], "text/plain": [ "\u001b[1;35mJob\u001b[0m\u001b[1m(\u001b[0m\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'1ef4027c-3529-4023-9c60-bde1ed43af54'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mjob_id\u001b[0m=\u001b[32m'afc31c92-5887-4b84-933c-009e8ae0594e'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mstatus\u001b[0m=\u001b[32m'completed'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mruntime_config\u001b[0m=\u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[32m'benchmark'\u001b[0m: \u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'identifier'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_resource_id'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_id'\u001b[0m: \u001b[32m'trustyai_ragas_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'benchmark'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'dataset_id'\u001b[0m: \u001b[32m'ragas_demo_dataset_remote'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'scoring_functions'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'metadata'\u001b[0m: \u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", - "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'benchmark_config'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'eval_candidate'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'model'\u001b[0m,\n", - "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'granite3.3:2b'\u001b[0m,\n", + "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'ollama/granite3.3:2b'\u001b[0m,\n", "\u001b[2;32m│ │ │ │ \u001b[0m\u001b[32m'sampling_params'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[32m'strategy'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'greedy'\u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[32m'max_tokens'\u001b[0m: \u001b[1;36m100\u001b[0m,\n", @@ -788,6 +779,15 @@ "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'num_examples'\u001b[0m: \u001b[3;35mNone\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'embedding_model'\u001b[0m: \u001b[32m'all-MiniLM-L6-v2'\u001b[0m,\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[32m'benchmark'\u001b[0m: \u001b[1m{\u001b[0m\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'identifier'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_resource_id'\u001b[0m: \u001b[32m'ragas_demo_benchmark_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'provider_id'\u001b[0m: \u001b[32m'trustyai_ragas'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'benchmark'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'dataset_id'\u001b[0m: \u001b[32m'ragas_demo_dataset_remote'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'scoring_functions'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'answer_relevancy'\u001b[0m\u001b[1m]\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'metadata'\u001b[0m: \u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", + "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'ragas_config'\u001b[0m: \u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'batch_size'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'show_progress'\u001b[0m: \u001b[3;92mTrue\u001b[0m,\n", @@ -796,15 +796,15 @@ "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'column_map'\u001b[0m: \u001b[3;35mNone\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m,\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'kubeflow_config'\u001b[0m: \u001b[1m{\u001b[0m\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'results_s3_prefix'\u001b[0m: \u001b[32m's3://public-rhods/ragas-evaluation-pipeline'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'results_s3_prefix'\u001b[0m: \u001b[32m's3://public-rhods/ragas-evaluation-pipeline/test-two'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m's3_credentials_secret_name'\u001b[0m: \u001b[32m'aws-credentials'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'pipelines_endpoint'\u001b[0m: \u001b[32m'https://ds-pipeline-dspa-ragas-eval-v3.apps.rosa.diego-ragas.zch5.p3.openshiftapps.com'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'namespace'\u001b[0m: \u001b[32m'ragas-eval-v3'\u001b[0m,\n", - "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'llama_stack_url'\u001b[0m: \u001b[32m'https://af5761af120e.ngrok-free.app'\u001b[0m,\n", + "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'llama_stack_url'\u001b[0m: \u001b[32m'https://3e112b480059.ngrok-free.app'\u001b[0m,\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[32m'base_image'\u001b[0m: \u001b[32m'quay.io/diegosquayorg/my-ragas-provider-image:latest'\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[1m}\u001b[0m\n", "\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n", - "\u001b[2;32m│ \u001b[0m\u001b[33mkubeflow_run_id\u001b[0m=\u001b[32m'b423afbc-3696-4ede-80b9-925655e568f4'\u001b[0m,\n", + "\u001b[2;32m│ \u001b[0m\u001b[33mkubeflow_run_id\u001b[0m=\u001b[32m'738a0fcf-8780-4a9d-b661-0874de18b96c'\u001b[0m,\n", "\u001b[2;32m│ \u001b[0m\u001b[33mresult\u001b[0m=\u001b[1m{\u001b[0m\n", "\u001b[2;32m│ │ \u001b[0m\u001b[32m'generations'\u001b[0m: \u001b[1m[\u001b[0m\n", "\u001b[2;32m│ │ │ \u001b[0m\u001b[1m{\u001b[0m\n", @@ -867,7 +867,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: GET https://af5761af120e.ngrok-free.app/v1/eval/benchmarks/ragas_demo_benchmark_remote/jobs/1ef4027c-3529-4023-9c60-bde1ed43af54/result \"HTTP/1.1 200 OK\"\n" + "INFO:httpx:HTTP Request: GET https://3e112b480059.ngrok-free.app/v1/eval/benchmarks/ragas_demo_benchmark_remote/jobs/afc31c92-5887-4b84-933c-009e8ae0594e/result \"HTTP/1.1 200 OK\"\n" ] }, { diff --git a/distribution/run-inline.yaml b/distribution/run-inline.yaml index 1a31d127..7a40e2de 100644 --- a/distribution/run-inline.yaml +++ b/distribution/run-inline.yaml @@ -5,10 +5,13 @@ apis: - inference - telemetry - datasetio + - files + - benchmarks providers: eval: - - provider_id: trustyai_ragas_inline + - provider_id: trustyai_ragas provider_type: inline::trustyai_ragas + module: llama_stack_provider_ragas.inline config: embedding_model: ${env.EMBEDDING_MODEL} datasetio: @@ -18,19 +21,29 @@ providers: kvstore: type: sqlite namespace: null - db_path: ${env.SQLITE_STORE_DIR:~/.llama/distributions/trustyai_ragas_distro}/localfs_datasetio.db + db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/trustyai_ragas_distro_inline}/localfs_datasetio.db inference: - provider_id: ollama provider_type: remote::ollama config: - url: ${env.OLLAMA_URL:http://localhost:11434} + url: ${env.OLLAMA_URL:=http://localhost:11434} telemetry: - provider_id: meta-reference provider_type: inline::meta-reference config: - service_name: ${env.OTEL_SERVICE_NAME:} - sinks: ${env.TELEMETRY_SINKS:console,sqlite} - sqlite_db_path: ${env.SQLITE_STORE_DIR:~/.llama/distributions/trustyai_ragas_distro}/trace_store.db + service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" + sinks: ${env.TELEMETRY_SINKS:=console,sqlite} + sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/trustyai_ragas_distro_inline}/trace_store.db + otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} + files: + - provider_id: meta-reference-files + provider_type: inline::localfs + config: + storage_dir: ${env.FILES_STORAGE_DIR:=~/.llama/distributions/trustyai_ragas_distro_inline/files} + metadata_store: + type: sqlite + db_path: ${env.METADATA_STORE_DB_PATH:=~/.llama/distributions/trustyai_ragas_distro_inline}/registry.db} + models: - metadata: embedding_dimension: 384 @@ -46,4 +59,3 @@ models: server: host: localhost port: 8321 -external_providers_dir: ./providers.d diff --git a/distribution/run-remote.yaml b/distribution/run-remote.yaml index a66c779f..bbdaaaa3 100644 --- a/distribution/run-remote.yaml +++ b/distribution/run-remote.yaml @@ -3,12 +3,15 @@ image_name: trustyai_ragas_distro_remote apis: - eval - inference + - files + - benchmarks - telemetry - datasetio providers: eval: - - provider_id: trustyai_ragas_remote + - provider_id: trustyai_ragas provider_type: remote::trustyai_ragas + module: llama_stack_provider_ragas config: embedding_model: ${env.EMBEDDING_MODEL} kubeflow_config: @@ -25,19 +28,28 @@ providers: kvstore: type: sqlite namespace: null - db_path: ${env.SQLITE_STORE_DIR:~/.llama/distributions/trustyai_ragas_distro}/localfs_datasetio.db + db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/trustyai_ragas_distro_remote}/localfs_datasetio.db inference: - provider_id: ollama provider_type: remote::ollama config: - url: ${env.OLLAMA_URL:http://localhost:11434} + url: ${env.OLLAMA_URL:=http://localhost:11434} telemetry: - provider_id: meta-reference provider_type: inline::meta-reference config: - service_name: ${env.OTEL_SERVICE_NAME:} - sinks: ${env.TELEMETRY_SINKS:console,sqlite} - sqlite_db_path: ${env.SQLITE_STORE_DIR:~/.llama/distributions/trustyai_ragas_distro}/trace_store.db + service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" + sinks: ${env.TELEMETRY_SINKS:=console,sqlite} + sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/trustyai_ragas_distro_remote}/trace_store.db + otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} + files: + - provider_id: meta-reference-files + provider_type: inline::localfs + config: + storage_dir: ${env.FILES_STORAGE_DIR:=~/.llama/distributions/trustyai_ragas_distro_remote/files} + metadata_store: + type: sqlite + db_path: ${env.METADATA_STORE_DB_PATH:=~/.llama/distributions/trustyai_ragas_distro_remote}/registry.db} models: - metadata: embedding_dimension: 384 @@ -53,4 +65,3 @@ models: server: host: localhost port: 8321 -external_providers_dir: ./providers.d diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 8fc24f56..e09082c1 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -13,8 +13,8 @@ The goal is to provide all of Ragas' evaluation functionality over Llama Stack's There are two versions of the provider: +* `remote`: runs the Ragas evaluation in a remote process, using Kubeflow Pipelines. This is the *default* when using the module-based import. * `inline`: runs the Ragas evaluation in the same process as the Llama Stack server. -* `remote`: runs the Ragas evaluation in a remote process, using Kubeflow Pipelines. == Getting Started diff --git a/docs/modules/ROOT/pages/inline/configuration.adoc b/docs/modules/ROOT/pages/inline/configuration.adoc index 05a5cc2b..818e07ac 100644 --- a/docs/modules/ROOT/pages/inline/configuration.adoc +++ b/docs/modules/ROOT/pages/inline/configuration.adoc @@ -23,8 +23,9 @@ The inline provider is setup in the following lines of the `run-inline.yaml`: [,yaml] ---- eval: - - provider_id: trustyai_ragas_inline + - provider_id: trustyai_ragas provider_type: inline::trustyai_ragas + module: llama_stack_provider_ragas.inline config: embedding_model: ${env.EMBEDDING_MODEL} ---- diff --git a/docs/modules/ROOT/pages/remote/configuration.adoc b/docs/modules/ROOT/pages/remote/configuration.adoc index 054e4266..497bdcde 100644 --- a/docs/modules/ROOT/pages/remote/configuration.adoc +++ b/docs/modules/ROOT/pages/remote/configuration.adoc @@ -54,8 +54,9 @@ The remote provider is setup in the following lines of the `run-remote.yaml`: [,yaml] ---- eval: - - provider_id: trustyai_ragas_remote + - provider_id: trustyai_ragas provider_type: remote::trustyai_ragas + module: llama_stack_provider_ragas.remote config: embedding_model: ${env.EMBEDDING_MODEL} kubeflow_config: diff --git a/providers.d/inline/eval/trustyai_ragas.yaml b/providers.d/inline/eval/trustyai_ragas.yaml deleted file mode 100644 index b689d0c8..00000000 --- a/providers.d/inline/eval/trustyai_ragas.yaml +++ /dev/null @@ -1,5 +0,0 @@ -module: llama_stack_provider_ragas -config_class: llama_stack_provider_ragas.config.RagasProviderInlineConfig -pip_packages: ["ragas"] #, ["datasets", "langchain-core"] # TODO: i think i need to add these -api_dependencies: ["inference", "datasetio"] -optional_api_dependencies: [] diff --git a/providers.d/remote/eval/trustyai_ragas.yaml b/providers.d/remote/eval/trustyai_ragas.yaml deleted file mode 100644 index ae87f74d..00000000 --- a/providers.d/remote/eval/trustyai_ragas.yaml +++ /dev/null @@ -1,7 +0,0 @@ -adapter: - adapter_type: trustyai_ragas - pip_packages: ["ragas==0.3.0", "kfp>=2.5.0"] - config_class: llama_stack_provider_ragas.config.RagasProviderRemoteConfig - module: llama_stack_provider_ragas -api_dependencies: ["inference", "datasetio"] -optional_api_dependencies: [] diff --git a/pyproject.toml b/pyproject.toml index f9203cae..6b9170db 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "llama-stack-provider-ragas" -version = "0.1.1" +version = "0.2.3" description = "Ragas evaluation as an out-of-tree Llama Stack provider" readme = "README.md" requires-python = ">=3.12" @@ -25,7 +25,8 @@ authors = [ keywords = ["llama-stack", "ragas", "evaluation"] dependencies = [ "setuptools-scm", - "llama-stack==0.2.11", + "llama-stack==0.2.22", + "greenlet==3.2.4", # inline/files/localfs errors saying greenlet not found "ragas==0.3.0", "pandas==2.3.0", "pyarrow==20.0.0", diff --git a/src/llama_stack_provider_ragas/__init__.py b/src/llama_stack_provider_ragas/__init__.py index 62619533..e69de29b 100644 --- a/src/llama_stack_provider_ragas/__init__.py +++ b/src/llama_stack_provider_ragas/__init__.py @@ -1,27 +0,0 @@ -from typing import Any - -from llama_stack.distribution.datatypes import Api - -from .config import RagasProviderInlineConfig, RagasProviderRemoteConfig -from .eval_inline import RagasEvaluatorInline -from .eval_remote import RagasEvaluatorRemote - - -async def get_adapter_impl( - config: RagasProviderRemoteConfig, - deps: dict[Api, Any], -) -> RagasEvaluatorRemote: - return RagasEvaluatorRemote(config) - - -async def get_provider_impl( - config: RagasProviderInlineConfig, - deps: dict[Api, Any], -) -> RagasEvaluatorInline: - return RagasEvaluatorInline(config, deps[Api.datasetio], deps[Api.inference]) - - -__all__ = [ - "get_adapter_impl", - "get_provider_impl", -] diff --git a/src/llama_stack_provider_ragas/inline/__init__.py b/src/llama_stack_provider_ragas/inline/__init__.py new file mode 100644 index 00000000..778a3f1c --- /dev/null +++ b/src/llama_stack_provider_ragas/inline/__init__.py @@ -0,0 +1,16 @@ +from typing import Any + +from llama_stack.apis.datatypes import Api + +from ..config import RagasProviderInlineConfig +from .ragas_inline_eval import RagasEvaluatorInline + + +async def get_provider_impl( + config: RagasProviderInlineConfig, + deps: dict[Api, Any], +) -> RagasEvaluatorInline: + return RagasEvaluatorInline(config, deps[Api.datasetio], deps[Api.inference]) + + +__all__ = ["RagasEvaluatorInline", "get_provider_impl"] diff --git a/src/llama_stack_provider_ragas/inline/provider.py b/src/llama_stack_provider_ragas/inline/provider.py new file mode 100644 index 00000000..c45f81ae --- /dev/null +++ b/src/llama_stack_provider_ragas/inline/provider.py @@ -0,0 +1,18 @@ +from llama_stack.providers.datatypes import Api, InlineProviderSpec, ProviderSpec + + +def get_provider_spec() -> ProviderSpec: + return InlineProviderSpec( + api=Api.eval, + provider_type="inline::trustyai_ragas", + pip_packages=["ragas==0.3.0"], + config_class="llama_stack_provider_ragas.config.RagasProviderInlineConfig", + module="llama_stack_provider_ragas.inline", + api_dependencies=[ + Api.inference, + Api.files, + Api.benchmarks, + Api.datasetio, + Api.telemetry, + ], + ) diff --git a/src/llama_stack_provider_ragas/eval_inline.py b/src/llama_stack_provider_ragas/inline/ragas_inline_eval.py similarity index 97% rename from src/llama_stack_provider_ragas/eval_inline.py rename to src/llama_stack_provider_ragas/inline/ragas_inline_eval.py index 9f988066..6f68c7a3 100644 --- a/src/llama_stack_provider_ragas/eval_inline.py +++ b/src/llama_stack_provider_ragas/inline/ragas_inline_eval.py @@ -22,10 +22,10 @@ ) from ragas.run_config import RunConfig -from .config import RagasProviderInlineConfig -from .constants import METRIC_MAPPING -from .errors import RagasEvaluationError -from .logging_utils import render_dataframe_as_table +from ..config import RagasProviderInlineConfig +from ..constants import METRIC_MAPPING +from ..errors import RagasEvaluationError +from ..logging_utils import render_dataframe_as_table from .wrappers_inline import LlamaStackInlineEmbeddings, LlamaStackInlineLLM logger = logging.getLogger(__name__) diff --git a/src/llama_stack_provider_ragas/wrappers_inline.py b/src/llama_stack_provider_ragas/inline/wrappers_inline.py similarity index 100% rename from src/llama_stack_provider_ragas/wrappers_inline.py rename to src/llama_stack_provider_ragas/inline/wrappers_inline.py diff --git a/src/llama_stack_provider_ragas/provider.py b/src/llama_stack_provider_ragas/provider.py index d09fd836..ad28301f 100644 --- a/src/llama_stack_provider_ragas/provider.py +++ b/src/llama_stack_provider_ragas/provider.py @@ -1,18 +1,5 @@ -from llama_stack.providers.datatypes import ( - AdapterSpec, - Api, - ProviderSpec, - remote_provider_spec, -) +# remote is the default provider +from .remote import get_adapter_impl +from .remote.provider import get_provider_spec - -def get_provider_spec() -> ProviderSpec: - return remote_provider_spec( - api=Api.eval, - adapter=AdapterSpec( - adapter_type="trustyai_ragas", - pip_packages=["ragas"], # ["datasets", "langchain-core"], - config_class="config.RagasEvalProviderConfig", - module="ragas_eval", - ), - ) +__all__ = ["get_provider_spec", "get_adapter_impl"] diff --git a/src/llama_stack_provider_ragas/remote/__init__.py b/src/llama_stack_provider_ragas/remote/__init__.py new file mode 100644 index 00000000..87c1e356 --- /dev/null +++ b/src/llama_stack_provider_ragas/remote/__init__.py @@ -0,0 +1,16 @@ +from typing import Any + +from llama_stack.apis.datatypes import Api + +from ..config import RagasProviderRemoteConfig +from .ragas_remote_eval import RagasEvaluatorRemote + + +async def get_adapter_impl( + config: RagasProviderRemoteConfig, + deps: dict[Api, Any], +) -> RagasEvaluatorRemote: + return RagasEvaluatorRemote(config) + + +__all__ = ["RagasEvaluatorRemote", "get_adapter_impl"] diff --git a/src/llama_stack_provider_ragas/kubeflow/__init__.py b/src/llama_stack_provider_ragas/remote/kubeflow/__init__.py similarity index 100% rename from src/llama_stack_provider_ragas/kubeflow/__init__.py rename to src/llama_stack_provider_ragas/remote/kubeflow/__init__.py diff --git a/src/llama_stack_provider_ragas/kubeflow/components.py b/src/llama_stack_provider_ragas/remote/kubeflow/components.py similarity index 97% rename from src/llama_stack_provider_ragas/kubeflow/components.py rename to src/llama_stack_provider_ragas/remote/kubeflow/components.py index 567474ec..db413224 100644 --- a/src/llama_stack_provider_ragas/kubeflow/components.py +++ b/src/llama_stack_provider_ragas/remote/kubeflow/components.py @@ -42,7 +42,7 @@ def run_ragas_evaluation( from llama_stack_provider_ragas.constants import METRIC_MAPPING from llama_stack_provider_ragas.logging_utils import render_dataframe_as_table - from llama_stack_provider_ragas.wrappers_remote import ( + from llama_stack_provider_ragas.remote.wrappers_remote import ( LlamaStackRemoteEmbeddings, LlamaStackRemoteLLM, ) diff --git a/src/llama_stack_provider_ragas/kubeflow/pipeline.py b/src/llama_stack_provider_ragas/remote/kubeflow/pipeline.py similarity index 100% rename from src/llama_stack_provider_ragas/kubeflow/pipeline.py rename to src/llama_stack_provider_ragas/remote/kubeflow/pipeline.py diff --git a/src/llama_stack_provider_ragas/remote/provider.py b/src/llama_stack_provider_ragas/remote/provider.py new file mode 100644 index 00000000..8432af5b --- /dev/null +++ b/src/llama_stack_provider_ragas/remote/provider.py @@ -0,0 +1,31 @@ +from llama_stack.providers.datatypes import ( + AdapterSpec, + Api, + ProviderSpec, + remote_provider_spec, +) + + +def get_provider_spec() -> ProviderSpec: + return remote_provider_spec( + api=Api.eval, + adapter=AdapterSpec( + adapter_type="trustyai_ragas", + module="llama_stack_provider_ragas.remote", + pip_packages=[ + "ragas==0.3.0", + "kfp>=2.5.0", + "kfp-kubernetes>=2.0.0", + "s3fs>=2024.12.0", + "kubernetes>=30.0.0", + ], + config_class="llama_stack_provider_ragas.config.RagasProviderRemoteConfig", + ), + api_dependencies=[ + Api.inference, + Api.files, + Api.benchmarks, + Api.datasetio, + Api.telemetry, + ], + ) diff --git a/src/llama_stack_provider_ragas/eval_remote.py b/src/llama_stack_provider_ragas/remote/ragas_remote_eval.py similarity index 97% rename from src/llama_stack_provider_ragas/eval_remote.py rename to src/llama_stack_provider_ragas/remote/ragas_remote_eval.py index 8e06c9b4..bd06d025 100644 --- a/src/llama_stack_provider_ragas/eval_remote.py +++ b/src/llama_stack_provider_ragas/remote/ragas_remote_eval.py @@ -12,14 +12,14 @@ from llama_stack.schema_utils import json_schema_type from pydantic import BaseModel -from llama_stack_provider_ragas.config import ( +from ..config import ( KubeflowConfig, RagasConfig, RagasProviderRemoteConfig, ) -from llama_stack_provider_ragas.constants import AVAILABLE_METRICS -from llama_stack_provider_ragas.errors import RagasEvaluationError -from llama_stack_provider_ragas.logging_utils import render_dataframe_as_table +from ..constants import AVAILABLE_METRICS +from ..errors import RagasEvaluationError +from ..logging_utils import render_dataframe_as_table logger = logging.getLogger(__name__) diff --git a/src/llama_stack_provider_ragas/wrappers_remote.py b/src/llama_stack_provider_ragas/remote/wrappers_remote.py similarity index 100% rename from src/llama_stack_provider_ragas/wrappers_remote.py rename to src/llama_stack_provider_ragas/remote/wrappers_remote.py diff --git a/tests/conftest.py b/tests/conftest.py index 3c7ece65..79326331 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -17,13 +17,13 @@ @pytest.fixture def lls_client(): return LlamaStackClient( - base_url=os.environ.get("LLAMA_STACK_URL", "http://localhost:8321") + base_url=os.environ.get("KUBEFLOW_LLAMA_STACK_URL", "http://localhost:8321") ) @pytest.fixture def model(): - return "granite3.3:2b" # TODO : read from env + return "ollama/granite3.3:2b" # TODO : read from env @pytest.fixture diff --git a/tests/test_inline_evaluation.py b/tests/test_inline_evaluation.py index 04030e15..f615f88b 100644 --- a/tests/test_inline_evaluation.py +++ b/tests/test_inline_evaluation.py @@ -41,7 +41,7 @@ def test_single_metric_evaluation( benchmark_id=benchmark_id, dataset_id=dataset_id, scoring_functions=[metric_to_test.name], - provider_id="trustyai_ragas_inline", + provider_id="trustyai_ragas", ) job = lls_client.eval.run_eval( diff --git a/tests/test_kubeflow_integration.py b/tests/test_kubeflow_integration.py index 5556c16c..15d15da3 100644 --- a/tests/test_kubeflow_integration.py +++ b/tests/test_kubeflow_integration.py @@ -9,7 +9,9 @@ from kfp import dsl from ragas.metrics import answer_relevancy -from llama_stack_provider_ragas.kubeflow.pipeline import ragas_evaluation_pipeline +from llama_stack_provider_ragas.remote.kubeflow.pipeline import ( + ragas_evaluation_pipeline, +) # Mark all tests as integration tests pytestmark = pytest.mark.integration_test @@ -70,7 +72,7 @@ def run_fake_ragas_evaluation( from llama_stack_provider_ragas.constants import METRIC_MAPPING from llama_stack_provider_ragas.logging_utils import render_dataframe_as_table - from llama_stack_provider_ragas.wrappers_remote import ( + from llama_stack_provider_ragas.remote.wrappers_remote import ( LlamaStackRemoteEmbeddings, LlamaStackRemoteLLM, ) diff --git a/tests/test_remote_evaluation.py b/tests/test_remote_evaluation.py index 941cac2e..68781392 100644 --- a/tests/test_remote_evaluation.py +++ b/tests/test_remote_evaluation.py @@ -9,7 +9,7 @@ from ragas.run_config import RunConfig from llama_stack_provider_ragas.logging_utils import render_dataframe_as_table -from llama_stack_provider_ragas.wrappers_remote import ( +from llama_stack_provider_ragas.remote.wrappers_remote import ( LlamaStackRemoteEmbeddings, LlamaStackRemoteLLM, ) diff --git a/tests/test_remote_wrappers.py b/tests/test_remote_wrappers.py index 4e1b5eef..965b9f00 100644 --- a/tests/test_remote_wrappers.py +++ b/tests/test_remote_wrappers.py @@ -1,7 +1,7 @@ import pytest from langchain_core.prompt_values import StringPromptValue -from llama_stack_provider_ragas.wrappers_remote import ( +from llama_stack_provider_ragas.remote.wrappers_remote import ( LlamaStackRemoteEmbeddings, LlamaStackRemoteLLM, ) diff --git a/uv.lock b/uv.lock index 30dfe146..268109d7 100644 --- a/uv.lock +++ b/uv.lock @@ -168,6 +168,30 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918, upload-time = "2024-11-30T04:30:10.946Z" }, ] +[[package]] +name = "asyncpg" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2f/4c/7c991e080e106d854809030d8584e15b2e996e26f16aee6d757e387bc17d/asyncpg-0.30.0.tar.gz", hash = "sha256:c551e9928ab6707602f44811817f82ba3c446e018bfe1d3abecc8ba5f3eac851", size = 957746, upload-time = "2024-10-20T00:30:41.127Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/64/9d3e887bb7b01535fdbc45fbd5f0a8447539833b97ee69ecdbb7a79d0cb4/asyncpg-0.30.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c902a60b52e506d38d7e80e0dd5399f657220f24635fee368117b8b5fce1142e", size = 673162, upload-time = "2024-10-20T00:29:41.88Z" }, + { url = "https://files.pythonhosted.org/packages/6e/eb/8b236663f06984f212a087b3e849731f917ab80f84450e943900e8ca4052/asyncpg-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aca1548e43bbb9f0f627a04666fedaca23db0a31a84136ad1f868cb15deb6e3a", size = 637025, upload-time = "2024-10-20T00:29:43.352Z" }, + { url = "https://files.pythonhosted.org/packages/cc/57/2dc240bb263d58786cfaa60920779af6e8d32da63ab9ffc09f8312bd7a14/asyncpg-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c2a2ef565400234a633da0eafdce27e843836256d40705d83ab7ec42074efb3", size = 3496243, upload-time = "2024-10-20T00:29:44.922Z" }, + { url = "https://files.pythonhosted.org/packages/f4/40/0ae9d061d278b10713ea9021ef6b703ec44698fe32178715a501ac696c6b/asyncpg-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1292b84ee06ac8a2ad8e51c7475aa309245874b61333d97411aab835c4a2f737", size = 3575059, upload-time = "2024-10-20T00:29:46.891Z" }, + { url = "https://files.pythonhosted.org/packages/c3/75/d6b895a35a2c6506952247640178e5f768eeb28b2e20299b6a6f1d743ba0/asyncpg-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0f5712350388d0cd0615caec629ad53c81e506b1abaaf8d14c93f54b35e3595a", size = 3473596, upload-time = "2024-10-20T00:29:49.201Z" }, + { url = "https://files.pythonhosted.org/packages/c8/e7/3693392d3e168ab0aebb2d361431375bd22ffc7b4a586a0fc060d519fae7/asyncpg-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:db9891e2d76e6f425746c5d2da01921e9a16b5a71a1c905b13f30e12a257c4af", size = 3641632, upload-time = "2024-10-20T00:29:50.768Z" }, + { url = "https://files.pythonhosted.org/packages/32/ea/15670cea95745bba3f0352341db55f506a820b21c619ee66b7d12ea7867d/asyncpg-0.30.0-cp312-cp312-win32.whl", hash = "sha256:68d71a1be3d83d0570049cd1654a9bdfe506e794ecc98ad0873304a9f35e411e", size = 560186, upload-time = "2024-10-20T00:29:52.394Z" }, + { url = "https://files.pythonhosted.org/packages/7e/6b/fe1fad5cee79ca5f5c27aed7bd95baee529c1bf8a387435c8ba4fe53d5c1/asyncpg-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:9a0292c6af5c500523949155ec17b7fe01a00ace33b68a476d6b5059f9630305", size = 621064, upload-time = "2024-10-20T00:29:53.757Z" }, + { url = "https://files.pythonhosted.org/packages/3a/22/e20602e1218dc07692acf70d5b902be820168d6282e69ef0d3cb920dc36f/asyncpg-0.30.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05b185ebb8083c8568ea8a40e896d5f7af4b8554b64d7719c0eaa1eb5a5c3a70", size = 670373, upload-time = "2024-10-20T00:29:55.165Z" }, + { url = "https://files.pythonhosted.org/packages/3d/b3/0cf269a9d647852a95c06eb00b815d0b95a4eb4b55aa2d6ba680971733b9/asyncpg-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c47806b1a8cbb0a0db896f4cd34d89942effe353a5035c62734ab13b9f938da3", size = 634745, upload-time = "2024-10-20T00:29:57.14Z" }, + { url = "https://files.pythonhosted.org/packages/8e/6d/a4f31bf358ce8491d2a31bfe0d7bcf25269e80481e49de4d8616c4295a34/asyncpg-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b6fde867a74e8c76c71e2f64f80c64c0f3163e687f1763cfaf21633ec24ec33", size = 3512103, upload-time = "2024-10-20T00:29:58.499Z" }, + { url = "https://files.pythonhosted.org/packages/96/19/139227a6e67f407b9c386cb594d9628c6c78c9024f26df87c912fabd4368/asyncpg-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46973045b567972128a27d40001124fbc821c87a6cade040cfcd4fa8a30bcdc4", size = 3592471, upload-time = "2024-10-20T00:30:00.354Z" }, + { url = "https://files.pythonhosted.org/packages/67/e4/ab3ca38f628f53f0fd28d3ff20edff1c975dd1cb22482e0061916b4b9a74/asyncpg-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9110df111cabc2ed81aad2f35394a00cadf4f2e0635603db6ebbd0fc896f46a4", size = 3496253, upload-time = "2024-10-20T00:30:02.794Z" }, + { url = "https://files.pythonhosted.org/packages/ef/5f/0bf65511d4eeac3a1f41c54034a492515a707c6edbc642174ae79034d3ba/asyncpg-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04ff0785ae7eed6cc138e73fc67b8e51d54ee7a3ce9b63666ce55a0bf095f7ba", size = 3662720, upload-time = "2024-10-20T00:30:04.501Z" }, + { url = "https://files.pythonhosted.org/packages/e7/31/1513d5a6412b98052c3ed9158d783b1e09d0910f51fbe0e05f56cc370bc4/asyncpg-0.30.0-cp313-cp313-win32.whl", hash = "sha256:ae374585f51c2b444510cdf3595b97ece4f233fde739aa14b50e0d64e8a7a590", size = 560404, upload-time = "2024-10-20T00:30:06.537Z" }, + { url = "https://files.pythonhosted.org/packages/c8/a4/cec76b3389c4c5ff66301cd100fe88c318563ec8a520e0b2e792b5b84972/asyncpg-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:f59b430b8e27557c3fb9869222559f7417ced18688375825f8f12302c34e915e", size = 621623, upload-time = "2024-10-20T00:30:09.024Z" }, +] + [[package]] name = "attrs" version = "25.3.0" @@ -211,35 +235,59 @@ wheels = [ [[package]] name = "cffi" -version = "1.17.1" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pycparser" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload-time = "2024-09-04T20:45:21.852Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178, upload-time = "2024-09-04T20:44:12.232Z" }, - { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840, upload-time = "2024-09-04T20:44:13.739Z" }, - { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803, upload-time = "2024-09-04T20:44:15.231Z" }, - { url = "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850, upload-time = "2024-09-04T20:44:17.188Z" }, - { url = "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729, upload-time = "2024-09-04T20:44:18.688Z" }, - { url = "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256, upload-time = "2024-09-04T20:44:20.248Z" }, - { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424, upload-time = "2024-09-04T20:44:21.673Z" }, - { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568, upload-time = "2024-09-04T20:44:23.245Z" }, - { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736, upload-time = "2024-09-04T20:44:24.757Z" }, - { url = "https://files.pythonhosted.org/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448, upload-time = "2024-09-04T20:44:26.208Z" }, - { url = "https://files.pythonhosted.org/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976, upload-time = "2024-09-04T20:44:27.578Z" }, - { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload-time = "2024-09-04T20:44:28.956Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload-time = "2024-09-04T20:44:30.289Z" }, - { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload-time = "2024-09-04T20:44:32.01Z" }, - { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload-time = "2024-09-04T20:44:33.606Z" }, - { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload-time = "2024-09-04T20:44:35.191Z" }, - { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload-time = "2024-09-04T20:44:36.743Z" }, - { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload-time = "2024-09-04T20:44:38.492Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload-time = "2024-09-04T20:44:40.046Z" }, - { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload-time = "2024-09-04T20:44:41.616Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload-time = "2024-09-04T20:44:43.733Z" }, - { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload-time = "2024-09-04T20:44:45.309Z" }, + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, ] [[package]] @@ -373,6 +421,62 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/08/b8/7ddd1e8ba9701dea08ce22029917140e6f66a859427406579fd8d0ca7274/coverage-7.9.1-py3-none-any.whl", hash = "sha256:66b974b145aa189516b6bf2d8423e888b742517d37872f6ee4c5be0073bd9a3c", size = 204000, upload-time = "2025-06-13T13:02:27.173Z" }, ] +[[package]] +name = "cryptography" +version = "46.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/62/e3664e6ffd7743e1694b244dde70b43a394f6f7fbcacf7014a8ff5197c73/cryptography-46.0.1.tar.gz", hash = "sha256:ed570874e88f213437f5cf758f9ef26cbfc3f336d889b1e592ee11283bb8d1c7", size = 749198, upload-time = "2025-09-17T00:10:35.797Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4c/8c/44ee01267ec01e26e43ebfdae3f120ec2312aa72fa4c0507ebe41a26739f/cryptography-46.0.1-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:1cd6d50c1a8b79af1a6f703709d8973845f677c8e97b1268f5ff323d38ce8475", size = 7285044, upload-time = "2025-09-17T00:08:36.807Z" }, + { url = "https://files.pythonhosted.org/packages/22/59/9ae689a25047e0601adfcb159ec4f83c0b4149fdb5c3030cc94cd218141d/cryptography-46.0.1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0ff483716be32690c14636e54a1f6e2e1b7bf8e22ca50b989f88fa1b2d287080", size = 4308182, upload-time = "2025-09-17T00:08:39.388Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ee/ca6cc9df7118f2fcd142c76b1da0f14340d77518c05b1ebfbbabca6b9e7d/cryptography-46.0.1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9873bf7c1f2a6330bdfe8621e7ce64b725784f9f0c3a6a55c3047af5849f920e", size = 4572393, upload-time = "2025-09-17T00:08:41.663Z" }, + { url = "https://files.pythonhosted.org/packages/7f/a3/0f5296f63815d8e985922b05c31f77ce44787b3127a67c0b7f70f115c45f/cryptography-46.0.1-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0dfb7c88d4462a0cfdd0d87a3c245a7bc3feb59de101f6ff88194f740f72eda6", size = 4308400, upload-time = "2025-09-17T00:08:43.559Z" }, + { url = "https://files.pythonhosted.org/packages/5d/8c/74fcda3e4e01be1d32775d5b4dd841acaac3c1b8fa4d0774c7ac8d52463d/cryptography-46.0.1-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e22801b61613ebdebf7deb18b507919e107547a1d39a3b57f5f855032dd7cfb8", size = 4015786, upload-time = "2025-09-17T00:08:45.758Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b8/85d23287baeef273b0834481a3dd55bbed3a53587e3b8d9f0898235b8f91/cryptography-46.0.1-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:757af4f6341ce7a1e47c326ca2a81f41d236070217e5fbbad61bbfe299d55d28", size = 4982606, upload-time = "2025-09-17T00:08:47.602Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d3/de61ad5b52433b389afca0bc70f02a7a1f074651221f599ce368da0fe437/cryptography-46.0.1-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f7a24ea78de345cfa7f6a8d3bde8b242c7fac27f2bd78fa23474ca38dfaeeab9", size = 4604234, upload-time = "2025-09-17T00:08:49.879Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1f/dbd4d6570d84748439237a7478d124ee0134bf166ad129267b7ed8ea6d22/cryptography-46.0.1-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e8776dac9e660c22241b6587fae51a67b4b0147daa4d176b172c3ff768ad736", size = 4307669, upload-time = "2025-09-17T00:08:52.321Z" }, + { url = "https://files.pythonhosted.org/packages/ec/fd/ca0a14ce7f0bfe92fa727aacaf2217eb25eb7e4ed513b14d8e03b26e63ed/cryptography-46.0.1-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9f40642a140c0c8649987027867242b801486865277cbabc8c6059ddef16dc8b", size = 4947579, upload-time = "2025-09-17T00:08:54.697Z" }, + { url = "https://files.pythonhosted.org/packages/89/6b/09c30543bb93401f6f88fce556b3bdbb21e55ae14912c04b7bf355f5f96c/cryptography-46.0.1-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:449ef2b321bec7d97ef2c944173275ebdab78f3abdd005400cc409e27cd159ab", size = 4603669, upload-time = "2025-09-17T00:08:57.16Z" }, + { url = "https://files.pythonhosted.org/packages/23/9a/38cb01cb09ce0adceda9fc627c9cf98eb890fc8d50cacbe79b011df20f8a/cryptography-46.0.1-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2dd339ba3345b908fa3141ddba4025568fa6fd398eabce3ef72a29ac2d73ad75", size = 4435828, upload-time = "2025-09-17T00:08:59.606Z" }, + { url = "https://files.pythonhosted.org/packages/0f/53/435b5c36a78d06ae0bef96d666209b0ecd8f8181bfe4dda46536705df59e/cryptography-46.0.1-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7411c910fb2a412053cf33cfad0153ee20d27e256c6c3f14d7d7d1d9fec59fd5", size = 4709553, upload-time = "2025-09-17T00:09:01.832Z" }, + { url = "https://files.pythonhosted.org/packages/f5/c4/0da6e55595d9b9cd3b6eb5dc22f3a07ded7f116a3ea72629cab595abb804/cryptography-46.0.1-cp311-abi3-win32.whl", hash = "sha256:cbb8e769d4cac884bb28e3ff620ef1001b75588a5c83c9c9f1fdc9afbe7f29b0", size = 3058327, upload-time = "2025-09-17T00:09:03.726Z" }, + { url = "https://files.pythonhosted.org/packages/95/0f/cd29a35e0d6e78a0ee61793564c8cff0929c38391cb0de27627bdc7525aa/cryptography-46.0.1-cp311-abi3-win_amd64.whl", hash = "sha256:92e8cfe8bd7dd86eac0a677499894862cd5cc2fd74de917daa881d00871ac8e7", size = 3523893, upload-time = "2025-09-17T00:09:06.272Z" }, + { url = "https://files.pythonhosted.org/packages/f2/dd/eea390f3e78432bc3d2f53952375f8b37cb4d37783e626faa6a51e751719/cryptography-46.0.1-cp311-abi3-win_arm64.whl", hash = "sha256:db5597a4c7353b2e5fb05a8e6cb74b56a4658a2b7bf3cb6b1821ae7e7fd6eaa0", size = 2932145, upload-time = "2025-09-17T00:09:08.568Z" }, + { url = "https://files.pythonhosted.org/packages/0a/fb/c73588561afcd5e24b089952bd210b14676c0c5bf1213376350ae111945c/cryptography-46.0.1-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:4c49eda9a23019e11d32a0eb51a27b3e7ddedde91e099c0ac6373e3aacc0d2ee", size = 7193928, upload-time = "2025-09-17T00:09:10.595Z" }, + { url = "https://files.pythonhosted.org/packages/26/34/0ff0bb2d2c79f25a2a63109f3b76b9108a906dd2a2eb5c1d460b9938adbb/cryptography-46.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9babb7818fdd71394e576cf26c5452df77a355eac1a27ddfa24096665a27f8fd", size = 4293515, upload-time = "2025-09-17T00:09:12.861Z" }, + { url = "https://files.pythonhosted.org/packages/df/b7/d4f848aee24ecd1be01db6c42c4a270069a4f02a105d9c57e143daf6cf0f/cryptography-46.0.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9f2c4cc63be3ef43c0221861177cee5d14b505cd4d4599a89e2cd273c4d3542a", size = 4545619, upload-time = "2025-09-17T00:09:15.397Z" }, + { url = "https://files.pythonhosted.org/packages/44/a5/42fedefc754fd1901e2d95a69815ea4ec8a9eed31f4c4361fcab80288661/cryptography-46.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:41c281a74df173876da1dc9a9b6953d387f06e3d3ed9284e3baae3ab3f40883a", size = 4299160, upload-time = "2025-09-17T00:09:17.155Z" }, + { url = "https://files.pythonhosted.org/packages/86/a1/cd21174f56e769c831fbbd6399a1b7519b0ff6280acec1b826d7b072640c/cryptography-46.0.1-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0a17377fa52563d730248ba1f68185461fff36e8bc75d8787a7dd2e20a802b7a", size = 3994491, upload-time = "2025-09-17T00:09:18.971Z" }, + { url = "https://files.pythonhosted.org/packages/8d/2f/a8cbfa1c029987ddc746fd966711d4fa71efc891d37fbe9f030fe5ab4eec/cryptography-46.0.1-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:0d1922d9280e08cde90b518a10cd66831f632960a8d08cb3418922d83fce6f12", size = 4960157, upload-time = "2025-09-17T00:09:20.923Z" }, + { url = "https://files.pythonhosted.org/packages/67/ae/63a84e6789e0d5a2502edf06b552bcb0fa9ff16147265d5c44a211942abe/cryptography-46.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:af84e8e99f1a82cea149e253014ea9dc89f75b82c87bb6c7242203186f465129", size = 4577263, upload-time = "2025-09-17T00:09:23.356Z" }, + { url = "https://files.pythonhosted.org/packages/ef/8f/1b9fa8e92bd9cbcb3b7e1e593a5232f2c1e6f9bd72b919c1a6b37d315f92/cryptography-46.0.1-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:ef648d2c690703501714588b2ba640facd50fd16548133b11b2859e8655a69da", size = 4298703, upload-time = "2025-09-17T00:09:25.566Z" }, + { url = "https://files.pythonhosted.org/packages/c3/af/bb95db070e73fea3fae31d8a69ac1463d89d1c084220f549b00dd01094a8/cryptography-46.0.1-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:e94eb5fa32a8a9f9bf991f424f002913e3dd7c699ef552db9b14ba6a76a6313b", size = 4926363, upload-time = "2025-09-17T00:09:27.451Z" }, + { url = "https://files.pythonhosted.org/packages/f5/3b/d8fb17ffeb3a83157a1cc0aa5c60691d062aceecba09c2e5e77ebfc1870c/cryptography-46.0.1-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:534b96c0831855e29fc3b069b085fd185aa5353033631a585d5cd4dd5d40d657", size = 4576958, upload-time = "2025-09-17T00:09:29.924Z" }, + { url = "https://files.pythonhosted.org/packages/d9/46/86bc3a05c10c8aa88c8ae7e953a8b4e407c57823ed201dbcba55c4d655f4/cryptography-46.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f9b55038b5c6c47559aa33626d8ecd092f354e23de3c6975e4bb205df128a2a0", size = 4422507, upload-time = "2025-09-17T00:09:32.222Z" }, + { url = "https://files.pythonhosted.org/packages/a8/4e/387e5a21dfd2b4198e74968a541cfd6128f66f8ec94ed971776e15091ac3/cryptography-46.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ec13b7105117dbc9afd023300fb9954d72ca855c274fe563e72428ece10191c0", size = 4683964, upload-time = "2025-09-17T00:09:34.118Z" }, + { url = "https://files.pythonhosted.org/packages/25/a3/f9f5907b166adb8f26762071474b38bbfcf89858a5282f032899075a38a1/cryptography-46.0.1-cp314-cp314t-win32.whl", hash = "sha256:504e464944f2c003a0785b81668fe23c06f3b037e9cb9f68a7c672246319f277", size = 3029705, upload-time = "2025-09-17T00:09:36.381Z" }, + { url = "https://files.pythonhosted.org/packages/12/66/4d3a4f1850db2e71c2b1628d14b70b5e4c1684a1bd462f7fffb93c041c38/cryptography-46.0.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c52fded6383f7e20eaf70a60aeddd796b3677c3ad2922c801be330db62778e05", size = 3502175, upload-time = "2025-09-17T00:09:38.261Z" }, + { url = "https://files.pythonhosted.org/packages/52/c7/9f10ad91435ef7d0d99a0b93c4360bea3df18050ff5b9038c489c31ac2f5/cryptography-46.0.1-cp314-cp314t-win_arm64.whl", hash = "sha256:9495d78f52c804b5ec8878b5b8c7873aa8e63db9cd9ee387ff2db3fffe4df784", size = 2912354, upload-time = "2025-09-17T00:09:40.078Z" }, + { url = "https://files.pythonhosted.org/packages/98/e5/fbd632385542a3311915976f88e0dfcf09e62a3fc0aff86fb6762162a24d/cryptography-46.0.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:d84c40bdb8674c29fa192373498b6cb1e84f882889d21a471b45d1f868d8d44b", size = 7255677, upload-time = "2025-09-17T00:09:42.407Z" }, + { url = "https://files.pythonhosted.org/packages/56/3e/13ce6eab9ad6eba1b15a7bd476f005a4c1b3f299f4c2f32b22408b0edccf/cryptography-46.0.1-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9ed64e5083fa806709e74fc5ea067dfef9090e5b7a2320a49be3c9df3583a2d8", size = 4301110, upload-time = "2025-09-17T00:09:45.614Z" }, + { url = "https://files.pythonhosted.org/packages/a2/67/65dc233c1ddd688073cf7b136b06ff4b84bf517ba5529607c9d79720fc67/cryptography-46.0.1-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:341fb7a26bc9d6093c1b124b9f13acc283d2d51da440b98b55ab3f79f2522ead", size = 4562369, upload-time = "2025-09-17T00:09:47.601Z" }, + { url = "https://files.pythonhosted.org/packages/17/db/d64ae4c6f4e98c3dac5bf35dd4d103f4c7c345703e43560113e5e8e31b2b/cryptography-46.0.1-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6ef1488967e729948d424d09c94753d0167ce59afba8d0f6c07a22b629c557b2", size = 4302126, upload-time = "2025-09-17T00:09:49.335Z" }, + { url = "https://files.pythonhosted.org/packages/3d/19/5f1eea17d4805ebdc2e685b7b02800c4f63f3dd46cfa8d4c18373fea46c8/cryptography-46.0.1-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7823bc7cdf0b747ecfb096d004cc41573c2f5c7e3a29861603a2871b43d3ef32", size = 4009431, upload-time = "2025-09-17T00:09:51.239Z" }, + { url = "https://files.pythonhosted.org/packages/81/b5/229ba6088fe7abccbfe4c5edb96c7a5ad547fac5fdd0d40aa6ea540b2985/cryptography-46.0.1-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:f736ab8036796f5a119ff8211deda416f8c15ce03776db704a7a4e17381cb2ef", size = 4980739, upload-time = "2025-09-17T00:09:54.181Z" }, + { url = "https://files.pythonhosted.org/packages/3a/9c/50aa38907b201e74bc43c572f9603fa82b58e831bd13c245613a23cff736/cryptography-46.0.1-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:e46710a240a41d594953012213ea8ca398cd2448fbc5d0f1be8160b5511104a0", size = 4592289, upload-time = "2025-09-17T00:09:56.731Z" }, + { url = "https://files.pythonhosted.org/packages/5a/33/229858f8a5bb22f82468bb285e9f4c44a31978d5f5830bb4ea1cf8a4e454/cryptography-46.0.1-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:84ef1f145de5aee82ea2447224dc23f065ff4cc5791bb3b506615957a6ba8128", size = 4301815, upload-time = "2025-09-17T00:09:58.548Z" }, + { url = "https://files.pythonhosted.org/packages/52/cb/b76b2c87fbd6ed4a231884bea3ce073406ba8e2dae9defad910d33cbf408/cryptography-46.0.1-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9394c7d5a7565ac5f7d9ba38b2617448eba384d7b107b262d63890079fad77ca", size = 4943251, upload-time = "2025-09-17T00:10:00.475Z" }, + { url = "https://files.pythonhosted.org/packages/94/0f/f66125ecf88e4cb5b8017ff43f3a87ede2d064cb54a1c5893f9da9d65093/cryptography-46.0.1-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:ed957044e368ed295257ae3d212b95456bd9756df490e1ac4538857f67531fcc", size = 4591247, upload-time = "2025-09-17T00:10:02.874Z" }, + { url = "https://files.pythonhosted.org/packages/f6/22/9f3134ae436b63b463cfdf0ff506a0570da6873adb4bf8c19b8a5b4bac64/cryptography-46.0.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f7de12fa0eee6234de9a9ce0ffcfa6ce97361db7a50b09b65c63ac58e5f22fc7", size = 4428534, upload-time = "2025-09-17T00:10:04.994Z" }, + { url = "https://files.pythonhosted.org/packages/89/39/e6042bcb2638650b0005c752c38ea830cbfbcbb1830e4d64d530000aa8dc/cryptography-46.0.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7fab1187b6c6b2f11a326f33b036f7168f5b996aedd0c059f9738915e4e8f53a", size = 4699541, upload-time = "2025-09-17T00:10:06.925Z" }, + { url = "https://files.pythonhosted.org/packages/68/46/753d457492d15458c7b5a653fc9a84a1c9c7a83af6ebdc94c3fc373ca6e8/cryptography-46.0.1-cp38-abi3-win32.whl", hash = "sha256:45f790934ac1018adeba46a0f7289b2b8fe76ba774a88c7f1922213a56c98bc1", size = 3043779, upload-time = "2025-09-17T00:10:08.951Z" }, + { url = "https://files.pythonhosted.org/packages/2f/50/b6f3b540c2f6ee712feeb5fa780bb11fad76634e71334718568e7695cb55/cryptography-46.0.1-cp38-abi3-win_amd64.whl", hash = "sha256:7176a5ab56fac98d706921f6416a05e5aff7df0e4b91516f450f8627cda22af3", size = 3517226, upload-time = "2025-09-17T00:10:10.769Z" }, + { url = "https://files.pythonhosted.org/packages/ff/e8/77d17d00981cdd27cc493e81e1749a0b8bbfb843780dbd841e30d7f50743/cryptography-46.0.1-cp38-abi3-win_arm64.whl", hash = "sha256:efc9e51c3e595267ff84adf56e9b357db89ab2279d7e375ffcaf8f678606f3d9", size = 2923149, upload-time = "2025-09-17T00:10:13.236Z" }, +] + [[package]] name = "dataclasses-json" version = "0.6.7" @@ -714,35 +818,35 @@ wheels = [ [[package]] name = "greenlet" -version = "3.2.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c9/92/bb85bd6e80148a4d2e0c59f7c0c2891029f8fd510183afc7d8d2feeed9b6/greenlet-3.2.3.tar.gz", hash = "sha256:8b0dd8ae4c0d6f5e54ee55ba935eeb3d735a9b58a8a1e5b5cbab64e01a39f365", size = 185752, upload-time = "2025-06-05T16:16:09.955Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/94/ad0d435f7c48debe960c53b8f60fb41c2026b1d0fa4a99a1cb17c3461e09/greenlet-3.2.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:25ad29caed5783d4bd7a85c9251c651696164622494c00802a139c00d639242d", size = 271992, upload-time = "2025-06-05T16:11:23.467Z" }, - { url = "https://files.pythonhosted.org/packages/93/5d/7c27cf4d003d6e77749d299c7c8f5fd50b4f251647b5c2e97e1f20da0ab5/greenlet-3.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88cd97bf37fe24a6710ec6a3a7799f3f81d9cd33317dcf565ff9950c83f55e0b", size = 638820, upload-time = "2025-06-05T16:38:52.882Z" }, - { url = "https://files.pythonhosted.org/packages/c6/7e/807e1e9be07a125bb4c169144937910bf59b9d2f6d931578e57f0bce0ae2/greenlet-3.2.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:baeedccca94880d2f5666b4fa16fc20ef50ba1ee353ee2d7092b383a243b0b0d", size = 653046, upload-time = "2025-06-05T16:41:36.343Z" }, - { url = "https://files.pythonhosted.org/packages/9d/ab/158c1a4ea1068bdbc78dba5a3de57e4c7aeb4e7fa034320ea94c688bfb61/greenlet-3.2.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:be52af4b6292baecfa0f397f3edb3c6092ce071b499dd6fe292c9ac9f2c8f264", size = 647701, upload-time = "2025-06-05T16:48:19.604Z" }, - { url = "https://files.pythonhosted.org/packages/cc/0d/93729068259b550d6a0288da4ff72b86ed05626eaf1eb7c0d3466a2571de/greenlet-3.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0cc73378150b8b78b0c9fe2ce56e166695e67478550769536a6742dca3651688", size = 649747, upload-time = "2025-06-05T16:13:04.628Z" }, - { url = "https://files.pythonhosted.org/packages/f6/f6/c82ac1851c60851302d8581680573245c8fc300253fc1ff741ae74a6c24d/greenlet-3.2.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:706d016a03e78df129f68c4c9b4c4f963f7d73534e48a24f5f5a7101ed13dbbb", size = 605461, upload-time = "2025-06-05T16:12:50.792Z" }, - { url = "https://files.pythonhosted.org/packages/98/82/d022cf25ca39cf1200650fc58c52af32c90f80479c25d1cbf57980ec3065/greenlet-3.2.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:419e60f80709510c343c57b4bb5a339d8767bf9aef9b8ce43f4f143240f88b7c", size = 1121190, upload-time = "2025-06-05T16:36:48.59Z" }, - { url = "https://files.pythonhosted.org/packages/f5/e1/25297f70717abe8104c20ecf7af0a5b82d2f5a980eb1ac79f65654799f9f/greenlet-3.2.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:93d48533fade144203816783373f27a97e4193177ebaaf0fc396db19e5d61163", size = 1149055, upload-time = "2025-06-05T16:12:40.457Z" }, - { url = "https://files.pythonhosted.org/packages/1f/8f/8f9e56c5e82eb2c26e8cde787962e66494312dc8cb261c460e1f3a9c88bc/greenlet-3.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:7454d37c740bb27bdeddfc3f358f26956a07d5220818ceb467a483197d84f849", size = 297817, upload-time = "2025-06-05T16:29:49.244Z" }, - { url = "https://files.pythonhosted.org/packages/b1/cf/f5c0b23309070ae93de75c90d29300751a5aacefc0a3ed1b1d8edb28f08b/greenlet-3.2.3-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:500b8689aa9dd1ab26872a34084503aeddefcb438e2e7317b89b11eaea1901ad", size = 270732, upload-time = "2025-06-05T16:10:08.26Z" }, - { url = "https://files.pythonhosted.org/packages/48/ae/91a957ba60482d3fecf9be49bc3948f341d706b52ddb9d83a70d42abd498/greenlet-3.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a07d3472c2a93117af3b0136f246b2833fdc0b542d4a9799ae5f41c28323faef", size = 639033, upload-time = "2025-06-05T16:38:53.983Z" }, - { url = "https://files.pythonhosted.org/packages/6f/df/20ffa66dd5a7a7beffa6451bdb7400d66251374ab40b99981478c69a67a8/greenlet-3.2.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:8704b3768d2f51150626962f4b9a9e4a17d2e37c8a8d9867bbd9fa4eb938d3b3", size = 652999, upload-time = "2025-06-05T16:41:37.89Z" }, - { url = "https://files.pythonhosted.org/packages/51/b4/ebb2c8cb41e521f1d72bf0465f2f9a2fd803f674a88db228887e6847077e/greenlet-3.2.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5035d77a27b7c62db6cf41cf786cfe2242644a7a337a0e155c80960598baab95", size = 647368, upload-time = "2025-06-05T16:48:21.467Z" }, - { url = "https://files.pythonhosted.org/packages/8e/6a/1e1b5aa10dced4ae876a322155705257748108b7fd2e4fae3f2a091fe81a/greenlet-3.2.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2d8aa5423cd4a396792f6d4580f88bdc6efcb9205891c9d40d20f6e670992efb", size = 650037, upload-time = "2025-06-05T16:13:06.402Z" }, - { url = "https://files.pythonhosted.org/packages/26/f2/ad51331a157c7015c675702e2d5230c243695c788f8f75feba1af32b3617/greenlet-3.2.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2c724620a101f8170065d7dded3f962a2aea7a7dae133a009cada42847e04a7b", size = 608402, upload-time = "2025-06-05T16:12:51.91Z" }, - { url = "https://files.pythonhosted.org/packages/26/bc/862bd2083e6b3aff23300900a956f4ea9a4059de337f5c8734346b9b34fc/greenlet-3.2.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:873abe55f134c48e1f2a6f53f7d1419192a3d1a4e873bace00499a4e45ea6af0", size = 1119577, upload-time = "2025-06-05T16:36:49.787Z" }, - { url = "https://files.pythonhosted.org/packages/86/94/1fc0cc068cfde885170e01de40a619b00eaa8f2916bf3541744730ffb4c3/greenlet-3.2.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:024571bbce5f2c1cfff08bf3fbaa43bbc7444f580ae13b0099e95d0e6e67ed36", size = 1147121, upload-time = "2025-06-05T16:12:42.527Z" }, - { url = "https://files.pythonhosted.org/packages/27/1a/199f9587e8cb08a0658f9c30f3799244307614148ffe8b1e3aa22f324dea/greenlet-3.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:5195fb1e75e592dd04ce79881c8a22becdfa3e6f500e7feb059b1e6fdd54d3e3", size = 297603, upload-time = "2025-06-05T16:20:12.651Z" }, - { url = "https://files.pythonhosted.org/packages/d8/ca/accd7aa5280eb92b70ed9e8f7fd79dc50a2c21d8c73b9a0856f5b564e222/greenlet-3.2.3-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:3d04332dddb10b4a211b68111dabaee2e1a073663d117dc10247b5b1642bac86", size = 271479, upload-time = "2025-06-05T16:10:47.525Z" }, - { url = "https://files.pythonhosted.org/packages/55/71/01ed9895d9eb49223280ecc98a557585edfa56b3d0e965b9fa9f7f06b6d9/greenlet-3.2.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8186162dffde068a465deab08fc72c767196895c39db26ab1c17c0b77a6d8b97", size = 683952, upload-time = "2025-06-05T16:38:55.125Z" }, - { url = "https://files.pythonhosted.org/packages/ea/61/638c4bdf460c3c678a0a1ef4c200f347dff80719597e53b5edb2fb27ab54/greenlet-3.2.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f4bfbaa6096b1b7a200024784217defedf46a07c2eee1a498e94a1b5f8ec5728", size = 696917, upload-time = "2025-06-05T16:41:38.959Z" }, - { url = "https://files.pythonhosted.org/packages/22/cc/0bd1a7eb759d1f3e3cc2d1bc0f0b487ad3cc9f34d74da4b80f226fde4ec3/greenlet-3.2.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:ed6cfa9200484d234d8394c70f5492f144b20d4533f69262d530a1a082f6ee9a", size = 692443, upload-time = "2025-06-05T16:48:23.113Z" }, - { url = "https://files.pythonhosted.org/packages/67/10/b2a4b63d3f08362662e89c103f7fe28894a51ae0bc890fabf37d1d780e52/greenlet-3.2.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:02b0df6f63cd15012bed5401b47829cfd2e97052dc89da3cfaf2c779124eb892", size = 692995, upload-time = "2025-06-05T16:13:07.972Z" }, - { url = "https://files.pythonhosted.org/packages/5a/c6/ad82f148a4e3ce9564056453a71529732baf5448ad53fc323e37efe34f66/greenlet-3.2.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86c2d68e87107c1792e2e8d5399acec2487a4e993ab76c792408e59394d52141", size = 655320, upload-time = "2025-06-05T16:12:53.453Z" }, - { url = "https://files.pythonhosted.org/packages/5c/4f/aab73ecaa6b3086a4c89863d94cf26fa84cbff63f52ce9bc4342b3087a06/greenlet-3.2.3-cp314-cp314-win_amd64.whl", hash = "sha256:8c47aae8fbbfcf82cc13327ae802ba13c9c36753b67e760023fd116bc124a62a", size = 301236, upload-time = "2025-06-05T16:15:20.111Z" }, +version = "3.2.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260, upload-time = "2025-08-07T13:24:33.51Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079, upload-time = "2025-08-07T13:15:45.033Z" }, + { url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997, upload-time = "2025-08-07T13:42:56.234Z" }, + { url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185, upload-time = "2025-08-07T13:45:27.624Z" }, + { url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926, upload-time = "2025-08-07T13:53:15.251Z" }, + { url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839, upload-time = "2025-08-07T13:18:30.281Z" }, + { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586, upload-time = "2025-08-07T13:18:28.544Z" }, + { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281, upload-time = "2025-08-07T13:42:39.858Z" }, + { url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142, upload-time = "2025-08-07T13:18:22.981Z" }, + { url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899, upload-time = "2025-08-07T13:38:53.448Z" }, + { url = "https://files.pythonhosted.org/packages/49/e8/58c7f85958bda41dafea50497cbd59738c5c43dbbea5ee83d651234398f4/greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31", size = 272814, upload-time = "2025-08-07T13:15:50.011Z" }, + { url = "https://files.pythonhosted.org/packages/62/dd/b9f59862e9e257a16e4e610480cfffd29e3fae018a68c2332090b53aac3d/greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945", size = 641073, upload-time = "2025-08-07T13:42:57.23Z" }, + { url = "https://files.pythonhosted.org/packages/f7/0b/bc13f787394920b23073ca3b6c4a7a21396301ed75a655bcb47196b50e6e/greenlet-3.2.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:710638eb93b1fa52823aa91bf75326f9ecdfd5e0466f00789246a5280f4ba0fc", size = 655191, upload-time = "2025-08-07T13:45:29.752Z" }, + { url = "https://files.pythonhosted.org/packages/f2/d6/6adde57d1345a8d0f14d31e4ab9c23cfe8e2cd39c3baf7674b4b0338d266/greenlet-3.2.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c5111ccdc9c88f423426df3fd1811bfc40ed66264d35aa373420a34377efc98a", size = 649516, upload-time = "2025-08-07T13:53:16.314Z" }, + { url = "https://files.pythonhosted.org/packages/7f/3b/3a3328a788d4a473889a2d403199932be55b1b0060f4ddd96ee7cdfcad10/greenlet-3.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d76383238584e9711e20ebe14db6c88ddcedc1829a9ad31a584389463b5aa504", size = 652169, upload-time = "2025-08-07T13:18:32.861Z" }, + { url = "https://files.pythonhosted.org/packages/ee/43/3cecdc0349359e1a527cbf2e3e28e5f8f06d3343aaf82ca13437a9aa290f/greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671", size = 610497, upload-time = "2025-08-07T13:18:31.636Z" }, + { url = "https://files.pythonhosted.org/packages/b8/19/06b6cf5d604e2c382a6f31cafafd6f33d5dea706f4db7bdab184bad2b21d/greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b", size = 1121662, upload-time = "2025-08-07T13:42:41.117Z" }, + { url = "https://files.pythonhosted.org/packages/a2/15/0d5e4e1a66fab130d98168fe984c509249c833c1a3c16806b90f253ce7b9/greenlet-3.2.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d25c5091190f2dc0eaa3f950252122edbbadbb682aa7b1ef2f8af0f8c0afefae", size = 1149210, upload-time = "2025-08-07T13:18:24.072Z" }, + { url = "https://files.pythonhosted.org/packages/0b/55/2321e43595e6801e105fcfdee02b34c0f996eb71e6ddffca6b10b7e1d771/greenlet-3.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:554b03b6e73aaabec3745364d6239e9e012d64c68ccd0b8430c64ccc14939a8b", size = 299685, upload-time = "2025-08-07T13:24:38.824Z" }, + { url = "https://files.pythonhosted.org/packages/22/5c/85273fd7cc388285632b0498dbbab97596e04b154933dfe0f3e68156c68c/greenlet-3.2.4-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:49a30d5fda2507ae77be16479bdb62a660fa51b1eb4928b524975b3bde77b3c0", size = 273586, upload-time = "2025-08-07T13:16:08.004Z" }, + { url = "https://files.pythonhosted.org/packages/d1/75/10aeeaa3da9332c2e761e4c50d4c3556c21113ee3f0afa2cf5769946f7a3/greenlet-3.2.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:299fd615cd8fc86267b47597123e3f43ad79c9d8a22bebdce535e53550763e2f", size = 686346, upload-time = "2025-08-07T13:42:59.944Z" }, + { url = "https://files.pythonhosted.org/packages/c0/aa/687d6b12ffb505a4447567d1f3abea23bd20e73a5bed63871178e0831b7a/greenlet-3.2.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:c17b6b34111ea72fc5a4e4beec9711d2226285f0386ea83477cbb97c30a3f3a5", size = 699218, upload-time = "2025-08-07T13:45:30.969Z" }, + { url = "https://files.pythonhosted.org/packages/dc/8b/29aae55436521f1d6f8ff4e12fb676f3400de7fcf27fccd1d4d17fd8fecd/greenlet-3.2.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b4a1870c51720687af7fa3e7cda6d08d801dae660f75a76f3845b642b4da6ee1", size = 694659, upload-time = "2025-08-07T13:53:17.759Z" }, + { url = "https://files.pythonhosted.org/packages/92/2e/ea25914b1ebfde93b6fc4ff46d6864564fba59024e928bdc7de475affc25/greenlet-3.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:061dc4cf2c34852b052a8620d40f36324554bc192be474b9e9770e8c042fd735", size = 695355, upload-time = "2025-08-07T13:18:34.517Z" }, + { url = "https://files.pythonhosted.org/packages/72/60/fc56c62046ec17f6b0d3060564562c64c862948c9d4bc8aa807cf5bd74f4/greenlet-3.2.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44358b9bf66c8576a9f57a590d5f5d6e72fa4228b763d0e43fee6d3b06d3a337", size = 657512, upload-time = "2025-08-07T13:18:33.969Z" }, + { url = "https://files.pythonhosted.org/packages/e3/a5/6ddab2b4c112be95601c13428db1d8b6608a8b6039816f2ba09c346c08fc/greenlet-3.2.4-cp314-cp314-win_amd64.whl", hash = "sha256:e37ab26028f12dbb0ff65f29a8d3d44a765c61e729647bf2ddfbbed621726f01", size = 303425, upload-time = "2025-08-07T13:32:27.59Z" }, ] [[package]] @@ -836,7 +940,7 @@ wheels = [ [[package]] name = "huggingface-hub" -version = "0.33.0" +version = "0.35.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filelock" }, @@ -848,9 +952,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/91/8a/1362d565fefabaa4185cf3ae842a98dbc5b35146f5694f7080f043a6952f/huggingface_hub-0.33.0.tar.gz", hash = "sha256:aa31f70d29439d00ff7a33837c03f1f9dd83971ce4e29ad664d63ffb17d3bb97", size = 426179, upload-time = "2025-06-11T17:08:07.913Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/42/0e7be334a6851cd7d51cc11717cb95e89333ebf0064431c0255c56957526/huggingface_hub-0.35.1.tar.gz", hash = "sha256:3585b88c5169c64b7e4214d0e88163d4a709de6d1a502e0cd0459e9ee2c9c572", size = 461374, upload-time = "2025-09-23T13:43:47.074Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/fb/53587a89fbc00799e4179796f51b3ad713c5de6bb680b2becb6d37c94649/huggingface_hub-0.33.0-py3-none-any.whl", hash = "sha256:e8668875b40c68f9929150d99727d39e5ebb8a05a98e4191b908dc7ded9074b3", size = 514799, upload-time = "2025-06-11T17:08:05.757Z" }, + { url = "https://files.pythonhosted.org/packages/f1/60/4acf0c8a3925d9ff491dc08fe84d37e09cfca9c3b885e0db3d4dedb98cea/huggingface_hub-0.35.1-py3-none-any.whl", hash = "sha256:2f0e2709c711e3040e31d3e0418341f7092910f1462dd00350c4e97af47280a8", size = 563340, upload-time = "2025-09-23T13:43:45.343Z" }, ] [[package]] @@ -1296,10 +1400,12 @@ wheels = [ [[package]] name = "llama-stack" -version = "0.2.11" +version = "0.2.22" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, + { name = "aiosqlite" }, + { name = "asyncpg" }, { name = "fastapi" }, { name = "fire" }, { name = "h11" }, @@ -1309,53 +1415,57 @@ dependencies = [ { name = "jsonschema" }, { name = "llama-stack-client" }, { name = "openai" }, + { name = "opentelemetry-exporter-otlp-proto-http" }, + { name = "opentelemetry-sdk" }, { name = "pillow" }, { name = "prompt-toolkit" }, { name = "pydantic" }, { name = "python-dotenv" }, - { name = "python-jose" }, + { name = "python-jose", extra = ["cryptography"] }, { name = "python-multipart" }, - { name = "requests" }, { name = "rich" }, - { name = "setuptools" }, { name = "starlette" }, { name = "termcolor" }, { name = "tiktoken" }, + { name = "uvicorn" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/89/38/990cc8893ad6e021bcc4ef46794fcbf7faad5f241b57652ae82d857a327e/llama_stack-0.2.11.tar.gz", hash = "sha256:6ff347cd408577c96c8def7e2ec1912e0709cb02c0e2ed52a1762b68be9ddc31", size = 3278046, upload-time = "2025-06-17T19:07:51.079Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/cf/c4bccdb6e218f3fda1d50aad87bf08376372c56ddc523e35f5a629c725e1/llama_stack-0.2.22.tar.gz", hash = "sha256:576752dedc9e9f0fb9da69f373d677d8b4f2ae4203428f676fa039b6813d8450", size = 3334595, upload-time = "2025-09-16T19:43:41.842Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/90/93/c24bbc2bc057f9610e42f3640d963e02075fbd37ea2be505258338f27314/llama_stack-0.2.11-py3-none-any.whl", hash = "sha256:a7bc82396f27b1c891346d261bc908a803a9aaec6e39c95753dff038636ef279", size = 3644428, upload-time = "2025-06-17T19:07:49.484Z" }, + { url = "https://files.pythonhosted.org/packages/a9/42/5ae8be5371367beb9c8e38966cd941022c072fb2133660bf0eabc7b5d08b/llama_stack-0.2.22-py3-none-any.whl", hash = "sha256:c6bbda6b5a4417b9a73ed36b9d581fd7ec689090ceefd084d9a078e7acbdc670", size = 3669928, upload-time = "2025-09-16T19:43:40.391Z" }, ] [[package]] name = "llama-stack-client" -version = "0.2.11" +version = "0.2.22" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, { name = "click" }, { name = "distro" }, + { name = "fire" }, { name = "httpx" }, { name = "pandas" }, { name = "prompt-toolkit" }, { name = "pyaml" }, { name = "pydantic" }, + { name = "requests" }, { name = "rich" }, { name = "sniffio" }, { name = "termcolor" }, { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/11/70/282dc204393edffb57fd37c034d56a7b89a831b10951203a6e488736a4e2/llama_stack_client-0.2.11.tar.gz", hash = "sha256:96eb00446b00a755114840d4aea4bdb1948fd84f9faf57bf54d4e26f7cb3e75a", size = 289456, upload-time = "2025-06-17T19:07:42.317Z" } +sdist = { url = "https://files.pythonhosted.org/packages/60/80/4260816bfaaa889d515206c9df4906d08d405bf94c9b4d1be399b1923e46/llama_stack_client-0.2.22.tar.gz", hash = "sha256:9a0bc756b91ebd539858eeaf1f231c5e5c6900e1ea4fcced726c6717f3d27ca7", size = 318309, upload-time = "2025-09-16T19:43:33.212Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/92/4f/69cc04267e36c1cdcf6e93ced89e37b6b75645227aeb070555dad78d1c29/llama_stack_client-0.2.11-py3-none-any.whl", hash = "sha256:26c6554cc6388cb9fa09cb6011044c67b6f4d03bc3bcea68c2ee5a5fd53de42e", size = 340210, upload-time = "2025-06-17T19:07:40.476Z" }, + { url = "https://files.pythonhosted.org/packages/d1/8e/1ebf6ac0dbb62b81038e856ed00768e283d927b14fcd614e3018a227092b/llama_stack_client-0.2.22-py3-none-any.whl", hash = "sha256:b260d73aec56fcfd8fa601b3b34c2f83c4fbcfb7261a246b02bbdf6c2da184fe", size = 369901, upload-time = "2025-09-16T19:43:32.089Z" }, ] [[package]] name = "llama-stack-provider-ragas" -version = "0.1.1" +version = "0.2.3" source = { editable = "." } dependencies = [ + { name = "greenlet" }, { name = "llama-stack" }, { name = "pandas" }, { name = "pyarrow" }, @@ -1401,11 +1511,12 @@ remote = [ [package.metadata] requires-dist = [ { name = "aiosqlite", marker = "extra == 'distro'" }, + { name = "greenlet", specifier = "==3.2.4" }, { name = "ipykernel", marker = "extra == 'dev'" }, { name = "kfp", marker = "extra == 'remote'", specifier = ">=2.5.0" }, { name = "kfp-kubernetes", marker = "extra == 'remote'", specifier = ">=2.0.0" }, { name = "kubernetes", marker = "extra == 'remote'", specifier = ">=30.0.0" }, - { name = "llama-stack", specifier = "==0.2.11" }, + { name = "llama-stack", specifier = "==0.2.22" }, { name = "llama-stack-provider-ragas", extras = ["distro"], marker = "extra == 'dev'" }, { name = "llama-stack-provider-ragas", extras = ["remote"], marker = "extra == 'dev'" }, { name = "mypy", marker = "extra == 'dev'" }, @@ -1714,7 +1825,7 @@ wheels = [ [[package]] name = "openai" -version = "1.88.0" +version = "1.109.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -1726,9 +1837,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5a/ea/bbeef604d1fe0f7e9111745bb8a81362973a95713b28855beb9a9832ab12/openai-1.88.0.tar.gz", hash = "sha256:122d35e42998255cf1fc84560f6ee49a844e65c054cd05d3e42fda506b832bb1", size = 470963, upload-time = "2025-06-17T05:04:45.856Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c6/a1/a303104dc55fc546a3f6914c842d3da471c64eec92043aef8f652eb6c524/openai-1.109.1.tar.gz", hash = "sha256:d173ed8dbca665892a6db099b4a2dfac624f94d20a93f46eb0b56aae940ed869", size = 564133, upload-time = "2025-09-24T13:00:53.075Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/03/ef68d77a38dd383cbed7fc898857d394d5a8b0520a35f054e7fe05dc3ac1/openai-1.88.0-py3-none-any.whl", hash = "sha256:7edd7826b3b83f5846562a6f310f040c79576278bf8e3687b30ba05bb5dff978", size = 734293, upload-time = "2025-06-17T05:04:43.858Z" }, + { url = "https://files.pythonhosted.org/packages/1d/2a/7dd3d207ec669cacc1f186fd856a0f61dbc255d24f6fdc1a6715d6051b0f/openai-1.109.1-py3-none-any.whl", hash = "sha256:6bcaf57086cf59159b8e27447e4e7dd019db5d29a438072fbd49c290c7e65315", size = 948627, upload-time = "2025-09-24T13:00:50.754Z" }, ] [[package]] @@ -2237,7 +2348,7 @@ wheels = [ [[package]] name = "pydantic" -version = "2.11.7" +version = "2.11.9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types" }, @@ -2245,9 +2356,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 788350, upload-time = "2025-06-14T08:33:17.137Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ff/5d/09a551ba512d7ca404d785072700d3f6727a02f6f3c24ecfd081c7cf0aa8/pydantic-2.11.9.tar.gz", hash = "sha256:6b8ffda597a14812a7975c90b82a8a2e777d9257aba3453f973acd3c032a18e2", size = 788495, upload-time = "2025-09-13T11:26:39.325Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b", size = 444782, upload-time = "2025-06-14T08:33:14.905Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d3/108f2006987c58e76691d5ae5d200dd3e0f532cb4e5fa3560751c3a1feba/pydantic-2.11.9-py3-none-any.whl", hash = "sha256:c42dd626f5cfc1c6950ce6205ea58c93efa406da65f479dcb4029d5934857da2", size = 444855, upload-time = "2025-09-13T11:26:36.909Z" }, ] [[package]] @@ -2392,6 +2503,11 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d9/c3/0bd11992072e6a1c513b16500a5d07f91a24017c5909b02c72c62d7ad024/python_jose-3.5.0-py2.py3-none-any.whl", hash = "sha256:abd1202f23d34dfad2c3d28cb8617b90acf34132c7afd60abd0b0b7d3cb55771", size = 34624, upload-time = "2025-05-28T17:31:52.802Z" }, ] +[package.optional-dependencies] +cryptography = [ + { name = "cryptography" }, +] + [[package]] name = "python-multipart" version = "0.0.20"