openlit 1.2.0__py3-none-any.whl → 1.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
openlit/__init__.py CHANGED
@@ -20,6 +20,8 @@ from openlit.instrumentation.mistral import MistralInstrumentor
20
20
  from openlit.instrumentation.bedrock import BedrockInstrumentor
21
21
  from openlit.instrumentation.vertexai import VertexAIInstrumentor
22
22
  from openlit.instrumentation.langchain import LangChainInstrumentor
23
+ from openlit.instrumentation.llamaindex import LlamaIndexInstrumentor
24
+ from openlit.instrumentation.haystack import HaystackInstrumentor
23
25
  from openlit.instrumentation.chroma import ChromaInstrumentor
24
26
  from openlit.instrumentation.pinecone import PineconeInstrumentor
25
27
  from openlit.instrumentation.transformers import TransformersInstrumentor
@@ -150,6 +152,8 @@ def init(environment="default", application_name="default", tracer=None, otlp_en
150
152
  "bedrock": "boto3",
151
153
  "vertexai": "vertexai",
152
154
  "langchain": "langchain",
155
+ "llama_index": "llama_index",
156
+ "haystack": "haystack",
153
157
  "chroma": "chromadb",
154
158
  "pinecone": "pinecone",
155
159
  "transformers": "transformers"
@@ -198,6 +202,8 @@ def init(environment="default", application_name="default", tracer=None, otlp_en
198
202
  "bedrock": BedrockInstrumentor(),
199
203
  "vertexai": VertexAIInstrumentor(),
200
204
  "langchain": LangChainInstrumentor(),
205
+ "llama_index": LlamaIndexInstrumentor(),
206
+ "haystack": HaystackInstrumentor(),
201
207
  "chroma": ChromaInstrumentor(),
202
208
  "pinecone": PineconeInstrumentor(),
203
209
  "transformers": TransformersInstrumentor()
@@ -1,4 +1,4 @@
1
- # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument
1
+ # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument, possibly-used-before-assignment
2
2
  """
3
3
  Module for monitoring Anthropic API calls.
4
4
  """
@@ -1,4 +1,4 @@
1
- # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument
1
+ # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument, possibly-used-before-assignment
2
2
  """
3
3
  Module for monitoring Anthropic API calls.
4
4
  """
@@ -1,4 +1,4 @@
1
- # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument
1
+ # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument, possibly-used-before-assignment
2
2
  """
3
3
  Module for monitoring ChromaDB.
4
4
  """
@@ -1,4 +1,4 @@
1
- # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument
1
+ # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument, possibly-used-before-assignment
2
2
  """
3
3
  Module for monitoring Cohere API calls.
4
4
  """
@@ -0,0 +1,49 @@
1
+ # pylint: disable=useless-return, bad-staticmethod-argument, disable=duplicate-code
2
+ """Initializer of Auto Instrumentation of Haystack Functions"""
3
+ from typing import Collection
4
+ import importlib.metadata
5
+ from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
6
+ from wrapt import wrap_function_wrapper
7
+
8
+ from openlit.instrumentation.haystack.haystack import join_data
9
+
10
+ _instruments = ("haystack-ai >= 2.0.0",)
11
+
12
+ WRAPPED_METHODS = [
13
+ {
14
+ "package": "haystack.components.joiners.document_joiner",
15
+ "object": "DocumentJoiner",
16
+ "endpoint": "haystack.join_data",
17
+ "wrapper": join_data,
18
+ }
19
+ ]
20
+
21
+ class HaystackInstrumentor(BaseInstrumentor):
22
+ """An instrumentor for Cohere's client library."""
23
+
24
+ def instrumentation_dependencies(self) -> Collection[str]:
25
+ return _instruments
26
+
27
+ def _instrument(self, **kwargs):
28
+ application_name = kwargs.get("application_name")
29
+ environment = kwargs.get("environment")
30
+ tracer = kwargs.get("tracer")
31
+ pricing_info = kwargs.get("pricing_info")
32
+ trace_content = kwargs.get("trace_content")
33
+ version = importlib.metadata.version("haystack-ai")
34
+
35
+ for wrapped_method in WRAPPED_METHODS:
36
+ wrap_package = wrapped_method.get("package")
37
+ wrap_object = wrapped_method.get("object")
38
+ gen_ai_endpoint = wrapped_method.get("endpoint")
39
+ wrapper = wrapped_method.get("wrapper")
40
+ wrap_function_wrapper(
41
+ wrap_package,
42
+ wrap_object,
43
+ wrapper(gen_ai_endpoint, version, environment, application_name,
44
+ tracer, pricing_info, trace_content),
45
+ )
46
+
47
+ @staticmethod
48
+ def _uninstrument(self, **kwargs):
49
+ pass
@@ -0,0 +1,84 @@
1
+ # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument
2
+ """
3
+ Module for monitoring Haystack applications.
4
+ """
5
+
6
+ import logging
7
+ from opentelemetry.trace import SpanKind, Status, StatusCode
8
+ from opentelemetry.sdk.resources import TELEMETRY_SDK_NAME
9
+ from openlit.__helpers import handle_exception
10
+ from openlit.semcov import SemanticConvetion
11
+
12
+ # Initialize logger for logging potential issues and operations
13
+ logger = logging.getLogger(__name__)
14
+
15
+ def join_data(gen_ai_endpoint, version, environment, application_name,
16
+ tracer, pricing_info, trace_content):
17
+ """
18
+ Creates a wrapper around a function call to trace and log its execution metrics.
19
+
20
+ This function wraps any given function to measure its execution time,
21
+ log its operation, and trace its execution using OpenTelemetry.
22
+
23
+ Parameters:
24
+ - gen_ai_endpoint (str): A descriptor or name for the endpoint being traced.
25
+ - version (str): The version of the Haystack application.
26
+ - environment (str): The deployment environment (e.g., 'production', 'development').
27
+ - application_name (str): Name of the Haystack application.
28
+ - tracer (opentelemetry.trace.Tracer): The tracer object used for OpenTelemetry tracing.
29
+ - pricing_info (dict): Information about the pricing for internal metrics (currently not used).
30
+ - trace_content (bool): Flag indicating whether to trace the content of the response.
31
+
32
+ Returns:
33
+ - function: A higher-order function that takes a function 'wrapped' and returns
34
+ a new function that wraps 'wrapped' with additional tracing and logging.
35
+ """
36
+
37
+ def wrapper(wrapped, instance, args, kwargs):
38
+ """
39
+ An inner wrapper function that executes the wrapped function, measures execution
40
+ time, and records trace data using OpenTelemetry.
41
+
42
+ Parameters:
43
+ - wrapped (Callable): The original function that this wrapper will execute.
44
+ - instance (object): The instance to which the wrapped function belongs. This
45
+ is used for instance methods. For static and classmethods,
46
+ this may be None.
47
+ - args (tuple): Positional arguments passed to the wrapped function.
48
+ - kwargs (dict): Keyword arguments passed to the wrapped function.
49
+
50
+ Returns:
51
+ - The result of the wrapped function call.
52
+
53
+ The wrapper initiates a span with the provided tracer, sets various attributes
54
+ on the span based on the function's execution and response, and ensures
55
+ errors are handled and logged appropriately.
56
+ """
57
+ with tracer.start_as_current_span(gen_ai_endpoint, kind= SpanKind.CLIENT) as span:
58
+ response = wrapped(*args, **kwargs)
59
+
60
+ try:
61
+ span.set_attribute(TELEMETRY_SDK_NAME, "openlit")
62
+ span.set_attribute(SemanticConvetion.GEN_AI_SYSTEM,
63
+ SemanticConvetion.GEN_AI_SYSTEM_HAYSTACK)
64
+ span.set_attribute(SemanticConvetion.GEN_AI_ENDPOINT,
65
+ gen_ai_endpoint)
66
+ span.set_attribute(SemanticConvetion.GEN_AI_ENVIRONMENT,
67
+ environment)
68
+ span.set_attribute(SemanticConvetion.GEN_AI_TYPE,
69
+ SemanticConvetion.GEN_AI_TYPE_FRAMEWORK)
70
+ span.set_attribute(SemanticConvetion.GEN_AI_APPLICATION_NAME,
71
+ application_name)
72
+ span.set_status(Status(StatusCode.OK))
73
+
74
+ # Return original response
75
+ return response
76
+
77
+ except Exception as e:
78
+ handle_exception(span, e)
79
+ logger.error("Error in trace creation: %s", e)
80
+
81
+ # Return original response
82
+ return response
83
+
84
+ return wrapper
@@ -60,7 +60,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
60
60
  try:
61
61
  span.set_attribute(TELEMETRY_SDK_NAME, "openlit")
62
62
  span.set_attribute(SemanticConvetion.GEN_AI_SYSTEM,
63
- "langchain")
63
+ SemanticConvetion.GEN_AI_SYSTEM_LANGCHAIN)
64
64
  span.set_attribute(SemanticConvetion.GEN_AI_ENDPOINT,
65
65
  gen_ai_endpoint)
66
66
  span.set_attribute(SemanticConvetion.GEN_AI_ENVIRONMENT,
@@ -0,0 +1,55 @@
1
+ # pylint: disable=useless-return, bad-staticmethod-argument, disable=duplicate-code
2
+ """Initializer of Auto Instrumentation of LlamaIndex Functions"""
3
+ from typing import Collection
4
+ import importlib.metadata
5
+ from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
6
+ from wrapt import wrap_function_wrapper
7
+
8
+ from openlit.instrumentation.llamaindex.llamaindex import load_data
9
+
10
+ _instruments = ("llama-index >= 0.10.0",)
11
+
12
+ WRAPPED_METHODS = [
13
+ {
14
+ "package": "llama_index.core.readers",
15
+ "object": "SimpleDirectoryReader.load_data",
16
+ "endpoint": "llamaindex.load_data",
17
+ "wrapper": load_data,
18
+ },
19
+ {
20
+ "package": "llama_index.core.node_parser",
21
+ "object": "SentenceSplitter.get_nodes_from_documents",
22
+ "endpoint": "llamaindex.data_splitter",
23
+ "wrapper": load_data,
24
+ },
25
+ ]
26
+
27
+ class LlamaIndexInstrumentor(BaseInstrumentor):
28
+ """An instrumentor for Cohere's client library."""
29
+
30
+ def instrumentation_dependencies(self) -> Collection[str]:
31
+ return _instruments
32
+
33
+ def _instrument(self, **kwargs):
34
+ application_name = kwargs.get("application_name")
35
+ environment = kwargs.get("environment")
36
+ tracer = kwargs.get("tracer")
37
+ pricing_info = kwargs.get("pricing_info")
38
+ trace_content = kwargs.get("trace_content")
39
+ version = importlib.metadata.version("llama-index")
40
+
41
+ for wrapped_method in WRAPPED_METHODS:
42
+ wrap_package = wrapped_method.get("package")
43
+ wrap_object = wrapped_method.get("object")
44
+ gen_ai_endpoint = wrapped_method.get("endpoint")
45
+ wrapper = wrapped_method.get("wrapper")
46
+ wrap_function_wrapper(
47
+ wrap_package,
48
+ wrap_object,
49
+ wrapper(gen_ai_endpoint, version, environment, application_name,
50
+ tracer, pricing_info, trace_content),
51
+ )
52
+
53
+ @staticmethod
54
+ def _uninstrument(self, **kwargs):
55
+ pass
@@ -0,0 +1,86 @@
1
+ # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument
2
+ """
3
+ Module for monitoring LlamaIndex applications.
4
+ """
5
+
6
+ import logging
7
+ from opentelemetry.trace import SpanKind, Status, StatusCode
8
+ from opentelemetry.sdk.resources import TELEMETRY_SDK_NAME
9
+ from openlit.__helpers import handle_exception
10
+ from openlit.semcov import SemanticConvetion
11
+
12
+ # Initialize logger for logging potential issues and operations
13
+ logger = logging.getLogger(__name__)
14
+
15
+ def load_data(gen_ai_endpoint, version, environment, application_name,
16
+ tracer, pricing_info, trace_content):
17
+ """
18
+ Creates a wrapper around a function call to trace and log its execution metrics.
19
+
20
+ This function wraps any given function to measure its execution time,
21
+ log its operation, and trace its execution using OpenTelemetry.
22
+
23
+ Parameters:
24
+ - gen_ai_endpoint (str): A descriptor or name for the endpoint being traced.
25
+ - version (str): The version of the LlamaIndex application.
26
+ - environment (str): The deployment environment (e.g., 'production', 'development').
27
+ - application_name (str): Name of the LlamaIndex application.
28
+ - tracer (opentelemetry.trace.Tracer): The tracer object used for OpenTelemetry tracing.
29
+ - pricing_info (dict): Information about the pricing for internal metrics (currently not used).
30
+ - trace_content (bool): Flag indicating whether to trace the content of the response.
31
+
32
+ Returns:
33
+ - function: A higher-order function that takes a function 'wrapped' and returns
34
+ a new function that wraps 'wrapped' with additional tracing and logging.
35
+ """
36
+
37
+ def wrapper(wrapped, instance, args, kwargs):
38
+ """
39
+ An inner wrapper function that executes the wrapped function, measures execution
40
+ time, and records trace data using OpenTelemetry.
41
+
42
+ Parameters:
43
+ - wrapped (Callable): The original function that this wrapper will execute.
44
+ - instance (object): The instance to which the wrapped function belongs. This
45
+ is used for instance methods. For static and classmethods,
46
+ this may be None.
47
+ - args (tuple): Positional arguments passed to the wrapped function.
48
+ - kwargs (dict): Keyword arguments passed to the wrapped function.
49
+
50
+ Returns:
51
+ - The result of the wrapped function call.
52
+
53
+ The wrapper initiates a span with the provided tracer, sets various attributes
54
+ on the span based on the function's execution and response, and ensures
55
+ errors are handled and logged appropriately.
56
+ """
57
+ with tracer.start_as_current_span(gen_ai_endpoint, kind= SpanKind.CLIENT) as span:
58
+ response = wrapped(*args, **kwargs)
59
+
60
+ try:
61
+ span.set_attribute(TELEMETRY_SDK_NAME, "openlit")
62
+ span.set_attribute(SemanticConvetion.GEN_AI_SYSTEM,
63
+ SemanticConvetion.GEN_AI_SYSTEM_LLAMAINDEX)
64
+ span.set_attribute(SemanticConvetion.GEN_AI_ENDPOINT,
65
+ gen_ai_endpoint)
66
+ span.set_attribute(SemanticConvetion.GEN_AI_ENVIRONMENT,
67
+ environment)
68
+ span.set_attribute(SemanticConvetion.GEN_AI_TYPE,
69
+ SemanticConvetion.GEN_AI_TYPE_FRAMEWORK)
70
+ span.set_attribute(SemanticConvetion.GEN_AI_APPLICATION_NAME,
71
+ application_name)
72
+ span.set_attribute(SemanticConvetion.GEN_AI_RETRIEVAL_SOURCE,
73
+ response[0].metadata["file_path"])
74
+ span.set_status(Status(StatusCode.OK))
75
+
76
+ # Return original response
77
+ return response
78
+
79
+ except Exception as e:
80
+ handle_exception(span, e)
81
+ logger.error("Error in trace creation: %s", e)
82
+
83
+ # Return original response
84
+ return response
85
+
86
+ return wrapper
@@ -1,4 +1,4 @@
1
- # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument
1
+ # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument, possibly-used-before-assignment
2
2
  """
3
3
  Module for monitoring Mistral API calls.
4
4
  """
@@ -1,4 +1,4 @@
1
- # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument
1
+ # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument, possibly-used-before-assignment
2
2
  """
3
3
  Module for monitoring Mistral API calls.
4
4
  """
@@ -1,4 +1,4 @@
1
- # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument
1
+ # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument, possibly-used-before-assignment
2
2
  """
3
3
  Module for monitoring Pinecone.
4
4
  """
@@ -88,6 +88,8 @@ class SemanticConvetion:
88
88
  GEN_AI_SYSTEM_BEDROCK = "bedrock"
89
89
  GEN_AI_SYSTEM_VERTEXAI = "vertexai"
90
90
  GEN_AI_SYSTEM_LANGCHAIN = "langchain"
91
+ GEN_AI_SYSTEM_LLAMAINDEX = "llama_index"
92
+ GEN_AI_SYSTEM_HAYSTACK = "haystack"
91
93
 
92
94
  # Vector DB
93
95
  DB_REQUESTS = "db.total.requests"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openlit
3
- Version: 1.2.0
3
+ Version: 1.3.0
4
4
  Summary: OpenTelemetry-native Auto instrumentation library for monitoring LLM Applications, facilitating the integration of observability into your GenAI-driven projects
5
5
  Home-page: https://github.com/openlit/openlit/tree/main/openlit/python
6
6
  Keywords: OpenTelemetry,otel,otlp,llm,tracing,openai,anthropic,claude,cohere,llm monitoring,observability,monitoring,gpt,Generative AI,chatGPT
@@ -49,30 +49,36 @@ This project adheres to the [Semantic Conventions](https://github.com/open-telem
49
49
  ## What can be Auto Instrumented?
50
50
 
51
51
  ### LLMs
52
- - ✅ OpenAI
53
- - ✅ Anthropic
54
- - ✅ Cohere
55
- - ✅ Mistral
56
- - ✅ Azure OpenAI
57
- - ✅ HuggingFace Transformers
52
+ - [✅ OpenAI](https://docs.openlit.io/latest/integrations/openai)
53
+ - [✅ Anthropic](https://docs.openlit.io/latest/integrations/anthropic)
54
+ - [✅ Cohere](https://docs.openlit.io/latest/integrations/cohere)
55
+ - [✅ Mistral](https://docs.openlit.io/latest/integrations/mistral)
56
+ - [✅ Azure OpenAI](https://docs.openlit.io/latest/integrations/azure-openai)
57
+ - [✅ HuggingFace Transformers](https://docs.openlit.io/latest/integrations/huggingface)
58
+ - [✅ Amazon Bedrock](https://docs.openlit.io/latest/integrations/bedrock)
59
+ - [✅ Vertex AI](https://docs.openlit.io/latest/integrations/vertexai)
58
60
 
59
61
  ### Vector DBs
60
- - ✅ ChromaDB
61
- - ✅ Pinecone
62
+ - [✅ ChromaDB](https://docs.openlit.io/latest/integrations/chromadb)
63
+ - [✅ Pinecone](https://docs.openlit.io/latest/integrations/pinecone)
62
64
 
63
65
  ### Frameworks
64
- - ✅ Langchain
65
- - ✅ LiteLLM
66
+ - [✅ Langchain](https://docs.openlit.io/latest/integrations/langchain)
67
+ - [✅ LiteLLM](https://docs.openlit.io/latest/integrations/litellm)
68
+ - [✅ LlamaIndex](https://docs.openlit.io/latest/integrations/llama-index)
69
+ - [✅ Haystack](https://docs.openlit.io/latest/integrations/haystack)
66
70
 
67
71
  ## Supported Destinations
68
- - ✅ OpenTelemetry Collector
69
- - ✅ Grafana Cloud
70
- - ✅ Grafana Tempo
71
- - ✅ DataDog
72
- - ✅ New Relic
73
- - ✅ SigNoz
74
- - ✅ Dynatrace
75
- - ✅ OpenObserve
72
+ - [✅ OpenTelemetry Collector](https://docs.openlit.io/latest/connections/otelcol)
73
+ - [Prometheus + Tempo](https://docs.openlit.io/latest/connections/prometheus-tempo)
74
+ - [Prometheus + Jaeger](https://docs.openlit.io/latest/connections/prometheus-jaeger)
75
+ - [Grafana Cloud](https://docs.openlit.io/latest/connections/grafanacloud)
76
+ - [DataDog](https://docs.openlit.io/latest/connections/datadog)
77
+ - [New Relic](https://docs.openlit.io/latest/connections/new-relic)
78
+ - [SigNoz](https://docs.openlit.io/latest/connections/signoz)
79
+ - [Dynatrace](https://docs.openlit.io/latest/connections/dynatrace)
80
+ - [✅ OpenObserve](https://docs.openlit.io/latest/connections/openobserve)
81
+ - [✅ Highlight.io](https://docs.openlit.io/latest/connections/highlight)
76
82
 
77
83
  ## 💿 Installation
78
84
 
@@ -1,26 +1,30 @@
1
1
  openlit/__helpers.py,sha256=EEbLEUKuCiBp0WiieAvUnGcaU5D7grFgNVDCBgMKjQE,4651
2
- openlit/__init__.py,sha256=4ETsor9HjA00uexxR3UO2FXKEeiJd871IsPUSBdwAoQ,9077
2
+ openlit/__init__.py,sha256=9ZzC9hzHrh4rLmH8OfZfV0ymKYi_7GuOUCes8jSjdq0,9384
3
3
  openlit/instrumentation/anthropic/__init__.py,sha256=oaU53BOPyfUKbEzYvLr1DPymDluurSnwo4Hernf2XdU,1955
4
- openlit/instrumentation/anthropic/anthropic.py,sha256=gLN7LrgbTTOxgO8TEn-mX7WCYVGExrIGB-_ueCLPMEY,15993
5
- openlit/instrumentation/anthropic/async_anthropic.py,sha256=wb5U9aF3FtgPZ_1EZudsuKaB6wmOrEVwDIlfcEWnQqU,16035
4
+ openlit/instrumentation/anthropic/anthropic.py,sha256=CYBui5eEfWdSfFF0xtCQjh1xO-gCVJc_V9Hli0szVZE,16026
5
+ openlit/instrumentation/anthropic/async_anthropic.py,sha256=NW84kTQ3BkUx1zZuMRps_J7zTYkmq5BxOrqSjqWInBs,16068
6
6
  openlit/instrumentation/bedrock/__init__.py,sha256=QPvDMQde6Meodu5JvosHdZsnyExS19lcoP5Li4YrOkw,1540
7
7
  openlit/instrumentation/bedrock/bedrock.py,sha256=Q5t5283LGEvhyrUCr9ofEQF22JTkc1UvT2_6u7e7gmA,22278
8
8
  openlit/instrumentation/chroma/__init__.py,sha256=61lFpHlUEQUobsUJZHXdvOViKwsOH8AOvSfc4VgCmiM,3253
9
- openlit/instrumentation/chroma/chroma.py,sha256=wcY5sN-Lfdr4P56FDy8O_ft20gfxTDP12c2vIUF7Qno,10374
9
+ openlit/instrumentation/chroma/chroma.py,sha256=j_xaiSLaScmRHU7SRM-vi8LgRBjsTr1daRLc4RXNyIA,10407
10
10
  openlit/instrumentation/cohere/__init__.py,sha256=PC5T1qIg9pwLNocBP_WjG5B_6p_z019s8quk_fNLAMs,1920
11
- openlit/instrumentation/cohere/cohere.py,sha256=LdRMStLs-UTxDsGsTObEv-unC8g1tRFaU2EFCUBFGHI,20348
11
+ openlit/instrumentation/cohere/cohere.py,sha256=_TXAB64-sujs51-JQVu30HqwBaNengNWHEL0hgAAgJA,20381
12
+ openlit/instrumentation/haystack/__init__.py,sha256=QK6XxxZUHX8vMv2Crk7rNBOc64iOOBLhJGL_lPlAZ8s,1758
13
+ openlit/instrumentation/haystack/haystack.py,sha256=oQIZiDhdp3gnJnhYQ1OouJMc9YT0pQ-_31cmNuopa68,3891
12
14
  openlit/instrumentation/langchain/__init__.py,sha256=TW1ZR7I1i9Oig-wDWp3j1gmtQFO76jNBXQRBGGKzoOo,2531
13
- openlit/instrumentation/langchain/langchain.py,sha256=D-PiYlmUW5SuE4rvKRMOsMGtW5wI6aA3ldig1JhXUok,7609
15
+ openlit/instrumentation/langchain/langchain.py,sha256=G66UytYwWW0DdvChomzkc5_MJ-sjupuDwlxe4KqlGhY,7639
16
+ openlit/instrumentation/llamaindex/__init__.py,sha256=FwE0iozGbZcd2dWo9uk4EO6qKPAe55byhZBuzuFyxXA,1973
17
+ openlit/instrumentation/llamaindex/llamaindex.py,sha256=uiIigbwhonSbJWA7LpgOVI1R4kxxPODS1K5wyHIQ4hM,4048
14
18
  openlit/instrumentation/mistral/__init__.py,sha256=zJCIpFWRbsYrvooOJYuqwyuKeSOQLWbyXWCObL-Snks,3156
15
- openlit/instrumentation/mistral/async_mistral.py,sha256=nD1ns326mclIUjd4PEfrSa8mufpoZqjYF1meK9oohkA,21328
16
- openlit/instrumentation/mistral/mistral.py,sha256=fcwm6UfhqTZ9KEJACO90jz_CpabUg8KKsaqXTAkTwgo,21179
19
+ openlit/instrumentation/mistral/async_mistral.py,sha256=PXpiLwkonTtAPVOUh9pXMSYeabwH0GFG_HRDWrEKhMM,21361
20
+ openlit/instrumentation/mistral/mistral.py,sha256=nbAyMlPiuA9hihePkM_nnxAjahZSndT-B-qXRO5VIhk,21212
17
21
  openlit/instrumentation/openai/__init__.py,sha256=AZ2cPr3TMKkgGdMl_yXMeSi7bWhtmMqOW1iHdzHHGHA,16265
18
22
  openlit/instrumentation/openai/async_azure_openai.py,sha256=QE_5KHaCHAndkf7Y2Iq66mZUc0I1qtqIJ6iYPnwiuXA,46297
19
23
  openlit/instrumentation/openai/async_openai.py,sha256=qfJG_gIkSz3Gjau0zQ_G3tvkqkOd-md5LBK6wIjvH0U,45841
20
24
  openlit/instrumentation/openai/azure_openai.py,sha256=8nm1hsGdWLhJt97fkV254_biYdGeVJiZP2_Yb3pKSEU,46091
21
25
  openlit/instrumentation/openai/openai.py,sha256=VVl0fuQfxitH-V4hVeP5VxB31-yWMI74Xz4katlsG78,46522
22
26
  openlit/instrumentation/pinecone/__init__.py,sha256=Mv9bElqNs07_JQkYyNnO0wOM3hdbprmw7sttdMeKC7g,2526
23
- openlit/instrumentation/pinecone/pinecone.py,sha256=0C-Dd4YOlBCKQ7vmWvFsvokjFCKCn-snquHp7n12yPM,8732
27
+ openlit/instrumentation/pinecone/pinecone.py,sha256=0EhLmtOuvwWVvAKh3e56wyd8wzQq1oaLOmF15SVHxVE,8765
24
28
  openlit/instrumentation/transformers/__init__.py,sha256=9-KLjq-aPTh13gTBYsWltV6hokGwt3mP4759SwsaaCk,1478
25
29
  openlit/instrumentation/transformers/transformers.py,sha256=peT0BGskYt7AZ0b93TZ7qECXfZRgDQMasUeamexYdZI,7592
26
30
  openlit/instrumentation/vertexai/__init__.py,sha256=N3E9HtzefD-zC0fvmfGYiDmSqssoavp_i59wfuYLyMw,6079
@@ -28,8 +32,8 @@ openlit/instrumentation/vertexai/async_vertexai.py,sha256=PMHYyLf1J4gZpC_-KZ_ZVx
28
32
  openlit/instrumentation/vertexai/vertexai.py,sha256=UvpNKBHPoV9idVMfGigZnmWuEQiyqSwZn0zK9-U7Lzw,52125
29
33
  openlit/otel/metrics.py,sha256=O7NoaDz0bY19mqpE4-0PcKwEe-B-iJFRgOCaanAuZAc,4291
30
34
  openlit/otel/tracing.py,sha256=peismkno0YPoRezHPbF5Ycz15_oOBErn_coW1CPspHg,3612
31
- openlit/semcov/__init__.py,sha256=VN0hX8LmU9GDxPayhGpongeQ1MZH1IUtI8Twwtd6D7M,5764
32
- openlit-1.2.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
33
- openlit-1.2.0.dist-info/METADATA,sha256=gTRf37Q2Kx-Lvxp9CZHkTdDnQhKS2_qNGJHiD8aoRcI,10535
34
- openlit-1.2.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
35
- openlit-1.2.0.dist-info/RECORD,,
35
+ openlit/semcov/__init__.py,sha256=V0N_5vENCSphLgjwI-R8bWXngVzhETWK_m4vIUBOqgg,5849
36
+ openlit-1.3.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
37
+ openlit-1.3.0.dist-info/METADATA,sha256=vLQLzCiL15x1xISJgGrO5ny-B8FvNUtJ_3i44DuKVz4,12016
38
+ openlit-1.3.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
39
+ openlit-1.3.0.dist-info/RECORD,,