diff --git a/packages/sample-app/README.md b/packages/sample-app/README.md index 4c29bd6941..0367c0f643 100644 --- a/packages/sample-app/README.md +++ b/packages/sample-app/README.md @@ -1,3 +1,19 @@ # sample-app -Project description here. +Examples for using Traceloop OpenLLMetry instrumentation with different LLM providers. + +## Aleph Alpha Tracing + +This example demonstrates how to trace an Aleph Alpha completion request using OpenTelemetry. + +### Prerequisites + +- Python 3.10 or later +- An Aleph Alpha API key + +### Setup + +From the `packages/sample-app` directory, install the dependencies: + +```bash +uv sync \ No newline at end of file diff --git a/packages/sample-app/pyproject.toml b/packages/sample-app/pyproject.toml index fe7b26742d..0ce84604ba 100644 --- a/packages/sample-app/pyproject.toml +++ b/packages/sample-app/pyproject.toml @@ -64,6 +64,8 @@ dependencies = [ "opentelemetry-instrumentation-anthropic", "opentelemetry-instrumentation-bedrock", "opentelemetry-instrumentation-voyageai", + "aleph-alpha-client", + "opentelemetry-instrumentation-alephalpha", "traceloop-sdk", ] @@ -71,6 +73,7 @@ dependencies = [ constraint-dependencies = ["urllib3>=2.6.3", "langgraph-checkpoint>=4.0.0", "pip>=25.3"] [tool.uv.sources] +opentelemetry-instrumentation-alephalpha = { path = "../opentelemetry-instrumentation-alephalpha", editable = true } opentelemetry-instrumentation-openai = { path = "../opentelemetry-instrumentation-openai", editable = true } opentelemetry-instrumentation-haystack = { path = "../opentelemetry-instrumentation-haystack", editable = true } opentelemetry-instrumentation-pinecone = { path = "../opentelemetry-instrumentation-pinecone", editable = true } diff --git a/packages/sample-app/sample_app/alephalpha.py b/packages/sample-app/sample_app/alephalpha.py new file mode 100644 index 0000000000..ebb1f77bce --- /dev/null +++ b/packages/sample-app/sample_app/alephalpha.py @@ -0,0 +1,44 @@ +import os + +import aleph_alpha_client +from aleph_alpha_client import CompletionRequest, Prompt +from opentelemetry.instrumentation.alephalpha import AlephAlphaInstrumentor + + +# Enable OpenTelemetry instrumentation. +AlephAlphaInstrumentor().instrument() + + +def main(): + # Create the Aleph Alpha client using the API key. + client = aleph_alpha_client.Client( + token=os.environ["ALEPH_ALPHA_API_KEY"] + ) + + # Create a simple prompt. + prompt = Prompt.from_text( + "Explain OpenTelemetry in one sentence." + ) + + # Create the completion request. + request = CompletionRequest( + prompt=prompt, + maximum_tokens=100, + ) + + # Make the LLM call. + response = client.complete( + request, + model="luminous-base", + ) + + # Display the response. + print(response.completions[0].completion) + + +if __name__ == "__main__": + main() + + + + diff --git a/packages/sample-app/uv.lock b/packages/sample-app/uv.lock index 8ca23664b5..bcd711d300 100644 --- a/packages/sample-app/uv.lock +++ b/packages/sample-app/uv.lock @@ -92,6 +92,18 @@ boto3 = [ { name = "boto3" }, ] +[[package]] +name = "aiodns" +version = "4.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycares" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/22/a2d928e0e42baad0471d12ec44c71152ac870486e8298dddb2893b888c29/aiodns-4.0.4.tar.gz", hash = "sha256:cb10e0c0d2591636716ad2fe402e977c16d71bdaf76bb8cb49e8a6633596f736", size = 29918, upload-time = "2026-05-20T01:54:15.557Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/70/72e4ab117425ccdc4d10bd523a94c1baa051a15586057d64a4c6888f9e3f/aiodns-4.0.4-py3-none-any.whl", hash = "sha256:c24dd605bac70a1676ce503f967a98483ff163507198557d8e9db16267e6cfd2", size = 12696, upload-time = "2026-05-20T01:54:14.134Z" }, +] + [[package]] name = "aiofiles" version = "25.1.0" @@ -179,6 +191,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d9/b7/76175c7cb4eb73d91ad63c34e29fc4f77c9386bba4a65b53ba8e05ee3c39/aiohttp-3.13.3-cp312-cp312-win_amd64.whl", hash = "sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57", size = 455407, upload-time = "2026-01-03T17:30:44.195Z" }, ] +[[package]] +name = "aiohttp-retry" +version = "2.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/61/ebda4d8e3d8cfa1fd3db0fb428db2dd7461d5742cea35178277ad180b033/aiohttp_retry-2.9.1.tar.gz", hash = "sha256:8eb75e904ed4ee5c2ec242fefe85bf04240f685391c4879d8f541d6028ff01f1", size = 13608, upload-time = "2024-11-06T10:44:54.574Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/99/84ba7273339d0f3dfa57901b846489d2e5c2cd731470167757f1935fffbd/aiohttp_retry-2.9.1-py3-none-any.whl", hash = "sha256:66d2759d1921838256a05a3f80ad7e724936f083e35be5abb5e16eed6be6dc54", size = 9981, upload-time = "2024-11-06T10:44:52.917Z" }, +] + [[package]] name = "aioitertools" version = "0.13.0" @@ -219,6 +243,29 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/00/b7/e3bf5133d697a08128598c8d0abc5e16377b51465a33756de24fa7dee953/aiosqlite-0.22.1-py3-none-any.whl", hash = "sha256:21c002eb13823fad740196c5a2e9d8e62f6243bd9e7e4a1f87fb5e44ecb4fceb", size = 17405, upload-time = "2025-12-23T19:25:42.139Z" }, ] +[[package]] +name = "aleph-alpha-client" +version = "11.5.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiodns" }, + { name = "aiohttp" }, + { name = "aiohttp-retry" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pydantic" }, + { name = "python-liquid" }, + { name = "requests" }, + { name = "tokenizers" }, + { name = "tqdm" }, + { name = "typing-extensions" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/6e/77d8264bbf774b343c4c6b3f7b40e06b9e63a02e3010d73f77236f1ee0bb/aleph_alpha_client-11.5.1.tar.gz", hash = "sha256:5899c6478bae9dfb7c4a5379fe90ae580be56f5b346fd21e968995485ce5cd7b", size = 53874, upload-time = "2026-01-30T09:04:46.619Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/03/a2591e54b01f8646b02cee190d3bc3dcfbd073960f6b38824e30d45cb408/aleph_alpha_client-11.5.1-py3-none-any.whl", hash = "sha256:5a7dc5c74e34161bf94cfb1a146cd1d101b8bd7da30d33b835dd85c3d6f73e76", size = 45606, upload-time = "2026-01-30T09:04:45.18Z" }, +] + [[package]] name = "annotated-types" version = "0.7.0" @@ -313,6 +360,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9e/43/53afb8ba17218f19b77c7834128566c5bbb100a0ad9ba2e8e89d089d7079/autopep8-2.3.2-py2.py3-none-any.whl", hash = "sha256:ce8ad498672c845a0c3de2629c15b635ec2b05ef8177a6e7c91c74f3e9b51128", size = 45807, upload-time = "2025-01-14T14:46:15.466Z" }, ] +[[package]] +name = "babel" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, +] + [[package]] name = "backoff" version = "2.2.1" @@ -3707,7 +3763,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-agno" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-agno" } dependencies = [ { name = "opentelemetry-api" }, @@ -3747,7 +3803,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-alephalpha" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-alephalpha" } dependencies = [ { name = "opentelemetry-api" }, @@ -3785,7 +3841,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-anthropic" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-anthropic" } dependencies = [ { name = "opentelemetry-api" }, @@ -3823,7 +3879,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-bedrock" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-bedrock" } dependencies = [ { name = "opentelemetry-api" }, @@ -3859,7 +3915,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-chromadb" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-chromadb" } dependencies = [ { name = "opentelemetry-api" }, @@ -3894,7 +3950,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-cohere" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-cohere" } dependencies = [ { name = "opentelemetry-api" }, @@ -3932,7 +3988,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-crewai" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-crewai" } dependencies = [ { name = "opentelemetry-api" }, @@ -3968,7 +4024,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-google-generativeai" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-google-generativeai" } dependencies = [ { name = "opentelemetry-api" }, @@ -4005,7 +4061,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-groq" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-groq" } dependencies = [ { name = "opentelemetry-api" }, @@ -4043,7 +4099,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-haystack" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-haystack" } dependencies = [ { name = "opentelemetry-api" }, @@ -4080,7 +4136,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-lancedb" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-lancedb" } dependencies = [ { name = "opentelemetry-api" }, @@ -4120,7 +4176,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-langchain" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-langchain" } dependencies = [ { name = "opentelemetry-api" }, @@ -4174,7 +4230,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-litellm" -version = "0.1.0" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-litellm" } dependencies = [ { name = "opentelemetry-api" }, @@ -4212,7 +4268,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-llamaindex" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-llamaindex" } dependencies = [ { name = "inflection" }, @@ -4276,7 +4332,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-marqo" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-marqo" } dependencies = [ { name = "opentelemetry-api" }, @@ -4314,7 +4370,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-mcp" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-mcp" } dependencies = [ { name = "opentelemetry-api" }, @@ -4354,7 +4410,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-milvus" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-milvus" } dependencies = [ { name = "opentelemetry-api" }, @@ -4390,7 +4446,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-mistralai" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-mistralai" } dependencies = [ { name = "opentelemetry-api" }, @@ -4427,7 +4483,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-ollama" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-ollama" } dependencies = [ { name = "opentelemetry-api" }, @@ -4465,7 +4521,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-openai" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-openai" } dependencies = [ { name = "opentelemetry-api" }, @@ -4502,7 +4558,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-openai-agents" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-openai-agents" } dependencies = [ { name = "opentelemetry-api" }, @@ -4541,7 +4597,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-pinecone" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-pinecone" } dependencies = [ { name = "opentelemetry-api" }, @@ -4580,7 +4636,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-qdrant" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-qdrant" } dependencies = [ { name = "opentelemetry-api" }, @@ -4628,7 +4684,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-replicate" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-replicate" } dependencies = [ { name = "opentelemetry-api" }, @@ -4680,7 +4736,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-sagemaker" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-sagemaker" } dependencies = [ { name = "opentelemetry-api" }, @@ -4745,7 +4801,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-together" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-together" } dependencies = [ { name = "opentelemetry-api" }, @@ -4783,7 +4839,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-transformers" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-transformers" } dependencies = [ { name = "opentelemetry-api" }, @@ -4830,7 +4886,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-vertexai" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-vertexai" } dependencies = [ { name = "opentelemetry-api" }, @@ -4868,7 +4924,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-voyageai" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-voyageai" } dependencies = [ { name = "opentelemetry-api" }, @@ -4906,7 +4962,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-watsonx" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-watsonx" } dependencies = [ { name = "opentelemetry-api" }, @@ -4944,7 +5000,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-weaviate" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-weaviate" } dependencies = [ { name = "opentelemetry-api" }, @@ -4983,7 +5039,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-writer" -version = "0.62.1" +version = "0.62.3" source = { editable = "../opentelemetry-instrumentation-writer" } dependencies = [ { name = "opentelemetry-api" }, @@ -5720,6 +5776,53 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ee/2b/e18ee7c5ee508a82897f021c1981533eca2940b5f072fc6ed0906c03a7a7/pybase64-1.4.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:debf737e09b8bf832ba86f5ecc3d3dbd0e3021d6cd86ba4abe962d6a5a77adb3", size = 36134, upload-time = "2025-12-06T13:26:47.35Z" }, ] +[[package]] +name = "pycares" +version = "5.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/a0/9c823651872e6a0face3f0311de2a40c8bbcb9c8dcb15680bd019ac56ac7/pycares-5.0.1.tar.gz", hash = "sha256:5a3c249c830432631439815f9a818463416f2a8cbdb1e988e78757de9ae75081", size = 652222, upload-time = "2026-01-01T12:37:00.604Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/d6/0c6b03ca9456682a582b52a9525664006b2e5041753a83a238209c705ea0/pycares-5.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:adc592534a10fe24fd1a801173c46769f75b97c440c9162f5d402ee1ba3eaf51", size = 136174, upload-time = "2026-01-01T12:34:57.053Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4a/fb5ce224458033494de5ce4302281d70276c4700a2d130b05f8f033e6640/pycares-5.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8848bbea6b5c2a0f7c9d0231ee455c3ce976c5c85904e014b2e9aa636a34140e", size = 130956, upload-time = "2026-01-01T12:34:58.543Z" }, + { url = "https://files.pythonhosted.org/packages/a3/9a/00a752e86bf4e2eb3bf0c6607ba3500c4d72fd1d2b55c59981a56f6e818e/pycares-5.0.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5003cbbae0a943f49089cc149996c3d078cef482971d834535032d53558f4d48", size = 220639, upload-time = "2026-01-01T12:34:59.781Z" }, + { url = "https://files.pythonhosted.org/packages/dd/8e/bb01efa0367230ff4876b19080aea7b41ae06ef0f33b5413037c0bd5b946/pycares-5.0.1-cp310-cp310-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cc0cdeadb2892e7f0ab30b6a288a357441c21dcff2ce16e91fccbc9fae9d1e2a", size = 252214, upload-time = "2026-01-01T12:35:01.205Z" }, + { url = "https://files.pythonhosted.org/packages/92/ee/11cf3d9b133874b7724562fea4a28c735fbfeede01b10748d0adf64f38ec/pycares-5.0.1-cp310-cp310-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:faa093af3bea365947325ec23ed24efe81dcb0efc1be7e19a36ba37108945237", size = 239089, upload-time = "2026-01-01T12:35:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/84/71/138c92209df02e30bf00819ee1a25c495bceacdfeb72e3fe5575fc974129/pycares-5.0.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dedd6d41bd09dbed7eeea84a30b4b6fd1cacf9523a3047e088b5e692cff13d84", size = 222909, upload-time = "2026-01-01T12:35:03.941Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1c/2d2ade510564abad2b47a9aa451d81ae503bddf4e0831097346aaa5fffe7/pycares-5.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d3eb5e6ba290efd8b543a2cb77ad938c3494250e6e0302ee2aa55c06bbe153cd", size = 223515, upload-time = "2026-01-01T12:35:05.126Z" }, + { url = "https://files.pythonhosted.org/packages/37/9f/f1389f7fcec9f7e57c409a39d3dd8c5a8e6ad82b50ae95a2253e538a0eca/pycares-5.0.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:58634f83992c81f438987b572d371825dae187d3a09d6e213edbe71fbb4ba18c", size = 251670, upload-time = "2026-01-01T12:35:06.425Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1e/e98efb49c11070dc41c32b1b5a2e1438431656c361d789efda35ccd9c9a6/pycares-5.0.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:fe9ce4361809903261c4b055284ba91d94adedfd2202e0257920b9085d505e37", size = 237746, upload-time = "2026-01-01T12:35:07.372Z" }, + { url = "https://files.pythonhosted.org/packages/e6/e5/47e75c421d8fb6c7de4bc020fda10401b0d7aa88e77dbb3c3606391d844e/pycares-5.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:965ec648814829788233155ef3f6d4d7e7d6183460d10f9c71859c504f8f488b", size = 222650, upload-time = "2026-01-01T12:35:08.284Z" }, + { url = "https://files.pythonhosted.org/packages/1f/ae/abb03c2620c4cc0e2eca0b42c751522d22087fe00d5a027c68c1ca0b5603/pycares-5.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:171182baa32951fffd1568ba9b934a76f36ed86c6248855ec6f82bbb3954d604", size = 117440, upload-time = "2026-01-01T12:35:09.286Z" }, + { url = "https://files.pythonhosted.org/packages/05/d3/7e005c6b23c1f6f48402b3b41d1ba2b129c593bb13993d7e087e577b8389/pycares-5.0.1-cp310-cp310-win_arm64.whl", hash = "sha256:48ac858124728b8bac0591aa8361c683064fefe35794c29b3a954818c59f1e9b", size = 108921, upload-time = "2026-01-01T12:35:10.417Z" }, + { url = "https://files.pythonhosted.org/packages/87/78/43b09f4b8e5fb8a6024661b458b48987abdb39304c78117b106b10a029f1/pycares-5.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c29ca77ff9712e20787201ca8e76ad89384771c0e058a0a4f3dc05afbc4b32de", size = 136177, upload-time = "2026-01-01T12:35:11.567Z" }, + { url = "https://files.pythonhosted.org/packages/19/05/194c0e039ff52b166b50e79ff166c61f931fbca2bf94fc0dbaaf39041518/pycares-5.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f11424bf5cf6226d0b136ed47daa58434e377c61b62d0100d1de7793f8e34a72", size = 130960, upload-time = "2026-01-01T12:35:12.828Z" }, + { url = "https://files.pythonhosted.org/packages/0d/84/5fce65cc058c5ab619c0dd1370d539667235a5565da72ca77f3f741cdc70/pycares-5.0.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d765afb52d579879f5c4f005763827d3b1eb86b23139e9614e6089c9f98db017", size = 220584, upload-time = "2026-01-01T12:35:14.005Z" }, + { url = "https://files.pythonhosted.org/packages/f6/74/d82304297308f6c24a17961bf589b53eefa5f7f2724158c842c67fa0b302/pycares-5.0.1-cp311-cp311-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ea0d57ba5add4bfbcc40cbdfa92bbb8a5ef0c4c21881e26c7229d9bdc92a4533", size = 252166, upload-time = "2026-01-01T12:35:15.293Z" }, + { url = "https://files.pythonhosted.org/packages/39/a2/0ead3ba4228a490b52eb44d43514dae172c90421bb30a3659516e5b251a2/pycares-5.0.1-cp311-cp311-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ae9ec2aa3553d33e6220aeb1a05f4853fb83fce4cec3e0dea2dc970338ea47dc", size = 239085, upload-time = "2026-01-01T12:35:16.594Z" }, + { url = "https://files.pythonhosted.org/packages/26/ad/e59f173933f0e696a6afbbd63935114d1400524a72da4f2cbafc6002a398/pycares-5.0.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5c63fb2498b05e9f5670a1bf3b900c5d09343b3b6d5001a9714d593f9eb54de1", size = 222936, upload-time = "2026-01-01T12:35:17.521Z" }, + { url = "https://files.pythonhosted.org/packages/98/fa/d85bfe663a9c292efd8e699779027612c0c65ff50dc4cc9eb7a143613460/pycares-5.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:71316f7a87c15a8d32127ff01374dc2c969c37410693cc0cf6532590b7f18e7a", size = 223506, upload-time = "2026-01-01T12:35:18.535Z" }, + { url = "https://files.pythonhosted.org/packages/2a/6b/4c225a5b10a4c9f88891a20bfe363eca1b1ce7d5244b396e5683c6070998/pycares-5.0.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a2117dffbb78615bfdb41ad77b17038689e4e01c66f153649e80d268c6228b4f", size = 251633, upload-time = "2026-01-01T12:35:19.819Z" }, + { url = "https://files.pythonhosted.org/packages/26/ce/ba2349413b5197b72ec19c46e07f6be3a324f80a7b1579c7cbb1b82d6dc2/pycares-5.0.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:7d7c4f5d8b88b586ef2288142b806250020e6490b9f2bd8fd5f634a78fd20fcf", size = 237703, upload-time = "2026-01-01T12:35:20.827Z" }, + { url = "https://files.pythonhosted.org/packages/84/2f/1fd794e6fca10d9e20569113d10a4f92cc2b4242d3eb45524419a37cca6b/pycares-5.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:433b9a4b5a7e10ef8aef0b957e6cd0bfc1bb5bc730d2729f04e93c91c25979c0", size = 222622, upload-time = "2026-01-01T12:35:22.518Z" }, + { url = "https://files.pythonhosted.org/packages/c9/07/7db7977649b210092a7e02d550fcebdfa69bc995c684a3b960c88a5dc4ce/pycares-5.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:cf2699883b88713670d3f9c0a1e44ac24c70aeace9f8c6aa7f0b9f222d5b08a5", size = 117438, upload-time = "2026-01-01T12:35:23.402Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ca/f322ddaa8b3414667de8faeea944ce9d3ddfaf1455839f499a21fcea4cec/pycares-5.0.1-cp311-cp311-win_arm64.whl", hash = "sha256:9528dc11749e5e098c996475b60f879e1db5a6cb3dd0cdc747530620bb1a8941", size = 108920, upload-time = "2026-01-01T12:35:24.599Z" }, + { url = "https://files.pythonhosted.org/packages/75/67/e84ba11d3fec3bf1322c3b302c4df13c85e0a1bc48f16d65cd0f59ad9853/pycares-5.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2ee551be4f3f3ac814ac8547586c464c9035e914f5122a534d25de147fa745e1", size = 136241, upload-time = "2026-01-01T12:35:25.439Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ae/50fbb3b4e52b9f1d16a36ffabd051ef8b2106b3f0a0d1c1113904d187a9d/pycares-5.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:252d4e5a52a68f825eaa90e16b595f9baee22c760f51e286ab612c6829b96de3", size = 131069, upload-time = "2026-01-01T12:35:26.293Z" }, + { url = "https://files.pythonhosted.org/packages/0e/ea/f431599f1ac42149ea4768e516db7cdae3a503a6646319ae63ab66da1486/pycares-5.0.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8c1aa549b8c2f2e224215c793d660270778dcba9abc3b85abbc7c41eabe4f1e5", size = 221120, upload-time = "2026-01-01T12:35:27.143Z" }, + { url = "https://files.pythonhosted.org/packages/6e/4f/0a7a6c8b3a64ee5149e935c167cd8ba5d1fdd766ec03e273dbc7502f7bea/pycares-5.0.1-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:db7c9c9f16e8311998667a7488e817f8cbeedec2447bac827c71804663f1437e", size = 252228, upload-time = "2026-01-01T12:35:28.443Z" }, + { url = "https://files.pythonhosted.org/packages/49/3d/7f9fd20e97ee30c4b959f87ab26e47ddcef666e5e7717e45f2245fe9d70a/pycares-5.0.1-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b9c4c8bb69bab863f677fa166653bb872bfa5d5a742f1f30bebc2d53b6e71db", size = 239473, upload-time = "2026-01-01T12:35:29.794Z" }, + { url = "https://files.pythonhosted.org/packages/a4/d0/c67967a10abd89529cb9aded9d73f43e5de00cf21243638ef529f6757262/pycares-5.0.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:09ef90da8da3026fcba4ed223bd71e8057608d5b3fec4f5990b52ae1e8c855cc", size = 223831, upload-time = "2026-01-01T12:35:30.781Z" }, + { url = "https://files.pythonhosted.org/packages/4f/9a/94aacaf22a20b7d342c8f18bf006be57967beef6319adc668d4d86b627be/pycares-5.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ce193ebd54f4c74538b751ebb0923a9208c234ff180589d4d3cec134c001840e", size = 223963, upload-time = "2026-01-01T12:35:31.691Z" }, + { url = "https://files.pythonhosted.org/packages/e6/e1/3666aab6fc5e7d0c669b981fe0407e6a4b67e4e6a37ac429d440274663d5/pycares-5.0.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:36b9ff18ef231277f99a846feade50b417187a96f742689a9d08b9594e386de4", size = 251813, upload-time = "2026-01-01T12:35:32.918Z" }, + { url = "https://files.pythonhosted.org/packages/94/44/ddab5fbc16ad0084a827167ae8628f54c7a55ce6b743585e6f47a5dd527e/pycares-5.0.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5e40ea4a0ef0c01a02ef7f7390a58c62d237d5ad48d36bc3245e9c2ac181cc22", size = 238181, upload-time = "2026-01-01T12:35:34.078Z" }, + { url = "https://files.pythonhosted.org/packages/66/27/05467933e0e5c4e712302a2d7499797bc3029bf4d0d8ffbfe737254482b7/pycares-5.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3f323b0ddfd2c7896af6fba4f8851d34d3d13387566aa573d93330fb01cb1038", size = 223552, upload-time = "2026-01-01T12:35:35.076Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e2/14f3837e943d46ee12441fe6aaa418fdb2f698d42e179f368eaa9829744b/pycares-5.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:bdc6bcafb72a97b3cdd529fc87210e59e67feb647a7e138110656023599b84da", size = 117478, upload-time = "2026-01-01T12:35:36.133Z" }, + { url = "https://files.pythonhosted.org/packages/d3/c3/3284061f18188d5085338e1f1fd4f03d9c135657acf16f8020b9dd3be5fc/pycares-5.0.1-cp312-cp312-win_arm64.whl", hash = "sha256:f8ef4c70c1edaf022875a8f9ff6c0c064f82831225acc91aa1b4f4d389e2e03a", size = 108889, upload-time = "2026-01-01T12:35:37.135Z" }, +] + [[package]] name = "pycodestyle" version = "2.14.0" @@ -6085,6 +6188,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/51/e5/fecf13f06e5e5f67e8837d777d1bc43fac0ed2b77a676804df5c34744727/python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2", size = 15548, upload-time = "2025-10-06T04:15:17.553Z" }, ] +[[package]] +name = "python-liquid" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "importlib-resources" }, + { name = "markupsafe" }, + { name = "python-dateutil" }, + { name = "pytz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fe/87/d3517adec0b66893b0c916daaa8a393200173589f11625e3222b9627dbfe/python_liquid-2.3.3.tar.gz", hash = "sha256:a55eb6b2fc60b236f91e7f96bacf024c6c881f12419184fdd0e04a634f75a09b", size = 95736, upload-time = "2026-09-29T12:24:10.402Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/64/488caf9ce72abf09b38ba37436e985e3bff76294d7c6934a023833c3bb1d/python_liquid-2.3.3-py3-none-any.whl", hash = "sha256:eaa1ef5aa10601aef28bf731cf5941288ae416c067fe8e6e85ebd3e5fa9c6aec", size = 141692, upload-time = "2026-09-29T12:24:09.1Z" }, +] + [[package]] name = "python-multipart" version = "0.0.22" @@ -6475,6 +6594,7 @@ source = { editable = "." } dependencies = [ { name = "agno" }, { name = "aioboto3" }, + { name = "aleph-alpha-client" }, { name = "anthropic" }, { name = "boto3" }, { name = "chromadb" }, @@ -6507,6 +6627,7 @@ dependencies = [ { name = "openai" }, { name = "openai-agents" }, { name = "opentelemetry-instrumentation-agno" }, + { name = "opentelemetry-instrumentation-alephalpha" }, { name = "opentelemetry-instrumentation-anthropic" }, { name = "opentelemetry-instrumentation-bedrock" }, { name = "opentelemetry-instrumentation-crewai" }, @@ -6543,6 +6664,7 @@ dev = [ requires-dist = [ { name = "agno", specifier = ">=2.4.0,<3" }, { name = "aioboto3", specifier = ">=13.0.0,<15" }, + { name = "aleph-alpha-client" }, { name = "anthropic", specifier = ">=0.86.0,<1" }, { name = "boto3", specifier = ">=1.35.49,<2" }, { name = "chromadb", specifier = ">=1.1.0,<2" }, @@ -6575,6 +6697,7 @@ requires-dist = [ { name = "openai", specifier = ">=1.52.2,<2" }, { name = "openai-agents", specifier = ">=0.2.7,<0.3.0" }, { name = "opentelemetry-instrumentation-agno", editable = "../opentelemetry-instrumentation-agno" }, + { name = "opentelemetry-instrumentation-alephalpha", editable = "../opentelemetry-instrumentation-alephalpha" }, { name = "opentelemetry-instrumentation-anthropic", editable = "../opentelemetry-instrumentation-anthropic" }, { name = "opentelemetry-instrumentation-bedrock", editable = "../opentelemetry-instrumentation-bedrock" }, { name = "opentelemetry-instrumentation-crewai", editable = "../opentelemetry-instrumentation-crewai" }, @@ -6615,10 +6738,10 @@ resolution-markers = [ "python_full_version < '3.11'", ] dependencies = [ - { name = "joblib", marker = "python_full_version < '3.11'" }, - { name = "numpy", marker = "python_full_version < '3.11'" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "threadpoolctl", marker = "python_full_version < '3.11'" }, + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" } }, + { name = "threadpoolctl" }, ] sdist = { url = "https://files.pythonhosted.org/packages/98/c2/a7855e41c9d285dfe86dc50b250978105dce513d6e459ea66a6aeb0e1e0c/scikit_learn-1.7.2.tar.gz", hash = "sha256:20e9e49ecd130598f1ca38a1d85090e1a600147b9c02fa6f15d69cb53d968fda", size = 7193136, upload-time = "2025-09-09T08:21:29.075Z" } wheels = [ @@ -6648,10 +6771,10 @@ resolution-markers = [ "python_full_version == '3.11.*'", ] dependencies = [ - { name = "joblib", marker = "python_full_version >= '3.11'" }, - { name = "numpy", marker = "python_full_version >= '3.11'" }, - { name = "scipy", version = "1.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "threadpoolctl", marker = "python_full_version >= '3.11'" }, + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy", version = "1.17.0", source = { registry = "https://pypi.org/simple" } }, + { name = "threadpoolctl" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0e/d4/40988bf3b8e34feec1d0e6a051446b1f66225f8529b9309becaeef62b6c4/scikit_learn-1.8.0.tar.gz", hash = "sha256:9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd", size = 7335585, upload-time = "2025-12-10T07:08:53.618Z" } wheels = [ @@ -6677,7 +6800,7 @@ resolution-markers = [ "python_full_version < '3.11'", ] dependencies = [ - { name = "numpy", marker = "python_full_version < '3.11'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } wheels = [ @@ -6719,7 +6842,7 @@ resolution-markers = [ "python_full_version == '3.11.*'", ] dependencies = [ - { name = "numpy", marker = "python_full_version >= '3.11'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/56/3e/9cca699f3486ce6bc12ff46dc2031f1ec8eb9ccc9a320fdaf925f1417426/scipy-1.17.0.tar.gz", hash = "sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e", size = 30396830, upload-time = "2026-01-10T21:34:23.009Z" } wheels = [ @@ -7138,7 +7261,7 @@ wheels = [ [[package]] name = "traceloop-sdk" -version = "0.62.1" +version = "0.62.3" source = { editable = "../traceloop-sdk" } dependencies = [ { name = "aiohttp" },