langtrace-python-sdk 2.1.23__py3-none-any.whl → 2.1.25__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.
- examples/dspy_example/react.py +17 -5
- examples/weaviate_example/query_text.py +1659 -0
- langtrace_python_sdk/constants/instrumentation/ollama.py +3 -5
- langtrace_python_sdk/constants/instrumentation/weaviate.py +30 -0
- langtrace_python_sdk/instrumentation/dspy/patch.py +12 -12
- langtrace_python_sdk/instrumentation/ollama/patch.py +22 -7
- langtrace_python_sdk/instrumentation/openai/patch.py +37 -14
- langtrace_python_sdk/instrumentation/weaviate/instrumentation.py +1 -1
- langtrace_python_sdk/instrumentation/weaviate/patch.py +2 -1
- langtrace_python_sdk/version.py +1 -1
- {langtrace_python_sdk-2.1.23.dist-info → langtrace_python_sdk-2.1.25.dist-info}/METADATA +1 -1
- {langtrace_python_sdk-2.1.23.dist-info → langtrace_python_sdk-2.1.25.dist-info}/RECORD +15 -15
- {langtrace_python_sdk-2.1.23.dist-info → langtrace_python_sdk-2.1.25.dist-info}/WHEEL +0 -0
- {langtrace_python_sdk-2.1.23.dist-info → langtrace_python_sdk-2.1.25.dist-info}/entry_points.txt +0 -0
- {langtrace_python_sdk-2.1.23.dist-info → langtrace_python_sdk-2.1.25.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
APIS = {
|
|
2
|
-
"GENERATE": {
|
|
3
|
-
|
|
4
|
-
},
|
|
5
|
-
"CHAT": {"METHOD": "chat"},
|
|
6
|
-
"EMBEDDINGS": {"METHOD": "embeddings"},
|
|
2
|
+
"GENERATE": {"METHOD": "generate", "ENDPOINT": "/api/generate"},
|
|
3
|
+
"CHAT": {"METHOD": "chat", "ENDPOINT": "/api/chat"},
|
|
4
|
+
"EMBEDDINGS": {"METHOD": "embeddings", "ENDPOINT": "/api/embeddings"},
|
|
7
5
|
}
|
|
@@ -6,6 +6,11 @@ APIS = {
|
|
|
6
6
|
"METHOD": "_BM25Query.bm25",
|
|
7
7
|
"OPERATION": "query",
|
|
8
8
|
},
|
|
9
|
+
"weaviate.generate.bm25": {
|
|
10
|
+
"MODULE": WeaviateMethods.QUERY_BM25.value,
|
|
11
|
+
"METHOD": "_BM25Generate.bm25",
|
|
12
|
+
"OPERATION": "generate",
|
|
13
|
+
},
|
|
9
14
|
"weaviate.query.fetch_object_by_id": {
|
|
10
15
|
"MODULE": WeaviateMethods.QUERY_FETCH_OBJECT_BY_ID.value,
|
|
11
16
|
"METHOD": "_FetchObjectByIDQuery.fetch_object_by_id",
|
|
@@ -16,26 +21,51 @@ APIS = {
|
|
|
16
21
|
"METHOD": "_FetchObjectsQuery.fetch_objects",
|
|
17
22
|
"OPERATION": "query",
|
|
18
23
|
},
|
|
24
|
+
"weaviate.generate.fetch_objects": {
|
|
25
|
+
"MODULE": WeaviateMethods.QUERY_FETCH_OBJECTS.value,
|
|
26
|
+
"METHOD": "_FetchObjectsGenerate.fetch_objects",
|
|
27
|
+
"OPERATION": "generate",
|
|
28
|
+
},
|
|
19
29
|
"weaviate.query.hybrid": {
|
|
20
30
|
"MODULE": WeaviateMethods.QUERY_HYBRID.value,
|
|
21
31
|
"METHOD": "_HybridQuery.hybrid",
|
|
22
32
|
"OPERATION": "query",
|
|
23
33
|
},
|
|
34
|
+
"weaviate.generate.hybrid": {
|
|
35
|
+
"MODULE": WeaviateMethods.QUERY_HYBRID.value,
|
|
36
|
+
"METHOD": "_HybridGenerate.hybrid",
|
|
37
|
+
"OPERATION": "generate",
|
|
38
|
+
},
|
|
24
39
|
"weaviate.query.near_object": {
|
|
25
40
|
"MODULE": WeaviateMethods.QUERY_NEAR_OBJECT.value,
|
|
26
41
|
"METHOD": "_NearObjectQuery.near_object",
|
|
27
42
|
"OPERATION": "query",
|
|
28
43
|
},
|
|
44
|
+
"weaviate.generate.near_object": {
|
|
45
|
+
"MODULE": WeaviateMethods.QUERY_NEAR_OBJECT.value,
|
|
46
|
+
"METHOD": "_NearObjectGenerate.near_object",
|
|
47
|
+
"OPERATION": "generate",
|
|
48
|
+
},
|
|
29
49
|
"weaviate.query.near_text": {
|
|
30
50
|
"MODULE": WeaviateMethods.QUERY_NEAR_TEXT.value,
|
|
31
51
|
"METHOD": "_NearTextQuery.near_text",
|
|
32
52
|
"OPERATION": "query",
|
|
33
53
|
},
|
|
54
|
+
"weaviate.generate.near_text": {
|
|
55
|
+
"MODULE": WeaviateMethods.QUERY_NEAR_TEXT.value,
|
|
56
|
+
"METHOD": "_NearTextGenerate.near_text",
|
|
57
|
+
"OPERATION": "generate",
|
|
58
|
+
},
|
|
34
59
|
"weaviate.query.near_vector": {
|
|
35
60
|
"MODULE": WeaviateMethods.QUERY_NEAR_VECTOR.value,
|
|
36
61
|
"METHOD": "_NearVectorQuery.near_vector",
|
|
37
62
|
"OPERATION": "query",
|
|
38
63
|
},
|
|
64
|
+
"weaviate.generate.near_vector": {
|
|
65
|
+
"MODULE": WeaviateMethods.QUERY_NEAR_VECTOR.value,
|
|
66
|
+
"METHOD": "_NearVectorGenerate.near_vector",
|
|
67
|
+
"OPERATION": "generate",
|
|
68
|
+
},
|
|
39
69
|
"weaviate.collections.create": {
|
|
40
70
|
"MODULE": WeaviateMethods.COLLECTIONS_OPERATIONS.value,
|
|
41
71
|
"METHOD": "_Collections.create",
|
|
@@ -34,7 +34,9 @@ def patch_bootstrapfewshot_optimizer(operation_name, version, tracer):
|
|
|
34
34
|
if args[0].prog:
|
|
35
35
|
prog = {
|
|
36
36
|
"name": args[0].prog.__class__.__name__,
|
|
37
|
-
"signature":
|
|
37
|
+
"signature": (
|
|
38
|
+
str(args[0].prog.signature) if args[0].prog.signature else None
|
|
39
|
+
),
|
|
38
40
|
}
|
|
39
41
|
span_attributes["dspy.optimizer.module.prog"] = json.dumps(prog)
|
|
40
42
|
if "metric" in instance and instance.metric:
|
|
@@ -60,9 +62,7 @@ def patch_bootstrapfewshot_optimizer(operation_name, version, tracer):
|
|
|
60
62
|
span_attributes["dspy.optimizer.config"] = json.dumps(config)
|
|
61
63
|
|
|
62
64
|
attributes = FrameworkSpanAttributes(**span_attributes)
|
|
63
|
-
with tracer.start_as_current_span(
|
|
64
|
-
operation_name, kind=SpanKind.CLIENT
|
|
65
|
-
) as span:
|
|
65
|
+
with tracer.start_as_current_span(operation_name, kind=SpanKind.CLIENT) as span:
|
|
66
66
|
_set_input_attributes(span, kwargs, attributes)
|
|
67
67
|
|
|
68
68
|
try:
|
|
@@ -108,9 +108,7 @@ def patch_signature(operation_name, version, tracer):
|
|
|
108
108
|
span_attributes["dspy.signature.args"] = str(kwargs)
|
|
109
109
|
|
|
110
110
|
attributes = FrameworkSpanAttributes(**span_attributes)
|
|
111
|
-
with tracer.start_as_current_span(
|
|
112
|
-
operation_name, kind=SpanKind.CLIENT
|
|
113
|
-
) as span:
|
|
111
|
+
with tracer.start_as_current_span(operation_name, kind=SpanKind.CLIENT) as span:
|
|
114
112
|
_set_input_attributes(span, kwargs, attributes)
|
|
115
113
|
|
|
116
114
|
try:
|
|
@@ -156,11 +154,15 @@ def patch_evaluate(operation_name, version, tracer):
|
|
|
156
154
|
if "num_threads" in instance and instance.num_threads is not None:
|
|
157
155
|
span_attributes["dspy.evaluate.num_threads"] = str(instance.num_threads)
|
|
158
156
|
if "return_outputs" in instance and instance.return_outputs is not None:
|
|
159
|
-
span_attributes["dspy.evaluate.return_outputs"] = str(
|
|
157
|
+
span_attributes["dspy.evaluate.return_outputs"] = str(
|
|
158
|
+
instance.return_outputs
|
|
159
|
+
)
|
|
160
160
|
if "display_table" in instance and instance.display_table is not None:
|
|
161
161
|
span_attributes["dspy.evaluate.display_table"] = str(instance.display_table)
|
|
162
162
|
if "display_progress" in instance and instance.display_progress is not None:
|
|
163
|
-
span_attributes["dspy.evaluate.display_progress"] = str(
|
|
163
|
+
span_attributes["dspy.evaluate.display_progress"] = str(
|
|
164
|
+
instance.display_progress
|
|
165
|
+
)
|
|
164
166
|
if "metric" in instance and instance.metric is not None:
|
|
165
167
|
span_attributes["dspy.evaluate.metric"] = instance.metric.__name__
|
|
166
168
|
if "error_count" in instance and instance.error_count is not None:
|
|
@@ -173,9 +175,7 @@ def patch_evaluate(operation_name, version, tracer):
|
|
|
173
175
|
span_attributes["dspy.evaluate.args"] = str(args)
|
|
174
176
|
|
|
175
177
|
attributes = FrameworkSpanAttributes(**span_attributes)
|
|
176
|
-
with tracer.start_as_current_span(
|
|
177
|
-
operation_name, kind=SpanKind.CLIENT
|
|
178
|
-
) as span:
|
|
178
|
+
with tracer.start_as_current_span(operation_name, kind=SpanKind.CLIENT) as span:
|
|
179
179
|
_set_input_attributes(span, kwargs, attributes)
|
|
180
180
|
|
|
181
181
|
try:
|
|
@@ -33,7 +33,8 @@ def generic_patch(operation_name, version, tracer):
|
|
|
33
33
|
"llm.model": kwargs.get("model"),
|
|
34
34
|
"llm.stream": kwargs.get("stream"),
|
|
35
35
|
"url.full": base_url,
|
|
36
|
-
"llm.api": api["
|
|
36
|
+
"llm.api": api["ENDPOINT"],
|
|
37
|
+
"llm.response_format": kwargs.get("format"),
|
|
37
38
|
**(extra_attributes if extra_attributes is not None else {}),
|
|
38
39
|
}
|
|
39
40
|
|
|
@@ -87,6 +88,10 @@ def ageneric_patch(operation_name, version, tracer):
|
|
|
87
88
|
"langtrace.version": v(LANGTRACE_SDK_NAME),
|
|
88
89
|
"llm.model": kwargs.get("model"),
|
|
89
90
|
"llm.stream": kwargs.get("stream"),
|
|
91
|
+
"llm.response_format": kwargs.get("format"),
|
|
92
|
+
"http.timeout": (
|
|
93
|
+
kwargs.get("keep_alive") if "keep_alive" in kwargs else None
|
|
94
|
+
),
|
|
90
95
|
**(extra_attributes if extra_attributes is not None else {}),
|
|
91
96
|
}
|
|
92
97
|
|
|
@@ -134,32 +139,43 @@ def _set_response_attributes(span, response):
|
|
|
134
139
|
if total_tokens > 0:
|
|
135
140
|
set_span_attribute(span, "llm.token.counts", json.dumps(usage_dict))
|
|
136
141
|
set_span_attribute(span, "llm.finish_reason", response.get("done_reason"))
|
|
137
|
-
|
|
138
142
|
if "message" in response:
|
|
139
143
|
set_span_attribute(span, "llm.responses", json.dumps([response.get("message")]))
|
|
140
144
|
|
|
141
145
|
if "response" in response:
|
|
142
146
|
set_span_attribute(
|
|
143
|
-
span,
|
|
147
|
+
span,
|
|
148
|
+
"llm.responses",
|
|
149
|
+
json.dumps([{"role": "assistant", "content": response.get("response")}]),
|
|
144
150
|
)
|
|
145
151
|
|
|
146
152
|
|
|
147
153
|
@silently_fail
|
|
148
154
|
def _set_input_attributes(span, kwargs, attributes):
|
|
155
|
+
options = kwargs.get("options")
|
|
156
|
+
|
|
149
157
|
for field, value in attributes.model_dump(by_alias=True).items():
|
|
150
158
|
set_span_attribute(span, field, value)
|
|
151
|
-
|
|
152
159
|
if "messages" in kwargs:
|
|
153
160
|
set_span_attribute(
|
|
154
161
|
span,
|
|
155
162
|
"llm.prompts",
|
|
156
|
-
json.dumps(
|
|
163
|
+
json.dumps(kwargs.get("messages", [])),
|
|
157
164
|
)
|
|
158
165
|
if "prompt" in kwargs:
|
|
159
166
|
set_span_attribute(
|
|
160
167
|
span,
|
|
161
168
|
"llm.prompts",
|
|
162
|
-
json.dumps([{"role": "user", "content": kwargs.get("prompt",
|
|
169
|
+
json.dumps([{"role": "user", "content": kwargs.get("prompt", "")}]),
|
|
170
|
+
)
|
|
171
|
+
if "options" in kwargs:
|
|
172
|
+
set_span_attribute(span, "llm.temperature", options.get("temperature"))
|
|
173
|
+
set_span_attribute(span, "llm.top_p", options.get("top_p"))
|
|
174
|
+
set_span_attribute(
|
|
175
|
+
span, "llm.frequency_penalty", options.get("frequency_penalty")
|
|
176
|
+
)
|
|
177
|
+
set_span_attribute(
|
|
178
|
+
span, "llm.presence_penalty", options.get("presence_penalty")
|
|
163
179
|
)
|
|
164
180
|
|
|
165
181
|
|
|
@@ -169,7 +185,6 @@ def _handle_streaming_response(span, response, api):
|
|
|
169
185
|
accumulated_tokens = {"message": {"content": "", "role": ""}}
|
|
170
186
|
if api == "completion":
|
|
171
187
|
accumulated_tokens = {"response": ""}
|
|
172
|
-
|
|
173
188
|
span.add_event(Event.STREAM_START.value)
|
|
174
189
|
try:
|
|
175
190
|
for chunk in response:
|
|
@@ -29,6 +29,7 @@ from langtrace_python_sdk.constants.instrumentation.common import (
|
|
|
29
29
|
)
|
|
30
30
|
from langtrace_python_sdk.constants.instrumentation.openai import APIS
|
|
31
31
|
from langtrace_python_sdk.utils.llm import calculate_prompt_tokens, estimate_tokens
|
|
32
|
+
from openai._types import NOT_GIVEN
|
|
32
33
|
|
|
33
34
|
|
|
34
35
|
def images_generate(original_method, version, tracer):
|
|
@@ -470,16 +471,19 @@ def chat_completions_create(original_method, version, tracer):
|
|
|
470
471
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
471
472
|
|
|
472
473
|
tools = []
|
|
473
|
-
if
|
|
474
|
+
if (
|
|
475
|
+
kwargs.get("temperature") is not None
|
|
476
|
+
and kwargs.get("temperature") != NOT_GIVEN
|
|
477
|
+
):
|
|
474
478
|
attributes.llm_temperature = kwargs.get("temperature")
|
|
475
|
-
if kwargs.get("top_p") is not None:
|
|
479
|
+
if kwargs.get("top_p") is not None and kwargs.get("top_p") != NOT_GIVEN:
|
|
476
480
|
attributes.llm_top_p = kwargs.get("top_p")
|
|
477
|
-
if kwargs.get("user") is not None:
|
|
481
|
+
if kwargs.get("user") is not None and kwargs.get("user") != NOT_GIVEN:
|
|
478
482
|
attributes.llm_user = kwargs.get("user")
|
|
479
|
-
if kwargs.get("functions") is not None:
|
|
483
|
+
if kwargs.get("functions") is not None and kwargs.get("functions") != NOT_GIVEN:
|
|
480
484
|
for function in kwargs.get("functions"):
|
|
481
485
|
tools.append(json.dumps({"type": "function", "function": function}))
|
|
482
|
-
if kwargs.get("tools") is not None:
|
|
486
|
+
if kwargs.get("tools") is not None and kwargs.get("tools") != NOT_GIVEN:
|
|
483
487
|
tools.append(json.dumps(kwargs.get("tools")))
|
|
484
488
|
if len(tools) > 0:
|
|
485
489
|
attributes.llm_tools = json.dumps(tools)
|
|
@@ -498,7 +502,11 @@ def chat_completions_create(original_method, version, tracer):
|
|
|
498
502
|
try:
|
|
499
503
|
# Attempt to call the original method
|
|
500
504
|
result = wrapped(*args, **kwargs)
|
|
501
|
-
if
|
|
505
|
+
if (
|
|
506
|
+
kwargs.get("stream") is False
|
|
507
|
+
or kwargs.get("stream") is None
|
|
508
|
+
or kwargs.get("stream") == NOT_GIVEN
|
|
509
|
+
):
|
|
502
510
|
span.set_attribute("llm.model", result.model)
|
|
503
511
|
if hasattr(result, "choices") and result.choices is not None:
|
|
504
512
|
responses = [
|
|
@@ -528,6 +536,7 @@ def chat_completions_create(original_method, version, tracer):
|
|
|
528
536
|
if (
|
|
529
537
|
hasattr(result, "system_fingerprint")
|
|
530
538
|
and result.system_fingerprint is not None
|
|
539
|
+
and result.system_fingerprint != NOT_GIVEN
|
|
531
540
|
):
|
|
532
541
|
span.set_attribute(
|
|
533
542
|
"llm.system.fingerprint", result.system_fingerprint
|
|
@@ -554,7 +563,10 @@ def chat_completions_create(original_method, version, tracer):
|
|
|
554
563
|
)
|
|
555
564
|
|
|
556
565
|
# iterate over kwargs.get("functions") and calculate the prompt tokens
|
|
557
|
-
if
|
|
566
|
+
if (
|
|
567
|
+
kwargs.get("functions") is not None
|
|
568
|
+
and kwargs.get("functions") != NOT_GIVEN
|
|
569
|
+
):
|
|
558
570
|
for function in kwargs.get("functions"):
|
|
559
571
|
prompt_tokens += calculate_prompt_tokens(
|
|
560
572
|
json.dumps(function), kwargs.get("model")
|
|
@@ -640,16 +652,19 @@ def async_chat_completions_create(original_method, version, tracer):
|
|
|
640
652
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
641
653
|
|
|
642
654
|
tools = []
|
|
643
|
-
if
|
|
655
|
+
if (
|
|
656
|
+
kwargs.get("temperature") is not None
|
|
657
|
+
and kwargs.get("temperature") != NOT_GIVEN
|
|
658
|
+
):
|
|
644
659
|
attributes.llm_temperature = kwargs.get("temperature")
|
|
645
|
-
if kwargs.get("top_p") is not None:
|
|
660
|
+
if kwargs.get("top_p") is not None and kwargs.get("top_p") != NOT_GIVEN:
|
|
646
661
|
attributes.llm_top_p = kwargs.get("top_p")
|
|
647
|
-
if kwargs.get("user") is not None:
|
|
662
|
+
if kwargs.get("user") is not None and kwargs.get("user") != NOT_GIVEN:
|
|
648
663
|
attributes.llm_user = kwargs.get("user")
|
|
649
|
-
if kwargs.get("functions") is not None:
|
|
664
|
+
if kwargs.get("functions") is not None and kwargs.get("functions") != NOT_GIVEN:
|
|
650
665
|
for function in kwargs.get("functions"):
|
|
651
666
|
tools.append(json.dumps({"type": "function", "function": function}))
|
|
652
|
-
if kwargs.get("tools") is not None:
|
|
667
|
+
if kwargs.get("tools") is not None and kwargs.get("tools") != NOT_GIVEN:
|
|
653
668
|
tools.append(json.dumps(kwargs.get("tools")))
|
|
654
669
|
if len(tools) > 0:
|
|
655
670
|
attributes.llm_tools = json.dumps(tools)
|
|
@@ -666,7 +681,11 @@ def async_chat_completions_create(original_method, version, tracer):
|
|
|
666
681
|
try:
|
|
667
682
|
# Attempt to call the original method
|
|
668
683
|
result = await wrapped(*args, **kwargs)
|
|
669
|
-
if
|
|
684
|
+
if (
|
|
685
|
+
kwargs.get("stream") is False
|
|
686
|
+
or kwargs.get("stream") is None
|
|
687
|
+
or kwargs.get("stream") == NOT_GIVEN
|
|
688
|
+
):
|
|
670
689
|
span.set_attribute("llm.model", result.model)
|
|
671
690
|
if hasattr(result, "choices") and result.choices is not None:
|
|
672
691
|
responses = [
|
|
@@ -696,6 +715,7 @@ def async_chat_completions_create(original_method, version, tracer):
|
|
|
696
715
|
if (
|
|
697
716
|
hasattr(result, "system_fingerprint")
|
|
698
717
|
and result.system_fingerprint is not None
|
|
718
|
+
and result.system_fingerprint != NOT_GIVEN
|
|
699
719
|
):
|
|
700
720
|
span.set_attribute(
|
|
701
721
|
"llm.system.fingerprint", result.system_fingerprint
|
|
@@ -722,7 +742,10 @@ def async_chat_completions_create(original_method, version, tracer):
|
|
|
722
742
|
)
|
|
723
743
|
|
|
724
744
|
# iterate over kwargs.get("functions") and calculate the prompt tokens
|
|
725
|
-
if
|
|
745
|
+
if (
|
|
746
|
+
kwargs.get("functions") is not None
|
|
747
|
+
and kwargs.get("functions") != NOT_GIVEN
|
|
748
|
+
):
|
|
726
749
|
for function in kwargs.get("functions"):
|
|
727
750
|
prompt_tokens += calculate_prompt_tokens(
|
|
728
751
|
json.dumps(function), kwargs.get("model")
|
|
@@ -45,7 +45,7 @@ class WeaviateInstrumentation(BaseInstrumentor):
|
|
|
45
45
|
version = importlib.metadata.version("weaviate-client")
|
|
46
46
|
|
|
47
47
|
for api_name, api_config in APIS.items():
|
|
48
|
-
if api_config.get("OPERATION")
|
|
48
|
+
if api_config.get("OPERATION") in ["query", "generate"]:
|
|
49
49
|
wrap_function_wrapper(
|
|
50
50
|
api_config["MODULE"],
|
|
51
51
|
api_config["METHOD"],
|
|
@@ -142,7 +142,8 @@ def create_traced_method(method_name, version, tracer, get_collection_name=None)
|
|
|
142
142
|
try:
|
|
143
143
|
# Attempt to call the original method
|
|
144
144
|
result = wrapped(*args, **kwargs)
|
|
145
|
-
|
|
145
|
+
print(result)
|
|
146
|
+
if api["OPERATION"] in ["query", "generate"]:
|
|
146
147
|
span.add_event(
|
|
147
148
|
name="db.response",
|
|
148
149
|
attributes={"db.response": aggregate_responses(result)},
|
langtrace_python_sdk/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "2.1.
|
|
1
|
+
__version__ = "2.1.25"
|
|
@@ -13,7 +13,7 @@ examples/crewai_example/basic.py,sha256=PBu4f8yQfZO1L_22UDm_ReU9lnEcycjZcGuy5Upg
|
|
|
13
13
|
examples/dspy_example/math_problems_cot.py,sha256=Z98nB6myt8WJse2dWS6Ap7CFUhC27lBNb37R1Gg80VQ,1282
|
|
14
14
|
examples/dspy_example/program_of_thought_basic.py,sha256=oEbtJdeKENMUbex25-zyStWwurRWW6OdP0KDs-jUkko,984
|
|
15
15
|
examples/dspy_example/quiz_gen.py,sha256=OyGhepeX8meKOtLdmlYUjMD2ECk-ZQuQXUZif1hFQY4,3371
|
|
16
|
-
examples/dspy_example/react.py,sha256=
|
|
16
|
+
examples/dspy_example/react.py,sha256=APAnHqgy9w-qY5jnPD_WbBx6bwo9C-DhPnUuhL-t7sg,1376
|
|
17
17
|
examples/fastapi_example/__init__.py,sha256=INIfvJP7zC_KkJCtulS1qbh61-MJTPAHnzAgzeKi0yU,87
|
|
18
18
|
examples/fastapi_example/basic_route.py,sha256=_IRXjkOtJQ-bTIGa1WbvUF_2LF4bjghjyXt4YrHaRvw,1170
|
|
19
19
|
examples/hiveagent_example/basic.py,sha256=Sd7I5w8w5Xx7ODaydTY30yiq9HwJDMKHQywrZjgehP0,441
|
|
@@ -48,10 +48,10 @@ examples/pinecone_example/basic.py,sha256=5MoHZMBxHMdC61oj-CP19gj9SxSvIcDrQL934J
|
|
|
48
48
|
examples/qdrant_example/__init__.py,sha256=Ze9xEzW8FiHUO58YBa8JeHNOwcmo3dpYH77AkdyglKU,197
|
|
49
49
|
examples/qdrant_example/basic.py,sha256=DCMjHSuBZKkhEjCkwy5d5La9WMyW0lCWqtcZWiFCEm4,1425
|
|
50
50
|
examples/weaviate_example/__init__.py,sha256=8JMDBsRSEV10HfTd-YC7xb4txBjD3la56snk-Bbg2Kw,618
|
|
51
|
-
examples/weaviate_example/query_text.py,sha256=
|
|
51
|
+
examples/weaviate_example/query_text.py,sha256=sG8O-bXQpflBAiYpgE_M2X7GcHUlZNgl_wJW8_h-W6Q,127024
|
|
52
52
|
langtrace_python_sdk/__init__.py,sha256=VZM6i71NR7pBQK6XvJWRelknuTYUhqwqE7PlicKa5Wg,1166
|
|
53
53
|
langtrace_python_sdk/langtrace.py,sha256=pG_dWzzQxUP8r5SAMUwRScb6IopINcda1CZvJERjXBo,7486
|
|
54
|
-
langtrace_python_sdk/version.py,sha256=
|
|
54
|
+
langtrace_python_sdk/version.py,sha256=eNwueZdE6xOPV8_Xyr7CpRZhy-MW6j5G9dkoGmwRE54,23
|
|
55
55
|
langtrace_python_sdk/constants/__init__.py,sha256=P8QvYwt5czUNDZsKS64vxm9Dc41ptGbuF1TFtAF6nv4,44
|
|
56
56
|
langtrace_python_sdk/constants/exporter/langtrace_exporter.py,sha256=5MNjnAOg-4am78J3gVMH6FSwq5N8TOj72ugkhsw4vi0,46
|
|
57
57
|
langtrace_python_sdk/constants/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -60,11 +60,11 @@ langtrace_python_sdk/constants/instrumentation/chroma.py,sha256=hiPGYdHS0Yj4Kh3e
|
|
|
60
60
|
langtrace_python_sdk/constants/instrumentation/cohere.py,sha256=tf9sDfb5K3qOAHChEE5o8eYWPZ1io58VsOjZDCZPxfw,577
|
|
61
61
|
langtrace_python_sdk/constants/instrumentation/common.py,sha256=KodH_uGGjWGGP8rqTi7Ua-osjUwtPKslx69DJRbDiT4,850
|
|
62
62
|
langtrace_python_sdk/constants/instrumentation/groq.py,sha256=VFXmIl4aqGY_fS0PAmjPj_Qm7Tibxbx7Ur_e7rQpqXc,134
|
|
63
|
-
langtrace_python_sdk/constants/instrumentation/ollama.py,sha256=
|
|
63
|
+
langtrace_python_sdk/constants/instrumentation/ollama.py,sha256=H_-S0xjqRsi5qSp7mAlK7Y9NlQ3BqOkG6ASogqqgdJY,212
|
|
64
64
|
langtrace_python_sdk/constants/instrumentation/openai.py,sha256=uEOH5UXapU2DSf2AdgXTRhhJEHGWXUNFkUGD5QafflM,1164
|
|
65
65
|
langtrace_python_sdk/constants/instrumentation/pinecone.py,sha256=0TityERbGWaHGSN8-vyYZtYCjVj8fQOKae8lng0O0Bk,478
|
|
66
66
|
langtrace_python_sdk/constants/instrumentation/qdrant.py,sha256=yL7BopNQTXW7L7Z-gVM2PdusKD7r9qqcATvczFd7NtQ,1999
|
|
67
|
-
langtrace_python_sdk/constants/instrumentation/weaviate.py,sha256=
|
|
67
|
+
langtrace_python_sdk/constants/instrumentation/weaviate.py,sha256=gtv-JBxvNGClEMxClmRKzjJ1khgOonsli4D_k9IagSE,2601
|
|
68
68
|
langtrace_python_sdk/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
69
|
langtrace_python_sdk/extensions/langtrace_exporter.py,sha256=gWVRU2DlB4xjZ4ww7M63DaLiAN5zQ2k1HPrythmjEdo,4202
|
|
70
70
|
langtrace_python_sdk/extensions/langtrace_filesystem.py,sha256=qpnkpkuTZ2yhGgpBK64QJLt0T1iL-1zpEMPz4quJ_ng,6925
|
|
@@ -83,7 +83,7 @@ langtrace_python_sdk/instrumentation/crewai/instrumentation.py,sha256=W8PLTLzgEd
|
|
|
83
83
|
langtrace_python_sdk/instrumentation/crewai/patch.py,sha256=Vnpip9Pbk4UFbTFHoUrHtAnDgsaihwSvZBgtUeOtLr8,6109
|
|
84
84
|
langtrace_python_sdk/instrumentation/dspy/__init__.py,sha256=tM1srfi_QgyCzrde4izojMrRq2Wm7Dj5QUvVQXIJzkk,84
|
|
85
85
|
langtrace_python_sdk/instrumentation/dspy/instrumentation.py,sha256=Y-_qcH5jCT4TbGvci6Iw0_OWUUlCmovMxnysj6NCnXI,2923
|
|
86
|
-
langtrace_python_sdk/instrumentation/dspy/patch.py,sha256=
|
|
86
|
+
langtrace_python_sdk/instrumentation/dspy/patch.py,sha256=EI1iTgKzwtCyQrzBSyPIjzhiQUVl5jfFDtodXXe5BjA,9258
|
|
87
87
|
langtrace_python_sdk/instrumentation/groq/__init__.py,sha256=ZXeq_nrej6Lm_uoMFEg8wbSejhjB2UJ5IoHQBPc2-C0,91
|
|
88
88
|
langtrace_python_sdk/instrumentation/groq/instrumentation.py,sha256=Ttf07XVKhdYY1_fqJc7QWiSdmgEhEVyQB_3Az2_wqYo,1832
|
|
89
89
|
langtrace_python_sdk/instrumentation/groq/patch.py,sha256=EKH9tjoDbwWavIAwUadaR5tFiy-S69h1IxxzH_1SSRg,26354
|
|
@@ -104,10 +104,10 @@ langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py,sha256=8iAg-O
|
|
|
104
104
|
langtrace_python_sdk/instrumentation/llamaindex/patch.py,sha256=OGk7ps438gW49zvJQCDp7ZmkQnFxouAUu2PvHbmcAP8,4496
|
|
105
105
|
langtrace_python_sdk/instrumentation/ollama/__init__.py,sha256=g2zJsXnDHinXPzTc-WxDeTtHmr9gmAj3K6l_00kP8c8,82
|
|
106
106
|
langtrace_python_sdk/instrumentation/ollama/instrumentation.py,sha256=jdsvkqUJAAUNLVPtAkn_rG26HXetVQXWtjn4a6eWZro,2029
|
|
107
|
-
langtrace_python_sdk/instrumentation/ollama/patch.py,sha256=
|
|
107
|
+
langtrace_python_sdk/instrumentation/ollama/patch.py,sha256=uzoc2M-Vj-wEnjYBiiR8lg1s9teqMz6bG4iS6s1_QiQ,8639
|
|
108
108
|
langtrace_python_sdk/instrumentation/openai/__init__.py,sha256=VPHRNCQEdkizIVP2d0Uw_a7t8XOTSTprEIB8oboJFbs,95
|
|
109
109
|
langtrace_python_sdk/instrumentation/openai/instrumentation.py,sha256=A0BJHRLcZ74TNVg6I0I9M5YWvSpAtXwMmME6N5CEQ_M,2945
|
|
110
|
-
langtrace_python_sdk/instrumentation/openai/patch.py,sha256=
|
|
110
|
+
langtrace_python_sdk/instrumentation/openai/patch.py,sha256=MJGxa7w5FyGNf4PA4VpnhcO0D2HOHjY8YcroziSAXhE,38341
|
|
111
111
|
langtrace_python_sdk/instrumentation/pinecone/__init__.py,sha256=DzXyGh9_MGWveJvXULkFwdkf7PbG2s3bAWtT1Dmz7Ok,99
|
|
112
112
|
langtrace_python_sdk/instrumentation/pinecone/instrumentation.py,sha256=HDXkRITrVPwdQEoOYJOfMzZE_2-vDDvuqHTlD8W1lQw,1845
|
|
113
113
|
langtrace_python_sdk/instrumentation/pinecone/patch.py,sha256=KiIRRz8kk47FllFT746Cb_w6F6M60AN_pcsguD979E4,5172
|
|
@@ -115,8 +115,8 @@ langtrace_python_sdk/instrumentation/qdrant/__init__.py,sha256=TaIGSAEPysrL23KJ5
|
|
|
115
115
|
langtrace_python_sdk/instrumentation/qdrant/instrumentation.py,sha256=vl2eKSP55aqDo1JiRlvOUBrr6kddvG9Z5dCYew2OG08,1816
|
|
116
116
|
langtrace_python_sdk/instrumentation/qdrant/patch.py,sha256=RhEHQxN7PJN0DjoC656Sw3GeYrJzHhp1bSky8rqOE5o,4948
|
|
117
117
|
langtrace_python_sdk/instrumentation/weaviate/__init__.py,sha256=Mc-Je6evPo-kKQzerTG7bd1XO5JOh4YGTE3wBxaUBwg,99
|
|
118
|
-
langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=
|
|
119
|
-
langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=
|
|
118
|
+
langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=oWLCnh5_Nuw8bKpXJW6Zo-PpI_kJ7q2nA4BImnZ7YqY,2295
|
|
119
|
+
langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=rRD6WfQcNGYpw9teoCkGPCZkzolG0h-mZdPGNKkgE10,5971
|
|
120
120
|
langtrace_python_sdk/types/__init__.py,sha256=KDW6S74FDxpeBa9xoH5zVEYfmRjccCCHzlW7lTJg1TA,3194
|
|
121
121
|
langtrace_python_sdk/utils/__init__.py,sha256=E0nQyBE-4O_GR2PM9y_l7shx4hJLo5xRThR_LMx97M0,278
|
|
122
122
|
langtrace_python_sdk/utils/langtrace_sampler.py,sha256=BupNndHbU9IL_wGleKetz8FdcveqHMBVz1bfKTTW80w,1753
|
|
@@ -163,8 +163,8 @@ tests/pinecone/cassettes/test_query.yaml,sha256=b5v9G3ssUy00oG63PlFUR3JErF2Js-5A
|
|
|
163
163
|
tests/pinecone/cassettes/test_upsert.yaml,sha256=neWmQ1v3d03V8WoLl8FoFeeCYImb8pxlJBWnFd_lITU,38607
|
|
164
164
|
tests/qdrant/conftest.py,sha256=9n0uHxxIjWk9fbYc4bx-uP8lSAgLBVx-cV9UjnsyCHM,381
|
|
165
165
|
tests/qdrant/test_qdrant.py,sha256=pzjAjVY2kmsmGfrI2Gs2xrolfuaNHz7l1fqGQCjp5_o,3353
|
|
166
|
-
langtrace_python_sdk-2.1.
|
|
167
|
-
langtrace_python_sdk-2.1.
|
|
168
|
-
langtrace_python_sdk-2.1.
|
|
169
|
-
langtrace_python_sdk-2.1.
|
|
170
|
-
langtrace_python_sdk-2.1.
|
|
166
|
+
langtrace_python_sdk-2.1.25.dist-info/METADATA,sha256=yMgo1VhbUQ_ISMJC42aqOd-6V7UGk8vDIq3rimZzJ2s,13315
|
|
167
|
+
langtrace_python_sdk-2.1.25.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
|
168
|
+
langtrace_python_sdk-2.1.25.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
|
|
169
|
+
langtrace_python_sdk-2.1.25.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
170
|
+
langtrace_python_sdk-2.1.25.dist-info/RECORD,,
|
|
File without changes
|
{langtrace_python_sdk-2.1.23.dist-info → langtrace_python_sdk-2.1.25.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{langtrace_python_sdk-2.1.23.dist-info → langtrace_python_sdk-2.1.25.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|