diff --git a/pyproject.toml b/pyproject.toml index 61bc1d8a..f5ea9d76 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,7 @@ classifiers=[ "Operating System :: OS Independent", ] dependencies = [ - 'trace-attributes>=6.0.3,<7.0.0', + 'trace-attributes==7.0.0', 'opentelemetry-api>=1.25.0', 'opentelemetry-sdk>=1.25.0', 'opentelemetry-instrumentation>=0.46b0', diff --git a/src/langtrace_python_sdk/instrumentation/cohere/patch.py b/src/langtrace_python_sdk/instrumentation/cohere/patch.py index 7fe72376..e3e26dc1 100644 --- a/src/langtrace_python_sdk/instrumentation/cohere/patch.py +++ b/src/langtrace_python_sdk/instrumentation/cohere/patch.py @@ -44,7 +44,7 @@ def traced_method(wrapped, instance, args, kwargs): span_attributes = { **get_langtrace_attributes(version, service_provider), - **get_llm_request_attributes(kwargs), + **get_llm_request_attributes(kwargs, operation_name="rerank"), **get_llm_url(instance), SpanAttributes.LLM_REQUEST_MODEL: kwargs.get("model") or "command-r-plus", SpanAttributes.LLM_URL: APIS["RERANK"]["URL"], @@ -121,7 +121,7 @@ def traced_method(wrapped, instance, args, kwargs): span_attributes = { **get_langtrace_attributes(version, service_provider), - **get_llm_request_attributes(kwargs), + **get_llm_request_attributes(kwargs, operation_name="embed"), **get_llm_url(instance), SpanAttributes.LLM_URL: APIS["EMBED"]["URL"], SpanAttributes.LLM_PATH: APIS["EMBED"]["ENDPOINT"], diff --git a/src/langtrace_python_sdk/instrumentation/openai/patch.py b/src/langtrace_python_sdk/instrumentation/openai/patch.py index b5d7ff52..a70ca630 100644 --- a/src/langtrace_python_sdk/instrumentation/openai/patch.py +++ b/src/langtrace_python_sdk/instrumentation/openai/patch.py @@ -55,7 +55,7 @@ def traced_method(wrapped, instance, args, kwargs): service_provider = SERVICE_PROVIDERS["OPENAI"] span_attributes = { **get_langtrace_attributes(version, service_provider, vendor_type="llm"), - **get_llm_request_attributes(kwargs), + **get_llm_request_attributes(kwargs, operation_name="images_generate"), **get_llm_url(instance), SpanAttributes.LLM_PATH: APIS["IMAGES_GENERATION"]["ENDPOINT"], **get_extra_attributes(), @@ -118,7 +118,7 @@ async def traced_method(wrapped, instance, args, kwargs): span_attributes = { **get_langtrace_attributes(version, service_provider, vendor_type="llm"), - **get_llm_request_attributes(kwargs), + **get_llm_request_attributes(kwargs, operation_name="images_generate"), **get_llm_url(instance), SpanAttributes.LLM_PATH: APIS["IMAGES_GENERATION"]["ENDPOINT"], **get_extra_attributes(), @@ -181,7 +181,7 @@ def traced_method(wrapped, instance, args, kwargs): span_attributes = { **get_langtrace_attributes(version, service_provider, vendor_type="llm"), - **get_llm_request_attributes(kwargs), + **get_llm_request_attributes(kwargs, operation_name="images_edit"), **get_llm_url(instance), SpanAttributes.LLM_PATH: APIS["IMAGES_EDIT"]["ENDPOINT"], SpanAttributes.LLM_RESPONSE_FORMAT: kwargs.get("response_format"), @@ -432,7 +432,7 @@ def traced_method(wrapped, instance, args, kwargs): span_attributes = { **get_langtrace_attributes(version, service_provider, vendor_type="llm"), - **get_llm_request_attributes(kwargs), + **get_llm_request_attributes(kwargs, operation_name="embed"), **get_llm_url(instance), SpanAttributes.LLM_PATH: APIS["EMBEDDINGS_CREATE"]["ENDPOINT"], SpanAttributes.LLM_REQUEST_DIMENSIONS: kwargs.get("dimensions"), @@ -490,7 +490,7 @@ async def traced_method(wrapped, instance, args, kwargs): span_attributes = { **get_langtrace_attributes(version, service_provider, vendor_type="llm"), - **get_llm_request_attributes(kwargs), + **get_llm_request_attributes(kwargs, operation_name="embed"), SpanAttributes.LLM_PATH: APIS["EMBEDDINGS_CREATE"]["ENDPOINT"], SpanAttributes.LLM_REQUEST_DIMENSIONS: kwargs.get("dimensions"), **get_extra_attributes(), diff --git a/src/langtrace_python_sdk/utils/llm.py b/src/langtrace_python_sdk/utils/llm.py index 4aefc912..bb00d18f 100644 --- a/src/langtrace_python_sdk/utils/llm.py +++ b/src/langtrace_python_sdk/utils/llm.py @@ -92,7 +92,7 @@ def get_langtrace_attributes(version, service_provider, vendor_type="llm"): } -def get_llm_request_attributes(kwargs, prompts=None, model=None): +def get_llm_request_attributes(kwargs, prompts=None, model=None, operation_name="chat"): user = kwargs.get("user", None) if prompts is None: @@ -111,6 +111,7 @@ def get_llm_request_attributes(kwargs, prompts=None, model=None): top_p = kwargs.get("p", None) or kwargs.get("top_p", None) tools = kwargs.get("tools", None) return { + SpanAttributes.LLM_OPERATION_NAME: operation_name, SpanAttributes.LLM_REQUEST_MODEL: model or kwargs.get("model"), SpanAttributes.LLM_IS_STREAMING: kwargs.get("stream"), SpanAttributes.LLM_REQUEST_TEMPERATURE: kwargs.get("temperature"), diff --git a/src/langtrace_python_sdk/version.py b/src/langtrace_python_sdk/version.py index a7ecb802..90a1f38f 100644 --- a/src/langtrace_python_sdk/version.py +++ b/src/langtrace_python_sdk/version.py @@ -1 +1 @@ -__version__ = "2.2.6" +__version__ = "2.2.7"