diff --git a/packages/opentelemetry-instrumentation-langchain/pyproject.toml b/packages/opentelemetry-instrumentation-langchain/pyproject.toml index 1725903e45..655665ddad 100644 --- a/packages/opentelemetry-instrumentation-langchain/pyproject.toml +++ b/packages/opentelemetry-instrumentation-langchain/pyproject.toml @@ -90,5 +90,3 @@ select = ["E", "F", "W"] [tool.uv] constraint-dependencies = ["urllib3>=2.6.3", "langgraph-checkpoint>=4.0.0", "pip>=25.3"] -[tool.uv.sources] -opentelemetry-semantic-conventions-ai = { path = "../opentelemetry-semantic-conventions-ai", editable = true } diff --git a/packages/opentelemetry-instrumentation-langchain/uv.lock b/packages/opentelemetry-instrumentation-langchain/uv.lock index 00b9f109d0..05f4219e21 100644 --- a/packages/opentelemetry-instrumentation-langchain/uv.lock +++ b/packages/opentelemetry-instrumentation-langchain/uv.lock @@ -622,6 +622,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/32/6a/33d1702184d94106d3cdd7bfb788e19723206fce152e303473ca3b946c7b/greenlet-3.3.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:6f8496d434d5cb2dce025773ba5597f71f5410ae499d5dd9533e0653258cdb3d", size = 273658, upload-time = "2025-12-04T14:23:37.494Z" }, { url = "https://files.pythonhosted.org/packages/d6/b7/2b5805bbf1907c26e434f4e448cd8b696a0b71725204fa21a211ff0c04a7/greenlet-3.3.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b96dc7eef78fd404e022e165ec55327f935b9b52ff355b067eb4a0267fc1cffb", size = 574810, upload-time = "2025-12-04T14:50:04.154Z" }, { url = "https://files.pythonhosted.org/packages/94/38/343242ec12eddf3d8458c73f555c084359883d4ddc674240d9e61ec51fd6/greenlet-3.3.0-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:73631cd5cccbcfe63e3f9492aaa664d278fda0ce5c3d43aeda8e77317e38efbd", size = 586248, upload-time = "2025-12-04T14:57:39.35Z" }, + { url = "https://files.pythonhosted.org/packages/f0/d0/0ae86792fb212e4384041e0ef8e7bc66f59a54912ce407d26a966ed2914d/greenlet-3.3.0-cp310-cp310-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b299a0cb979f5d7197442dccc3aee67fce53500cd88951b7e6c35575701c980b", size = 597403, upload-time = "2025-12-04T15:07:10.831Z" }, { url = "https://files.pythonhosted.org/packages/b6/a8/15d0aa26c0036a15d2659175af00954aaaa5d0d66ba538345bd88013b4d7/greenlet-3.3.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7dee147740789a4632cace364816046e43310b59ff8fb79833ab043aefa72fd5", size = 586910, upload-time = "2025-12-04T14:25:59.705Z" }, { url = "https://files.pythonhosted.org/packages/e1/9b/68d5e3b7ccaba3907e5532cf8b9bf16f9ef5056a008f195a367db0ff32db/greenlet-3.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:39b28e339fc3c348427560494e28d8a6f3561c8d2bcf7d706e1c624ed8d822b9", size = 1547206, upload-time = "2025-12-04T15:04:21.027Z" }, { url = "https://files.pythonhosted.org/packages/66/bd/e3086ccedc61e49f91e2cfb5ffad9d8d62e5dc85e512a6200f096875b60c/greenlet-3.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b3c374782c2935cc63b2a27ba8708471de4ad1abaa862ffdb1ef45a643ddbb7d", size = 1613359, upload-time = "2025-12-04T14:27:26.548Z" }, @@ -629,6 +630,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1f/cb/48e964c452ca2b92175a9b2dca037a553036cb053ba69e284650ce755f13/greenlet-3.3.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e29f3018580e8412d6aaf5641bb7745d38c85228dacf51a73bd4e26ddf2a6a8e", size = 274908, upload-time = "2025-12-04T14:23:26.435Z" }, { url = "https://files.pythonhosted.org/packages/28/da/38d7bff4d0277b594ec557f479d65272a893f1f2a716cad91efeb8680953/greenlet-3.3.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a687205fb22794e838f947e2194c0566d3812966b41c78709554aa883183fb62", size = 577113, upload-time = "2025-12-04T14:50:05.493Z" }, { url = "https://files.pythonhosted.org/packages/3c/f2/89c5eb0faddc3ff014f1c04467d67dee0d1d334ab81fadbf3744847f8a8a/greenlet-3.3.0-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4243050a88ba61842186cb9e63c7dfa677ec146160b0efd73b855a3d9c7fcf32", size = 590338, upload-time = "2025-12-04T14:57:41.136Z" }, + { url = "https://files.pythonhosted.org/packages/80/d7/db0a5085035d05134f8c089643da2b44cc9b80647c39e93129c5ef170d8f/greenlet-3.3.0-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:670d0f94cd302d81796e37299bcd04b95d62403883b24225c6b5271466612f45", size = 601098, upload-time = "2025-12-04T15:07:11.898Z" }, { url = "https://files.pythonhosted.org/packages/dc/a6/e959a127b630a58e23529972dbc868c107f9d583b5a9f878fb858c46bc1a/greenlet-3.3.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6cb3a8ec3db4a3b0eb8a3c25436c2d49e3505821802074969db017b87bc6a948", size = 590206, upload-time = "2025-12-04T14:26:01.254Z" }, { url = "https://files.pythonhosted.org/packages/48/60/29035719feb91798693023608447283b266b12efc576ed013dd9442364bb/greenlet-3.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2de5a0b09eab81fc6a382791b995b1ccf2b172a9fec934747a7a23d2ff291794", size = 1550668, upload-time = "2025-12-04T15:04:22.439Z" }, { url = "https://files.pythonhosted.org/packages/0a/5f/783a23754b691bfa86bd72c3033aa107490deac9b2ef190837b860996c9f/greenlet-3.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4449a736606bd30f27f8e1ff4678ee193bc47f6ca810d705981cfffd6ce0d8c5", size = 1615483, upload-time = "2025-12-04T14:27:28.083Z" }, @@ -636,6 +638,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f8/0a/a3871375c7b9727edaeeea994bfff7c63ff7804c9829c19309ba2e058807/greenlet-3.3.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:b01548f6e0b9e9784a2c99c5651e5dc89ffcbe870bc5fb2e5ef864e9cc6b5dcb", size = 276379, upload-time = "2025-12-04T14:23:30.498Z" }, { url = "https://files.pythonhosted.org/packages/43/ab/7ebfe34dce8b87be0d11dae91acbf76f7b8246bf9d6b319c741f99fa59c6/greenlet-3.3.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:349345b770dc88f81506c6861d22a6ccd422207829d2c854ae2af8025af303e3", size = 597294, upload-time = "2025-12-04T14:50:06.847Z" }, { url = "https://files.pythonhosted.org/packages/a4/39/f1c8da50024feecd0793dbd5e08f526809b8ab5609224a2da40aad3a7641/greenlet-3.3.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e8e18ed6995e9e2c0b4ed264d2cf89260ab3ac7e13555b8032b25a74c6d18655", size = 607742, upload-time = "2025-12-04T14:57:42.349Z" }, + { url = "https://files.pythonhosted.org/packages/77/cb/43692bcd5f7a0da6ec0ec6d58ee7cddb606d055ce94a62ac9b1aa481e969/greenlet-3.3.0-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c024b1e5696626890038e34f76140ed1daf858e37496d33f2af57f06189e70d7", size = 622297, upload-time = "2025-12-04T15:07:13.552Z" }, { url = "https://files.pythonhosted.org/packages/75/b0/6bde0b1011a60782108c01de5913c588cf51a839174538d266de15e4bf4d/greenlet-3.3.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:047ab3df20ede6a57c35c14bf5200fcf04039d50f908270d3f9a7a82064f543b", size = 609885, upload-time = "2025-12-04T14:26:02.368Z" }, { url = "https://files.pythonhosted.org/packages/49/0e/49b46ac39f931f59f987b7cd9f34bfec8ef81d2a1e6e00682f55be5de9f4/greenlet-3.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2d9ad37fc657b1102ec880e637cccf20191581f75c64087a549e66c57e1ceb53", size = 1567424, upload-time = "2025-12-04T15:04:23.757Z" }, { url = "https://files.pythonhosted.org/packages/05/f5/49a9ac2dff7f10091935def9165c90236d8f175afb27cbed38fb1d61ab6b/greenlet-3.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83cd0e36932e0e7f36a64b732a6f60c2fc2df28c351bae79fbaf4f8092fe7614", size = 1636017, upload-time = "2025-12-04T14:27:29.688Z" }, @@ -643,6 +646,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/02/2f/28592176381b9ab2cafa12829ba7b472d177f3acc35d8fbcf3673d966fff/greenlet-3.3.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:a1e41a81c7e2825822f4e068c48cb2196002362619e2d70b148f20a831c00739", size = 275140, upload-time = "2025-12-04T14:23:01.282Z" }, { url = "https://files.pythonhosted.org/packages/2c/80/fbe937bf81e9fca98c981fe499e59a3f45df2a04da0baa5c2be0dca0d329/greenlet-3.3.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9f515a47d02da4d30caaa85b69474cec77b7929b2e936ff7fb853d42f4bf8808", size = 599219, upload-time = "2025-12-04T14:50:08.309Z" }, { url = "https://files.pythonhosted.org/packages/c2/ff/7c985128f0514271b8268476af89aee6866df5eec04ac17dcfbc676213df/greenlet-3.3.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7d2d9fd66bfadf230b385fdc90426fcd6eb64db54b40c495b72ac0feb5766c54", size = 610211, upload-time = "2025-12-04T14:57:43.968Z" }, + { url = "https://files.pythonhosted.org/packages/79/07/c47a82d881319ec18a4510bb30463ed6891f2ad2c1901ed5ec23d3de351f/greenlet-3.3.0-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30a6e28487a790417d036088b3bcb3f3ac7d8babaa7d0139edbaddebf3af9492", size = 624311, upload-time = "2025-12-04T15:07:14.697Z" }, { url = "https://files.pythonhosted.org/packages/fd/8e/424b8c6e78bd9837d14ff7df01a9829fc883ba2ab4ea787d4f848435f23f/greenlet-3.3.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:087ea5e004437321508a8d6f20efc4cfec5e3c30118e1417ea96ed1d93950527", size = 612833, upload-time = "2025-12-04T14:26:03.669Z" }, { url = "https://files.pythonhosted.org/packages/b5/ba/56699ff9b7c76ca12f1cdc27a886d0f81f2189c3455ff9f65246780f713d/greenlet-3.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ab97cf74045343f6c60a39913fa59710e4bd26a536ce7ab2397adf8b27e67c39", size = 1567256, upload-time = "2025-12-04T15:04:25.276Z" }, { url = "https://files.pythonhosted.org/packages/1e/37/f31136132967982d698c71a281a8901daf1a8fbab935dce7c0cf15f942cc/greenlet-3.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5375d2e23184629112ca1ea89a53389dddbffcf417dad40125713d88eb5f96e8", size = 1636483, upload-time = "2025-12-04T14:27:30.804Z" }, @@ -650,6 +654,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d7/7c/f0a6d0ede2c7bf092d00bc83ad5bafb7e6ec9b4aab2fbdfa6f134dc73327/greenlet-3.3.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:60c2ef0f578afb3c8d92ea07ad327f9a062547137afe91f38408f08aacab667f", size = 275671, upload-time = "2025-12-04T14:23:05.267Z" }, { url = "https://files.pythonhosted.org/packages/44/06/dac639ae1a50f5969d82d2e3dd9767d30d6dbdbab0e1a54010c8fe90263c/greenlet-3.3.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a5d554d0712ba1de0a6c94c640f7aeba3f85b3a6e1f2899c11c2c0428da9365", size = 646360, upload-time = "2025-12-04T14:50:10.026Z" }, { url = "https://files.pythonhosted.org/packages/e0/94/0fb76fe6c5369fba9bf98529ada6f4c3a1adf19e406a47332245ef0eb357/greenlet-3.3.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3a898b1e9c5f7307ebbde4102908e6cbfcb9ea16284a3abe15cab996bee8b9b3", size = 658160, upload-time = "2025-12-04T14:57:45.41Z" }, + { url = "https://files.pythonhosted.org/packages/93/79/d2c70cae6e823fac36c3bbc9077962105052b7ef81db2f01ec3b9bf17e2b/greenlet-3.3.0-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:dcd2bdbd444ff340e8d6bdf54d2f206ccddbb3ccfdcd3c25bf4afaa7b8f0cf45", size = 671388, upload-time = "2025-12-04T15:07:15.789Z" }, { url = "https://files.pythonhosted.org/packages/b8/14/bab308fc2c1b5228c3224ec2bf928ce2e4d21d8046c161e44a2012b5203e/greenlet-3.3.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5773edda4dc00e173820722711d043799d3adb4f01731f40619e07ea2750b955", size = 660166, upload-time = "2025-12-04T14:26:05.099Z" }, { url = "https://files.pythonhosted.org/packages/4b/d2/91465d39164eaa0085177f61983d80ffe746c5a1860f009811d498e7259c/greenlet-3.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ac0549373982b36d5fd5d30beb8a7a33ee541ff98d2b502714a09f1169f31b55", size = 1615193, upload-time = "2025-12-04T15:04:27.041Z" }, { url = "https://files.pythonhosted.org/packages/42/1b/83d110a37044b92423084d52d5d5a3b3a73cafb51b547e6d7366ff62eff1/greenlet-3.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d198d2d977460358c3b3a4dc844f875d1adb33817f0613f663a656f463764ccc", size = 1683653, upload-time = "2025-12-04T14:27:32.366Z" }, @@ -657,6 +662,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a0/66/bd6317bc5932accf351fc19f177ffba53712a202f9df10587da8df257c7e/greenlet-3.3.0-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:d6ed6f85fae6cdfdb9ce04c9bf7a08d666cfcfb914e7d006f44f840b46741931", size = 282638, upload-time = "2025-12-04T14:25:20.941Z" }, { url = "https://files.pythonhosted.org/packages/30/cf/cc81cb030b40e738d6e69502ccbd0dd1bced0588e958f9e757945de24404/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9125050fcf24554e69c4cacb086b87b3b55dc395a8b3ebe6487b045b2614388", size = 651145, upload-time = "2025-12-04T14:50:11.039Z" }, { url = "https://files.pythonhosted.org/packages/9c/ea/1020037b5ecfe95ca7df8d8549959baceb8186031da83d5ecceff8b08cd2/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:87e63ccfa13c0a0f6234ed0add552af24cc67dd886731f2261e46e241608bee3", size = 654236, upload-time = "2025-12-04T14:57:47.007Z" }, + { url = "https://files.pythonhosted.org/packages/69/cc/1e4bae2e45ca2fa55299f4e85854606a78ecc37fead20d69322f96000504/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2662433acbca297c9153a4023fe2161c8dcfdcc91f10433171cf7e7d94ba2221", size = 662506, upload-time = "2025-12-04T15:07:16.906Z" }, { url = "https://files.pythonhosted.org/packages/57/b9/f8025d71a6085c441a7eaff0fd928bbb275a6633773667023d19179fe815/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3c6e9b9c1527a78520357de498b0e709fb9e2f49c3a513afd5a249007261911b", size = 653783, upload-time = "2025-12-04T14:26:06.225Z" }, { url = "https://files.pythonhosted.org/packages/f6/c7/876a8c7a7485d5d6b5c6821201d542ef28be645aa024cfe1145b35c120c1/greenlet-3.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:286d093f95ec98fdd92fcb955003b8a3d054b4e2cab3e2707a5039e7b50520fd", size = 1614857, upload-time = "2025-12-04T15:04:28.484Z" }, { url = "https://files.pythonhosted.org/packages/4f/dc/041be1dff9f23dac5f48a43323cd0789cb798342011c19a248d9c9335536/greenlet-3.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c10513330af5b8ae16f023e8ddbfb486ab355d04467c4679c5cfe4659975dd9", size = 1676034, upload-time = "2025-12-04T14:27:33.531Z" }, @@ -1508,7 +1514,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-langchain" -version = "0.53.2" +version = "0.53.3" source = { editable = "." } dependencies = [ { name = "opentelemetry-api" }, @@ -1561,7 +1567,7 @@ requires-dist = [ { name = "opentelemetry-api", specifier = ">=1.38.0,<2" }, { name = "opentelemetry-instrumentation", specifier = ">=0.59b0" }, { name = "opentelemetry-semantic-conventions", specifier = ">=0.59b0" }, - { name = "opentelemetry-semantic-conventions-ai", editable = "../opentelemetry-semantic-conventions-ai" }, + { name = "opentelemetry-semantic-conventions-ai", specifier = ">=0.4.16,<0.5.0" }, ] provides-extras = ["instruments"] @@ -1643,24 +1649,14 @@ wheels = [ [[package]] name = "opentelemetry-semantic-conventions-ai" version = "0.4.16" -source = { editable = "../opentelemetry-semantic-conventions-ai" } +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-sdk" }, { name = "opentelemetry-semantic-conventions" }, ] - -[package.metadata] -requires-dist = [ - { name = "opentelemetry-sdk", specifier = ">=1.38.0,<2" }, - { name = "opentelemetry-semantic-conventions", specifier = ">=0.59b0" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "autopep8", specifier = ">=2.2.0,<3" }, - { name = "pytest", specifier = ">=8.2.2,<9" }, - { name = "pytest-sugar", specifier = "==1.0.0" }, - { name = "ruff", specifier = ">=0.4.0" }, +sdist = { url = "https://files.pythonhosted.org/packages/37/44/fda3c60e77548224ffd86b62aab5a58534e1d32f74d2ccd50ef58aade8d3/opentelemetry_semantic_conventions_ai-0.4.16.tar.gz", hash = "sha256:572eb878d8b81e50f1e53d2a5c1b441e7d34918ee01c846ff62485204d660c22", size = 19071, upload-time = "2026-03-19T15:29:35.357Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/98/e8bf804f2351603b508abaa624096ba279f1d62c3104e7020b45ae938d54/opentelemetry_semantic_conventions_ai-0.4.16-py3-none-any.whl", hash = "sha256:d5ddd0df387b969da82e3e0a8b7415e91d2fc7ce13de7efc2690a7939932b2e0", size = 6495, upload-time = "2026-03-19T15:29:33.974Z" }, ] [[package]] diff --git a/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/__init__.py b/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/__init__.py index 1bc3fec034..6a6298f6fa 100644 --- a/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/__init__.py +++ b/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/__init__.py @@ -140,6 +140,81 @@ class SpanAttributes: GEN_AI_WATSONX_MIN_NEW_TOKENS = "llm.watsonx.min_new_tokens" GEN_AI_WATSONX_REPETITION_PENALTY = "llm.watsonx.repetition_penalty" + # ----------------------------------------------------------------------- + # Legacy LLM_* aliases (old names with original string values) + # These constants were removed or renamed in v0.5.0. + # Kept so non-migrated instrumentation packages continue to work. + # TODO: Remove once all instrumentation packages are migrated. + # ----------------------------------------------------------------------- + + # Removed from SpanAttributes in v0.5.0 (now in upstream OTel gen_ai_attributes) + # TODO: migrate each to its GenAIAttributes.GEN_AI_* counterpart + LLM_SYSTEM = "gen_ai.system" + LLM_REQUEST_MODEL = "gen_ai.request.model" + LLM_REQUEST_MAX_TOKENS = "gen_ai.request.max_tokens" + LLM_REQUEST_TEMPERATURE = "gen_ai.request.temperature" + LLM_REQUEST_TOP_P = "gen_ai.request.top_p" + LLM_PROMPTS = "gen_ai.prompt" + LLM_COMPLETIONS = "gen_ai.completion" + LLM_RESPONSE_MODEL = "gen_ai.response.model" + LLM_USAGE_COMPLETION_TOKENS = "gen_ai.usage.completion_tokens" + LLM_USAGE_PROMPT_TOKENS = "gen_ai.usage.prompt_tokens" + LLM_TOKEN_TYPE = "gen_ai.token.type" + LLM_OPENAI_RESPONSE_SYSTEM_FINGERPRINT = "gen_ai.openai.system_fingerprint" + LLM_FREQUENCY_PENALTY = "llm.frequency_penalty" + LLM_PRESENCE_PENALTY = "llm.presence_penalty" + LLM_TOP_K = "llm.top_k" + LLM_CHAT_STOP_SEQUENCES = "llm.chat.stop_sequences" + LLM_REQUEST_FUNCTIONS = "llm.request.functions" + LLM_REQUEST_TYPE = "llm.request.type" + + # Renamed LLM_* -> GEN_AI_* in v0.5.0 (name AND value changed: llm.* -> gen_ai.*) + # TODO: migrate each to its SpanAttributes.GEN_AI_* counterpart + LLM_USAGE_TOTAL_TOKENS = "llm.usage.total_tokens" + LLM_USAGE_TOKEN_TYPE = "llm.usage.token_type" + LLM_USER = "llm.user" + LLM_HEADERS = "llm.headers" + LLM_IS_STREAMING = "llm.is_streaming" + LLM_REQUEST_REPETITION_PENALTY = "llm.request.repetition_penalty" + LLM_RESPONSE_FINISH_REASON = "llm.response.finish_reason" + LLM_RESPONSE_STOP_REASON = "llm.response.stop_reason" + LLM_CONTENT_COMPLETION_CHUNK = "llm.content.completion.chunk" + LLM_REQUEST_REASONING_EFFORT = "llm.request.reasoning_effort" + LLM_USAGE_REASONING_TOKENS = "llm.usage.reasoning_tokens" + + # Renamed LLM_* -> GEN_AI_* in v0.5.0 (name changed, value UNCHANGED) + # TODO: migrate each to its SpanAttributes.GEN_AI_* counterpart + LLM_REQUEST_STRUCTURED_OUTPUT_SCHEMA = "gen_ai.request.structured_output_schema" + LLM_REQUEST_REASONING_SUMMARY = "gen_ai.request.reasoning_summary" + LLM_RESPONSE_REASONING_EFFORT = "gen_ai.response.reasoning_effort" + + # OpenAI (renamed LLM_OPENAI_* -> GEN_AI_OPENAI_* in v0.5.0, value unchanged) + # TODO: migrate each to its SpanAttributes.GEN_AI_OPENAI_* counterpart + LLM_OPENAI_API_BASE = "gen_ai.openai.api_base" + LLM_OPENAI_API_VERSION = "gen_ai.openai.api_version" + LLM_OPENAI_API_TYPE = "gen_ai.openai.api_type" + + # Watsonx (renamed LLM_* -> GEN_AI_WATSONX_* in v0.5.0, value unchanged) + # TODO: migrate each to its SpanAttributes.GEN_AI_WATSONX_* counterpart + LLM_DECODING_METHOD = "llm.watsonx.decoding_method" + LLM_RANDOM_SEED = "llm.watsonx.random_seed" + LLM_MAX_NEW_TOKENS = "llm.watsonx.max_new_tokens" + LLM_MIN_NEW_TOKENS = "llm.watsonx.min_new_tokens" + LLM_REPETITION_PENALTY = "llm.watsonx.repetition_penalty" + + # Cache attributes — VALUE changed in v0.5.0 (underscore -> dot separator). + # LLM_* aliases: for packages using the old LLM_* constant name. + # GEN_AI_*_DEPRECATED: for packages already using GEN_AI_* name but expecting old value. + # TODO: migrate to SpanAttributes.GEN_AI_USAGE_CACHE_*_INPUT_TOKENS + LLM_USAGE_CACHE_CREATION_INPUT_TOKENS = "gen_ai.usage.cache_creation_input_tokens" + LLM_USAGE_CACHE_READ_INPUT_TOKENS = "gen_ai.usage.cache_read_input_tokens" + GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_DEPRECATED = ( + "gen_ai.usage.cache_creation_input_tokens" + ) + GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_DEPRECATED = ( + "gen_ai.usage.cache_read_input_tokens" + ) + # Chroma db CHROMADB_ADD_IDS_COUNT = "db.chroma.add.ids_count" CHROMADB_ADD_EMBEDDINGS_COUNT = "db.chroma.add.embeddings_count" diff --git a/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/_testing.py b/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/_testing.py index bf203ab819..453e34118d 100644 --- a/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/_testing.py +++ b/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/_testing.py @@ -85,39 +85,61 @@ def test_gen_ai_openai_api_type(self): # --------------------------------------------------------------------------- -class TestSpanAttributesOldNamesGone: - """Assert that removed LLM_* constants no longer exist on SpanAttributes.""" +class TestSpanAttributesLegacyLLMNamesPresent: + """Assert that legacy LLM_* constants are still available for non-migrated packages.""" @pytest.mark.parametrize( - "old_name", + "legacy_name,expected_value", [ - "LLM_SYSTEM", - "LLM_REQUEST_MODEL", - "LLM_REQUEST_MAX_TOKENS", - "LLM_REQUEST_TEMPERATURE", - "LLM_REQUEST_TOP_P", - "LLM_PROMPTS", - "LLM_COMPLETIONS", - "LLM_RESPONSE_MODEL", - "LLM_USAGE_COMPLETION_TOKENS", - "LLM_USAGE_PROMPT_TOKENS", - "LLM_USAGE_CACHE_CREATION_INPUT_TOKENS", - "LLM_USAGE_CACHE_READ_INPUT_TOKENS", - "LLM_TOKEN_TYPE", - "LLM_REQUEST_TYPE", - "LLM_FREQUENCY_PENALTY", - "LLM_PRESENCE_PENALTY", - "LLM_CHAT_STOP_SEQUENCES", - "LLM_REQUEST_FUNCTIONS", - "LLM_TOP_K", - "LLM_OPENAI_RESPONSE_SYSTEM_FINGERPRINT", + ("LLM_SYSTEM", "gen_ai.system"), + ("LLM_REQUEST_MODEL", "gen_ai.request.model"), + ("LLM_REQUEST_MAX_TOKENS", "gen_ai.request.max_tokens"), + ("LLM_REQUEST_TEMPERATURE", "gen_ai.request.temperature"), + ("LLM_REQUEST_TOP_P", "gen_ai.request.top_p"), + ("LLM_PROMPTS", "gen_ai.prompt"), + ("LLM_COMPLETIONS", "gen_ai.completion"), + ("LLM_RESPONSE_MODEL", "gen_ai.response.model"), + ("LLM_USAGE_COMPLETION_TOKENS", "gen_ai.usage.completion_tokens"), + ("LLM_USAGE_PROMPT_TOKENS", "gen_ai.usage.prompt_tokens"), + ("LLM_USAGE_CACHE_CREATION_INPUT_TOKENS", "gen_ai.usage.cache_creation_input_tokens"), + ("LLM_USAGE_CACHE_READ_INPUT_TOKENS", "gen_ai.usage.cache_read_input_tokens"), + ("LLM_TOKEN_TYPE", "gen_ai.token.type"), + ("LLM_REQUEST_TYPE", "llm.request.type"), + ("LLM_FREQUENCY_PENALTY", "llm.frequency_penalty"), + ("LLM_PRESENCE_PENALTY", "llm.presence_penalty"), + ("LLM_CHAT_STOP_SEQUENCES", "llm.chat.stop_sequences"), + ("LLM_REQUEST_FUNCTIONS", "llm.request.functions"), + ("LLM_TOP_K", "llm.top_k"), + ("LLM_OPENAI_RESPONSE_SYSTEM_FINGERPRINT", "gen_ai.openai.system_fingerprint"), + ("LLM_IS_STREAMING", "llm.is_streaming"), + ("LLM_USAGE_TOTAL_TOKENS", "llm.usage.total_tokens"), + ("LLM_USER", "llm.user"), + ("LLM_HEADERS", "llm.headers"), + ("LLM_RESPONSE_FINISH_REASON", "llm.response.finish_reason"), + ("LLM_RESPONSE_STOP_REASON", "llm.response.stop_reason"), + ("LLM_CONTENT_COMPLETION_CHUNK", "llm.content.completion.chunk"), + ("LLM_REQUEST_REASONING_EFFORT", "llm.request.reasoning_effort"), + ("LLM_USAGE_REASONING_TOKENS", "llm.usage.reasoning_tokens"), + ("LLM_USAGE_TOKEN_TYPE", "llm.usage.token_type"), + ("LLM_REQUEST_REPETITION_PENALTY", "llm.request.repetition_penalty"), + ("LLM_REQUEST_STRUCTURED_OUTPUT_SCHEMA", "gen_ai.request.structured_output_schema"), + ("LLM_REQUEST_REASONING_SUMMARY", "gen_ai.request.reasoning_summary"), + ("LLM_RESPONSE_REASONING_EFFORT", "gen_ai.response.reasoning_effort"), + ("LLM_OPENAI_API_BASE", "gen_ai.openai.api_base"), + ("LLM_OPENAI_API_VERSION", "gen_ai.openai.api_version"), + ("LLM_OPENAI_API_TYPE", "gen_ai.openai.api_type"), + ("LLM_DECODING_METHOD", "llm.watsonx.decoding_method"), + ("LLM_RANDOM_SEED", "llm.watsonx.random_seed"), + ("LLM_MAX_NEW_TOKENS", "llm.watsonx.max_new_tokens"), + ("LLM_MIN_NEW_TOKENS", "llm.watsonx.min_new_tokens"), + ("LLM_REPETITION_PENALTY", "llm.watsonx.repetition_penalty"), ], ) - def test_old_name_absent(self, old_name): - assert not hasattr(SpanAttributes, old_name), ( - f"SpanAttributes.{old_name} should have been removed. " - "Consumers should import from opentelemetry.semconv._incubating.attributes.gen_ai_attributes directly." + def test_legacy_name_present_with_old_value(self, legacy_name, expected_value): + assert hasattr(SpanAttributes, legacy_name), ( + f"SpanAttributes.{legacy_name} must exist for backward compatibility." ) + assert getattr(SpanAttributes, legacy_name) == expected_value # --------------------------------------------------------------------------- @@ -181,14 +203,16 @@ class TestSpanAttributesOldValuesAbsent: "gen_ai.usage.cache_creation_input_tokens", # underscore variant (pre-migration) ], ) - def test_old_value_not_in_span_attributes(self, old_value): + def test_old_value_not_in_new_span_attributes(self, old_value): all_values = { name: value for name, value in vars(SpanAttributes).items() if not name.startswith("_") and isinstance(value, str) + and not name.startswith("LLM_") # exclude legacy aliases + and not name.endswith("_DEPRECATED") # exclude deprecated aliases } assert old_value not in all_values.values(), ( - f"Old attribute value {old_value!r} is still present in SpanAttributes. " + f"Old attribute value {old_value!r} is still present in a GEN_AI_* SpanAttribute. " f"It should have been renamed." ) diff --git a/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/version.py b/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/version.py index 3d187266f1..dd9b22cccc 100644 --- a/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/version.py +++ b/packages/opentelemetry-semantic-conventions-ai/opentelemetry/semconv_ai/version.py @@ -1 +1 @@ -__version__ = "0.5.0" +__version__ = "0.5.1" diff --git a/packages/opentelemetry-semantic-conventions-ai/pyproject.toml b/packages/opentelemetry-semantic-conventions-ai/pyproject.toml index 581b3b41d1..a312458ef1 100644 --- a/packages/opentelemetry-semantic-conventions-ai/pyproject.toml +++ b/packages/opentelemetry-semantic-conventions-ai/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "opentelemetry-semantic-conventions-ai" -version = "0.5.0" +version = "0.5.1" description = "OpenTelemetry Semantic Conventions Extension for Large Language Models" authors = [ { name = "Gal Kleinman", email = "gal@traceloop.com" }, diff --git a/packages/opentelemetry-semantic-conventions-ai/uv.lock b/packages/opentelemetry-semantic-conventions-ai/uv.lock index c755090c04..0f7d10d6cc 100644 --- a/packages/opentelemetry-semantic-conventions-ai/uv.lock +++ b/packages/opentelemetry-semantic-conventions-ai/uv.lock @@ -118,7 +118,7 @@ wheels = [ [[package]] name = "opentelemetry-semantic-conventions-ai" -version = "0.5.0" +version = "0.5.1" source = { editable = "." } dependencies = [ { name = "opentelemetry-sdk" }, diff --git a/packages/sample-app/pyproject.toml b/packages/sample-app/pyproject.toml index 784199c788..de1a466674 100644 --- a/packages/sample-app/pyproject.toml +++ b/packages/sample-app/pyproject.toml @@ -23,7 +23,7 @@ dependencies = [ "transformers>=4.46.0,<5", "replicate>=0.22.0,<0.23.0", "cohere>=5.11.1,<6", - "anthropic>=0.37.1,<0.38.0", + "anthropic>=0.86.0,<1", "google-cloud-aiplatform>=1.81.0,<2", "python-dotenv>=1.0.1,<2", "langchain>=1.0.0,<2.0.0", diff --git a/packages/sample-app/sample_app/anthropic_joke_example.py b/packages/sample-app/sample_app/anthropic_joke_example.py index e2ea679bf3..526b4e2164 100644 --- a/packages/sample-app/sample_app/anthropic_joke_example.py +++ b/packages/sample-app/sample_app/anthropic_joke_example.py @@ -3,7 +3,10 @@ from traceloop.sdk import Traceloop from traceloop.sdk.decorators import workflow -Traceloop.init() +Traceloop.init( + app_name="sample-app", + disable_batch=True, +) @workflow(name="pirate_joke_generator") @@ -17,7 +20,7 @@ def joke_workflow(): "content": "Tell me a joke about OpenTelemetry", } ], - model="claude-3-opus-20240229", + model="claude-haiku-4-5", ) print(response.content) return response diff --git a/packages/sample-app/sample_app/anthropic_joke_streaming_example.py b/packages/sample-app/sample_app/anthropic_joke_streaming_example.py index 5f3c79e6d2..7c11b91c70 100644 --- a/packages/sample-app/sample_app/anthropic_joke_streaming_example.py +++ b/packages/sample-app/sample_app/anthropic_joke_streaming_example.py @@ -17,7 +17,7 @@ def joke_workflow(): "content": "Tell me a joke about OpenTelemetry", } ], - model="claude-3-haiku-20240307", + model="claude-haiku-4-5", stream=True, ) response_content = "" diff --git a/packages/sample-app/sample_app/anthropic_structured_outputs_demo.py b/packages/sample-app/sample_app/anthropic_structured_outputs_demo.py index 9d6dedb0cd..fe97d2f1f1 100644 --- a/packages/sample-app/sample_app/anthropic_structured_outputs_demo.py +++ b/packages/sample-app/sample_app/anthropic_structured_outputs_demo.py @@ -31,7 +31,7 @@ def main(): } response = client.beta.messages.create( - model="claude-sonnet-4-5-20250929", + model="claude-haiku-4-5", max_tokens=1024, betas=["structured-outputs-2025-11-13"], messages=[ diff --git a/packages/sample-app/sample_app/anthropic_vision_base64_example.py b/packages/sample-app/sample_app/anthropic_vision_base64_example.py index ce60ebef95..7970cd212d 100644 --- a/packages/sample-app/sample_app/anthropic_vision_base64_example.py +++ b/packages/sample-app/sample_app/anthropic_vision_base64_example.py @@ -30,7 +30,7 @@ async def task(): client = anthropic.AsyncAnthropic(api_key=api_key) message = await client.messages.create( - model="claude-3-5-sonnet-20240620", + model="claude-haiku-4-5", max_tokens=1024, messages=[ {"role": "user", "content": "You are a sub-system ..."}, diff --git a/packages/sample-app/sample_app/async_anthropic_example.py b/packages/sample-app/sample_app/async_anthropic_example.py index 6c7a524f46..95035a8282 100644 --- a/packages/sample-app/sample_app/async_anthropic_example.py +++ b/packages/sample-app/sample_app/async_anthropic_example.py @@ -16,7 +16,7 @@ async def generate_joke(self): response = await anthropic.messages.create( max_tokens=1024, messages=[{"role": "user", "content": "Tell me a joke about Donald Trump"}], - model="claude-3-haiku-20240307", + model="claude-haiku-4-5", ) return response.content[0].text @@ -33,7 +33,7 @@ async def generation_helper(self): messages=[ {"role": "user", "content": "Tell me a joke about Donald Trump"}, ], - model="claude-3-haiku-20240307", + model="claude-haiku-4-5", ) return response.content[0].text diff --git a/packages/sample-app/sample_app/async_anthropic_joke_streaming.py b/packages/sample-app/sample_app/async_anthropic_joke_streaming.py index b443ecbb1d..aee2063411 100644 --- a/packages/sample-app/sample_app/async_anthropic_joke_streaming.py +++ b/packages/sample-app/sample_app/async_anthropic_joke_streaming.py @@ -16,7 +16,7 @@ async def generate_joke(self): response = await anthropic.messages.create( max_tokens=1024, messages=[{"role": "user", "content": "Tell me a joke about Donald Trump"}], - model="claude-3-haiku-20240307", + model="claude-haiku-4-5", stream=True, top_p=0.9, ) @@ -39,7 +39,7 @@ async def generation_helper(self): messages=[ {"role": "user", "content": "Tell me a joke about Donald Trump"}, ], - model="claude-3-haiku-20240307", + model="claude-haiku-4-5", stream=True, top_k=50, ) diff --git a/packages/traceloop-sdk/pyproject.toml b/packages/traceloop-sdk/pyproject.toml index 853a59dde1..0c1354581a 100644 --- a/packages/traceloop-sdk/pyproject.toml +++ b/packages/traceloop-sdk/pyproject.toml @@ -86,7 +86,7 @@ test = [ "pytest-recording>=0.13.1,<0.14.0", "pydantic<3", "pytest-asyncio>=0.23.7,<1.4.0", - "anthropic>=0.25.2,<0.85.0", + "anthropic>=0.86.0,<1", "langchain>=1.0.0,<2.0.0", "langchain-openai>=1.0.0,<2.0.0", "pandas>=1.0.0", @@ -155,7 +155,6 @@ select = ["E", "F", "W"] constraint-dependencies = ["urllib3>=2.6.3", "pip>=25.3"] [tool.uv.sources] -opentelemetry-semantic-conventions-ai = { path = "../opentelemetry-semantic-conventions-ai", editable = true } opentelemetry-instrumentation-agno = { path = "../opentelemetry-instrumentation-agno", editable = true } opentelemetry-instrumentation-alephalpha = { path = "../opentelemetry-instrumentation-alephalpha", editable = true } opentelemetry-instrumentation-anthropic = { path = "../opentelemetry-instrumentation-anthropic", editable = true } diff --git a/packages/traceloop-sdk/uv.lock b/packages/traceloop-sdk/uv.lock index 4f673dbce0..3b4123117a 100644 --- a/packages/traceloop-sdk/uv.lock +++ b/packages/traceloop-sdk/uv.lock @@ -173,7 +173,7 @@ wheels = [ [[package]] name = "anthropic" -version = "0.84.0" +version = "0.86.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -185,9 +185,9 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/ea/0869d6df9ef83dcf393aeefc12dd81677d091c6ffc86f783e51cf44062f2/anthropic-0.84.0.tar.gz", hash = "sha256:72f5f90e5aebe62dca316cb013629cfa24996b0f5a4593b8c3d712bc03c43c37", size = 539457, upload-time = "2026-02-25T05:22:38.54Z" } +sdist = { url = "https://files.pythonhosted.org/packages/37/7a/8b390dc47945d3169875d342847431e5f7d5fa716b2e37494d57cfc1db10/anthropic-0.86.0.tar.gz", hash = "sha256:60023a7e879aa4fbb1fed99d487fe407b2ebf6569603e5047cfe304cebdaa0e5", size = 583820, upload-time = "2026-03-18T18:43:08.017Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/64/ca/218fa25002a332c0aa149ba18ffc0543175998b1f65de63f6d106689a345/anthropic-0.84.0-py3-none-any.whl", hash = "sha256:861c4c50f91ca45f942e091d83b60530ad6d4f98733bfe648065364da05d29e7", size = 455156, upload-time = "2026-02-25T05:22:40.468Z" }, + { url = "https://files.pythonhosted.org/packages/63/5f/67db29c6e5d16c8c9c4652d3efb934d89cb750cad201539141781d8eae14/anthropic-0.86.0-py3-none-any.whl", hash = "sha256:9d2bbd339446acce98858c5627d33056efe01f70435b22b63546fe7edae0cd57", size = 469400, upload-time = "2026-03-18T18:43:06.526Z" }, ] [[package]] @@ -1582,7 +1582,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-agno" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-agno" } dependencies = [ { name = "opentelemetry-api" }, @@ -1622,7 +1622,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-alephalpha" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-alephalpha" } dependencies = [ { name = "opentelemetry-api" }, @@ -1660,7 +1660,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-anthropic" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-anthropic" } dependencies = [ { name = "opentelemetry-api" }, @@ -1698,7 +1698,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-bedrock" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-bedrock" } dependencies = [ { name = "anthropic" }, @@ -1734,7 +1734,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-chromadb" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-chromadb" } dependencies = [ { name = "opentelemetry-api" }, @@ -1769,7 +1769,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-cohere" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-cohere" } dependencies = [ { name = "opentelemetry-api" }, @@ -1807,7 +1807,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-crewai" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-crewai" } dependencies = [ { name = "opentelemetry-api" }, @@ -1844,7 +1844,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-google-generativeai" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-google-generativeai" } dependencies = [ { name = "opentelemetry-api" }, @@ -1881,7 +1881,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-groq" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-groq" } dependencies = [ { name = "opentelemetry-api" }, @@ -1919,7 +1919,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-haystack" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-haystack" } dependencies = [ { name = "opentelemetry-api" }, @@ -1956,7 +1956,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-lancedb" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-lancedb" } dependencies = [ { name = "opentelemetry-api" }, @@ -1996,7 +1996,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-langchain" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-langchain" } dependencies = [ { name = "opentelemetry-api" }, @@ -2011,7 +2011,7 @@ requires-dist = [ { name = "opentelemetry-api", specifier = ">=1.38.0,<2" }, { name = "opentelemetry-instrumentation", specifier = ">=0.59b0" }, { name = "opentelemetry-semantic-conventions", specifier = ">=0.59b0" }, - { name = "opentelemetry-semantic-conventions-ai", specifier = ">=0.4.13,<0.5.0" }, + { name = "opentelemetry-semantic-conventions-ai", specifier = ">=0.4.16,<0.5.0" }, ] provides-extras = ["instruments"] @@ -2050,7 +2050,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-llamaindex" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-llamaindex" } dependencies = [ { name = "inflection" }, @@ -2113,7 +2113,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-marqo" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-marqo" } dependencies = [ { name = "opentelemetry-api" }, @@ -2151,7 +2151,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-mcp" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-mcp" } dependencies = [ { name = "opentelemetry-api" }, @@ -2191,7 +2191,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-milvus" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-milvus" } dependencies = [ { name = "opentelemetry-api" }, @@ -2227,7 +2227,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-mistralai" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-mistralai" } dependencies = [ { name = "opentelemetry-api" }, @@ -2264,7 +2264,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-ollama" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-ollama" } dependencies = [ { name = "opentelemetry-api" }, @@ -2302,7 +2302,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-openai" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-openai" } dependencies = [ { name = "opentelemetry-api" }, @@ -2339,7 +2339,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-openai-agents" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-openai-agents" } dependencies = [ { name = "opentelemetry-api" }, @@ -2378,7 +2378,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-pinecone" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-pinecone" } dependencies = [ { name = "opentelemetry-api" }, @@ -2417,7 +2417,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-qdrant" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-qdrant" } dependencies = [ { name = "opentelemetry-api" }, @@ -2465,7 +2465,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-replicate" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-replicate" } dependencies = [ { name = "opentelemetry-api" }, @@ -2517,7 +2517,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-sagemaker" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-sagemaker" } dependencies = [ { name = "opentelemetry-api" }, @@ -2582,7 +2582,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-together" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-together" } dependencies = [ { name = "opentelemetry-api" }, @@ -2620,7 +2620,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-transformers" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-transformers" } dependencies = [ { name = "opentelemetry-api" }, @@ -2667,7 +2667,7 @@ wheels = [ [[package]] name = "opentelemetry-instrumentation-vertexai" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-vertexai" } dependencies = [ { name = "opentelemetry-api" }, @@ -2705,7 +2705,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-voyageai" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-voyageai" } dependencies = [ { name = "opentelemetry-api" }, @@ -2743,7 +2743,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-watsonx" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-watsonx" } dependencies = [ { name = "opentelemetry-api" }, @@ -2781,7 +2781,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-weaviate" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-weaviate" } dependencies = [ { name = "opentelemetry-api" }, @@ -2820,7 +2820,7 @@ test = [ [[package]] name = "opentelemetry-instrumentation-writer" -version = "0.52.6" +version = "0.53.3" source = { editable = "../opentelemetry-instrumentation-writer" } dependencies = [ { name = "opentelemetry-api" }, @@ -2834,7 +2834,7 @@ requires-dist = [ { name = "opentelemetry-api", specifier = ">=1.38.0,<2" }, { name = "opentelemetry-instrumentation", specifier = ">=0.59b0" }, { name = "opentelemetry-semantic-conventions", specifier = ">=0.59b0" }, - { name = "opentelemetry-semantic-conventions-ai", specifier = ">=0.4.11" }, + { name = "opentelemetry-semantic-conventions-ai", specifier = ">=0.4.11,<0.5.0" }, { name = "writer", marker = "extra == 'instruments'" }, ] provides-extras = ["instruments"] @@ -2842,7 +2842,7 @@ provides-extras = ["instruments"] [package.metadata.requires-dev] dev = [ { name = "autopep8", specifier = ">=2.2.0,<3" }, - { name = "black", specifier = ">=25.1.0,<26" }, + { name = "black", specifier = ">=25.1.0,<27" }, { name = "isort", specifier = ">=6.0.1,<7" }, { name = "ruff", specifier = ">=0.4.0" }, ] @@ -2898,25 +2898,15 @@ wheels = [ [[package]] name = "opentelemetry-semantic-conventions-ai" -version = "0.4.14" -source = { editable = "../opentelemetry-semantic-conventions-ai" } +version = "0.4.16" +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-sdk" }, { name = "opentelemetry-semantic-conventions" }, ] - -[package.metadata] -requires-dist = [ - { name = "opentelemetry-sdk", specifier = ">=1.38.0,<2" }, - { name = "opentelemetry-semantic-conventions", specifier = ">=0.59b0" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "autopep8", specifier = ">=2.2.0,<3" }, - { name = "pytest", specifier = ">=8.2.2,<9" }, - { name = "pytest-sugar", specifier = "==1.0.0" }, - { name = "ruff", specifier = ">=0.4.0" }, +sdist = { url = "https://files.pythonhosted.org/packages/37/44/fda3c60e77548224ffd86b62aab5a58534e1d32f74d2ccd50ef58aade8d3/opentelemetry_semantic_conventions_ai-0.4.16.tar.gz", hash = "sha256:572eb878d8b81e50f1e53d2a5c1b441e7d34918ee01c846ff62485204d660c22", size = 19071, upload-time = "2026-03-19T15:29:35.357Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/98/e8bf804f2351603b508abaa624096ba279f1d62c3104e7020b45ae938d54/opentelemetry_semantic_conventions_ai-0.4.16-py3-none-any.whl", hash = "sha256:d5ddd0df387b969da82e3e0a8b7415e91d2fc7ce13de7efc2690a7939932b2e0", size = 6495, upload-time = "2026-03-19T15:29:33.974Z" }, ] [[package]] @@ -3983,7 +3973,7 @@ wheels = [ [[package]] name = "traceloop-sdk" -version = "0.52.6" +version = "0.53.3" source = { editable = "." } dependencies = [ { name = "aiohttp" }, @@ -4114,7 +4104,7 @@ requires-dist = [ { name = "opentelemetry-instrumentation-weaviate", editable = "../opentelemetry-instrumentation-weaviate" }, { name = "opentelemetry-instrumentation-writer", editable = "../opentelemetry-instrumentation-writer" }, { name = "opentelemetry-sdk", specifier = ">=1.38.0,<2" }, - { name = "opentelemetry-semantic-conventions-ai", editable = "../opentelemetry-semantic-conventions-ai" }, + { name = "opentelemetry-semantic-conventions-ai", specifier = ">=0.4.13,<0.5.0" }, { name = "pandas", marker = "extra == 'datasets'" }, { name = "pydantic", specifier = ">=1" }, { name = "tenacity", specifier = ">=8.2.3,<10.0" }, @@ -4134,7 +4124,7 @@ dev = [ { name = "types-requests", specifier = ">=2.31.0,<3" }, ] test = [ - { name = "anthropic", specifier = ">=0.25.2,<0.85.0" }, + { name = "anthropic", specifier = ">=0.86.0,<1" }, { name = "langchain", specifier = ">=1.0.0,<2.0.0" }, { name = "langchain-openai", specifier = ">=1.0.0,<2.0.0" }, { name = "openai", specifier = ">=1.31.1,<3" },