langtrace-python-sdk 2.3.15__py3-none-any.whl → 2.3.17__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/cohere_example/rerank.py +17 -4
- examples/langchain_example/__init__.py +3 -1
- examples/langchain_example/groq_example.py +78 -2
- langtrace_python_sdk/instrumentation/cohere/patch.py +4 -1
- langtrace_python_sdk/langtrace.py +25 -63
- langtrace_python_sdk/types/__init__.py +14 -5
- langtrace_python_sdk/utils/__init__.py +42 -1
- langtrace_python_sdk/utils/llm.py +2 -1
- langtrace_python_sdk/utils/misc.py +8 -0
- langtrace_python_sdk/version.py +1 -1
- {langtrace_python_sdk-2.3.15.dist-info → langtrace_python_sdk-2.3.17.dist-info}/METADATA +1 -1
- {langtrace_python_sdk-2.3.15.dist-info → langtrace_python_sdk-2.3.17.dist-info}/RECORD +15 -15
- {langtrace_python_sdk-2.3.15.dist-info → langtrace_python_sdk-2.3.17.dist-info}/WHEEL +0 -0
- {langtrace_python_sdk-2.3.15.dist-info → langtrace_python_sdk-2.3.17.dist-info}/entry_points.txt +0 -0
- {langtrace_python_sdk-2.3.15.dist-info → langtrace_python_sdk-2.3.17.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import cohere
|
|
2
2
|
from dotenv import find_dotenv, load_dotenv
|
|
3
|
+
from datetime import datetime
|
|
3
4
|
|
|
4
5
|
from langtrace_python_sdk import langtrace
|
|
5
6
|
|
|
@@ -16,10 +17,22 @@ co = cohere.Client()
|
|
|
16
17
|
# @with_langtrace_root_span("embed_create")
|
|
17
18
|
def rerank():
|
|
18
19
|
docs = [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
{
|
|
21
|
+
"text": "Carson City is the capital city of the American state of Nevada.",
|
|
22
|
+
"date": datetime.now(),
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"text": "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.",
|
|
26
|
+
"date": datetime(2020, 5, 17),
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"text": "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.",
|
|
30
|
+
"date": datetime(1776, 7, 4),
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"text": "Capital punishment (the death penalty) has existed in the United States since before the United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states.",
|
|
34
|
+
"date": datetime(2023, 9, 14),
|
|
35
|
+
},
|
|
23
36
|
]
|
|
24
37
|
|
|
25
38
|
response = co.rerank(
|
|
@@ -2,7 +2,7 @@ from examples.langchain_example.langchain_google_genai import basic_google_genai
|
|
|
2
2
|
from .basic import basic_app, rag, load_and_split
|
|
3
3
|
from langtrace_python_sdk import with_langtrace_root_span
|
|
4
4
|
|
|
5
|
-
from .groq_example import groq_basic, groq_streaming
|
|
5
|
+
from .groq_example import groq_basic, groq_tool_choice, groq_streaming
|
|
6
6
|
from .langgraph_example_tools import basic_graph_tools
|
|
7
7
|
|
|
8
8
|
|
|
@@ -20,3 +20,5 @@ class GroqRunner:
|
|
|
20
20
|
@with_langtrace_root_span("Groq")
|
|
21
21
|
def run(self):
|
|
22
22
|
groq_streaming()
|
|
23
|
+
groq_basic()
|
|
24
|
+
groq_tool_choice()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import json
|
|
2
|
+
|
|
1
3
|
from dotenv import find_dotenv, load_dotenv
|
|
2
|
-
from langchain_core.prompts import ChatPromptTemplate
|
|
3
|
-
from langchain_groq import ChatGroq
|
|
4
4
|
from groq import Groq
|
|
5
5
|
|
|
6
6
|
_ = load_dotenv(find_dotenv())
|
|
@@ -30,6 +30,82 @@ def groq_basic():
|
|
|
30
30
|
return chat_completion
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
def groq_tool_choice():
|
|
34
|
+
|
|
35
|
+
user_prompt = "What is 25 * 4 + 10?"
|
|
36
|
+
MODEL = "llama3-groq-70b-8192-tool-use-preview"
|
|
37
|
+
|
|
38
|
+
def calculate(expression):
|
|
39
|
+
"""Evaluate a mathematical expression"""
|
|
40
|
+
try:
|
|
41
|
+
result = eval(expression)
|
|
42
|
+
return json.dumps({"result": result})
|
|
43
|
+
except:
|
|
44
|
+
return json.dumps({"error": "Invalid expression"})
|
|
45
|
+
|
|
46
|
+
messages = [
|
|
47
|
+
{
|
|
48
|
+
"role": "system",
|
|
49
|
+
"content": "You are a calculator assistant. Use the calculate function to perform mathematical operations and provide the results.",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"role": "user",
|
|
53
|
+
"content": user_prompt,
|
|
54
|
+
},
|
|
55
|
+
]
|
|
56
|
+
tools = [
|
|
57
|
+
{
|
|
58
|
+
"type": "function",
|
|
59
|
+
"function": {
|
|
60
|
+
"name": "calculate",
|
|
61
|
+
"description": "Evaluate a mathematical expression",
|
|
62
|
+
"parameters": {
|
|
63
|
+
"type": "object",
|
|
64
|
+
"properties": {
|
|
65
|
+
"expression": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"description": "The mathematical expression to evaluate",
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"required": ["expression"],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
response = client.chat.completions.create(
|
|
76
|
+
model=MODEL,
|
|
77
|
+
messages=messages,
|
|
78
|
+
tools=tools,
|
|
79
|
+
tool_choice={"type": "function", "function": {"name": "calculate"}},
|
|
80
|
+
max_tokens=4096,
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
response_message = response.choices[0].message
|
|
84
|
+
tool_calls = response_message.tool_calls
|
|
85
|
+
if tool_calls:
|
|
86
|
+
available_functions = {
|
|
87
|
+
"calculate": calculate,
|
|
88
|
+
}
|
|
89
|
+
messages.append(response_message)
|
|
90
|
+
for tool_call in tool_calls:
|
|
91
|
+
function_name = tool_call.function.name
|
|
92
|
+
function_to_call = available_functions[function_name]
|
|
93
|
+
function_args = json.loads(tool_call.function.arguments)
|
|
94
|
+
function_response = function_to_call(
|
|
95
|
+
expression=function_args.get("expression")
|
|
96
|
+
)
|
|
97
|
+
messages.append(
|
|
98
|
+
{
|
|
99
|
+
"tool_call_id": tool_call.id,
|
|
100
|
+
"role": "tool",
|
|
101
|
+
"name": function_name,
|
|
102
|
+
"content": function_response,
|
|
103
|
+
}
|
|
104
|
+
)
|
|
105
|
+
second_response = client.chat.completions.create(model=MODEL, messages=messages)
|
|
106
|
+
return second_response.choices[0].message.content
|
|
107
|
+
|
|
108
|
+
|
|
33
109
|
def groq_streaming():
|
|
34
110
|
chat_completion = client.chat.completions.create(
|
|
35
111
|
messages=[
|
|
@@ -27,6 +27,7 @@ from langtrace_python_sdk.utils.llm import (
|
|
|
27
27
|
)
|
|
28
28
|
from langtrace.trace_attributes import Event, LLMSpanAttributes
|
|
29
29
|
from langtrace_python_sdk.utils import set_span_attribute
|
|
30
|
+
from langtrace_python_sdk.utils.misc import datetime_encoder
|
|
30
31
|
from opentelemetry.trace import SpanKind
|
|
31
32
|
from opentelemetry.trace.status import Status, StatusCode
|
|
32
33
|
|
|
@@ -50,7 +51,9 @@ def rerank(original_method, version, tracer):
|
|
|
50
51
|
SpanAttributes.LLM_REQUEST_MODEL: kwargs.get("model") or "command-r-plus",
|
|
51
52
|
SpanAttributes.LLM_URL: APIS["RERANK"]["URL"],
|
|
52
53
|
SpanAttributes.LLM_PATH: APIS["RERANK"]["ENDPOINT"],
|
|
53
|
-
SpanAttributes.LLM_REQUEST_DOCUMENTS: json.dumps(
|
|
54
|
+
SpanAttributes.LLM_REQUEST_DOCUMENTS: json.dumps(
|
|
55
|
+
kwargs.get("documents"), cls=datetime_encoder
|
|
56
|
+
),
|
|
54
57
|
SpanAttributes.LLM_COHERE_RERANK_QUERY: kwargs.get("query"),
|
|
55
58
|
**get_extra_attributes(),
|
|
56
59
|
}
|
|
@@ -16,8 +16,7 @@ limitations under the License.
|
|
|
16
16
|
|
|
17
17
|
import os
|
|
18
18
|
import sys
|
|
19
|
-
from typing import Optional
|
|
20
|
-
import importlib.util
|
|
19
|
+
from typing import Any, Optional
|
|
21
20
|
from colorama import Fore
|
|
22
21
|
from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME, SENTRY_DSN
|
|
23
22
|
from opentelemetry import trace
|
|
@@ -62,7 +61,12 @@ from langtrace_python_sdk.types import (
|
|
|
62
61
|
InstrumentationMethods,
|
|
63
62
|
InstrumentationType,
|
|
64
63
|
)
|
|
65
|
-
from langtrace_python_sdk.utils import
|
|
64
|
+
from langtrace_python_sdk.utils import (
|
|
65
|
+
check_if_sdk_is_outdated,
|
|
66
|
+
get_sdk_version,
|
|
67
|
+
is_package_installed,
|
|
68
|
+
validate_instrumentations,
|
|
69
|
+
)
|
|
66
70
|
from langtrace_python_sdk.utils.langtrace_sampler import LangtraceSampler
|
|
67
71
|
import sentry_sdk
|
|
68
72
|
|
|
@@ -193,10 +197,10 @@ def init(
|
|
|
193
197
|
|
|
194
198
|
def init_instrumentations(
|
|
195
199
|
disable_instrumentations: Optional[DisableInstrumentations],
|
|
196
|
-
all_instrumentations: dict
|
|
200
|
+
all_instrumentations: dict,
|
|
197
201
|
):
|
|
198
202
|
if disable_instrumentations is None:
|
|
199
|
-
for
|
|
203
|
+
for name, v in all_instrumentations.items():
|
|
200
204
|
if is_package_installed(name):
|
|
201
205
|
v.instrument()
|
|
202
206
|
|
|
@@ -205,61 +209,19 @@ def init_instrumentations(
|
|
|
205
209
|
validate_instrumentations(disable_instrumentations)
|
|
206
210
|
|
|
207
211
|
for key in disable_instrumentations:
|
|
208
|
-
for
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
for _, v in filtered_dict.items():
|
|
225
|
-
v.instrument()
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
def validate_instrumentations(disable_instrumentations):
|
|
229
|
-
if disable_instrumentations is not None:
|
|
230
|
-
for key, value in disable_instrumentations.items():
|
|
231
|
-
if isinstance(value, str):
|
|
232
|
-
# Convert single string to list of enum values
|
|
233
|
-
disable_instrumentations[key] = [InstrumentationType.from_string(value)]
|
|
234
|
-
elif isinstance(value, list):
|
|
235
|
-
# Convert list of strings to list of enum values
|
|
236
|
-
disable_instrumentations[key] = [
|
|
237
|
-
(
|
|
238
|
-
InstrumentationType.from_string(item)
|
|
239
|
-
if isinstance(item, str)
|
|
240
|
-
else item
|
|
241
|
-
)
|
|
242
|
-
for item in value
|
|
243
|
-
]
|
|
244
|
-
# Validate all items are of enum type
|
|
245
|
-
if not all(
|
|
246
|
-
isinstance(item, InstrumentationType)
|
|
247
|
-
for item in disable_instrumentations[key]
|
|
248
|
-
):
|
|
249
|
-
raise TypeError(
|
|
250
|
-
f"All items in {key} must be of type InstrumentationType"
|
|
251
|
-
)
|
|
252
|
-
if (
|
|
253
|
-
disable_instrumentations.get("all_except") is not None
|
|
254
|
-
and disable_instrumentations.get("only") is not None
|
|
255
|
-
):
|
|
256
|
-
raise ValueError(
|
|
257
|
-
"Cannot specify both only and all_except in disable_instrumentations"
|
|
258
|
-
)
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
def is_package_installed(package_name):
|
|
262
|
-
import pkg_resources
|
|
263
|
-
|
|
264
|
-
installed_packages = {p.key for p in pkg_resources.working_set}
|
|
265
|
-
return package_name in installed_packages
|
|
212
|
+
vendors = [k.value for k in disable_instrumentations[key]]
|
|
213
|
+
|
|
214
|
+
key = next(iter(disable_instrumentations))
|
|
215
|
+
filtered_dict = {}
|
|
216
|
+
if key == "all_except":
|
|
217
|
+
filtered_dict = {
|
|
218
|
+
k: v for k, v in all_instrumentations.items() if k in vendors
|
|
219
|
+
}
|
|
220
|
+
elif key == "only":
|
|
221
|
+
filtered_dict = {
|
|
222
|
+
k: v for k, v in all_instrumentations.items() if k not in vendors
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
for name, v in filtered_dict.items():
|
|
226
|
+
if is_package_installed(name):
|
|
227
|
+
v.instrument()
|
|
@@ -8,16 +8,22 @@ class InstrumentationType(Enum):
|
|
|
8
8
|
ANTHROPIC = "anthropic"
|
|
9
9
|
GROQ = "groq"
|
|
10
10
|
MISTRAL = "mistral"
|
|
11
|
-
PINECONE = "pinecone"
|
|
12
|
-
LLAMAINDEX = "
|
|
11
|
+
PINECONE = "pinecone-client"
|
|
12
|
+
LLAMAINDEX = "llama-index"
|
|
13
13
|
CHROMADB = "chromadb"
|
|
14
14
|
QDRANT = "qdrant"
|
|
15
15
|
LANGCHAIN = "langchain"
|
|
16
|
-
LANGCHAIN_CORE = "
|
|
17
|
-
LANGCHAIN_COMMUNITY = "
|
|
16
|
+
LANGCHAIN_CORE = "langchain-core"
|
|
17
|
+
LANGCHAIN_COMMUNITY = "langchain-community"
|
|
18
18
|
LANGGRAPH = "langgraph"
|
|
19
19
|
WEAVIATE = "weaviate"
|
|
20
20
|
OLLAMA = "ollama"
|
|
21
|
+
AUTOGEN = "autogen"
|
|
22
|
+
DSPY = "dspy-ai"
|
|
23
|
+
CREWAI = "crewai"
|
|
24
|
+
GEMINI = "google-generativeai"
|
|
25
|
+
VERTEXAI = "google-cloud-aiplatform"
|
|
26
|
+
MISTRALAI = "mistralai"
|
|
21
27
|
|
|
22
28
|
@staticmethod
|
|
23
29
|
def from_string(value: str):
|
|
@@ -112,7 +118,10 @@ class InstrumentationMethods(TypedDict):
|
|
|
112
118
|
cohere: List[VendorMethods.CohereMethods]
|
|
113
119
|
weaviate: List[str]
|
|
114
120
|
|
|
121
|
+
|
|
115
122
|
_T = TypeVar("_T")
|
|
123
|
+
|
|
124
|
+
|
|
116
125
|
class NotGiven:
|
|
117
126
|
"""
|
|
118
127
|
A sentinel singleton class used to distinguish omitted keyword arguments
|
|
@@ -139,4 +148,4 @@ class NotGiven:
|
|
|
139
148
|
|
|
140
149
|
|
|
141
150
|
NotGivenOr = Union[_T, NotGiven]
|
|
142
|
-
NOT_GIVEN = NotGiven()
|
|
151
|
+
NOT_GIVEN = NotGiven()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from langtrace_python_sdk.types import NOT_GIVEN
|
|
1
|
+
from langtrace_python_sdk.types import NOT_GIVEN, InstrumentationType
|
|
2
2
|
from .sdk_version_checker import SDKVersionChecker
|
|
3
3
|
from opentelemetry.trace import Span
|
|
4
4
|
from langtrace.trace_attributes import SpanAttributes
|
|
@@ -49,3 +49,44 @@ def check_if_sdk_is_outdated():
|
|
|
49
49
|
|
|
50
50
|
def get_sdk_version():
|
|
51
51
|
return SDKVersionChecker().get_sdk_version()
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def validate_instrumentations(disable_instrumentations):
|
|
55
|
+
if disable_instrumentations is not None:
|
|
56
|
+
if (
|
|
57
|
+
disable_instrumentations.get("all_except") is not None
|
|
58
|
+
and disable_instrumentations.get("only") is not None
|
|
59
|
+
):
|
|
60
|
+
raise ValueError(
|
|
61
|
+
"Cannot specify both only and all_except in disable_instrumentations"
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
for key, value in disable_instrumentations.items():
|
|
65
|
+
if isinstance(value, str):
|
|
66
|
+
# Convert single string to list of enum values
|
|
67
|
+
disable_instrumentations[key] = [InstrumentationType.from_string(value)]
|
|
68
|
+
elif isinstance(value, list):
|
|
69
|
+
# Convert list of strings to list of enum values
|
|
70
|
+
disable_instrumentations[key] = [
|
|
71
|
+
(
|
|
72
|
+
InstrumentationType.from_string(item)
|
|
73
|
+
if isinstance(item, str)
|
|
74
|
+
else item
|
|
75
|
+
)
|
|
76
|
+
for item in value
|
|
77
|
+
]
|
|
78
|
+
# Validate all items are of enum type
|
|
79
|
+
if not all(
|
|
80
|
+
isinstance(item, InstrumentationType)
|
|
81
|
+
for item in disable_instrumentations[key]
|
|
82
|
+
):
|
|
83
|
+
raise TypeError(
|
|
84
|
+
f"All items in {key} must be of type InstrumentationType"
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def is_package_installed(package_name):
|
|
89
|
+
import pkg_resources
|
|
90
|
+
|
|
91
|
+
installed_packages = {p.key for p in pkg_resources.working_set}
|
|
92
|
+
return package_name in installed_packages
|
|
@@ -124,6 +124,7 @@ def get_llm_request_attributes(kwargs, prompts=None, model=None, operation_name=
|
|
|
124
124
|
|
|
125
125
|
top_p = kwargs.get("p", None) or kwargs.get("top_p", None)
|
|
126
126
|
tools = kwargs.get("tools", None)
|
|
127
|
+
tool_choice = kwargs.get("tool_choice", None)
|
|
127
128
|
return {
|
|
128
129
|
SpanAttributes.LLM_OPERATION_NAME: operation_name,
|
|
129
130
|
SpanAttributes.LLM_REQUEST_MODEL: model
|
|
@@ -141,7 +142,7 @@ def get_llm_request_attributes(kwargs, prompts=None, model=None, operation_name=
|
|
|
141
142
|
SpanAttributes.LLM_FREQUENCY_PENALTY: kwargs.get("frequency_penalty"),
|
|
142
143
|
SpanAttributes.LLM_REQUEST_SEED: kwargs.get("seed"),
|
|
143
144
|
SpanAttributes.LLM_TOOLS: json.dumps(tools) if tools else None,
|
|
144
|
-
SpanAttributes.LLM_TOOL_CHOICE:
|
|
145
|
+
SpanAttributes.LLM_TOOL_CHOICE: json.dumps(tool_choice) if tool_choice else None,
|
|
145
146
|
SpanAttributes.LLM_REQUEST_LOGPROPS: kwargs.get("logprobs"),
|
|
146
147
|
SpanAttributes.LLM_REQUEST_LOGITBIAS: kwargs.get("logit_bias"),
|
|
147
148
|
SpanAttributes.LLM_REQUEST_TOP_LOGPROPS: kwargs.get("top_logprobs"),
|
|
@@ -60,3 +60,11 @@ def serialize_args(*args):
|
|
|
60
60
|
|
|
61
61
|
# Convert to string representation
|
|
62
62
|
return json.dumps(serializable_args)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class datetime_encoder(json.JSONEncoder):
|
|
66
|
+
def default(self, o):
|
|
67
|
+
if isinstance(o, datetime):
|
|
68
|
+
return o.isoformat()
|
|
69
|
+
|
|
70
|
+
return json.JSONEncoder.default(self, o)
|
langtrace_python_sdk/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "2.3.
|
|
1
|
+
__version__ = "2.3.17"
|
|
@@ -11,7 +11,7 @@ examples/cohere_example/__init__.py,sha256=oYpsnS-dKOlWLkPEUWhXxi1vfxa77bt_DOdkJ
|
|
|
11
11
|
examples/cohere_example/chat.py,sha256=A1ZSkkPPOj3h27VSSa_o_Thabz08ZUzUgTVgAG0pgcA,901
|
|
12
12
|
examples/cohere_example/chat_stream.py,sha256=BvhUgBEuyMhyzRZ_2i_SBvO9Ndf0b7-aRDyO399RyFE,664
|
|
13
13
|
examples/cohere_example/embed.py,sha256=p9BJvOg09JVb8BfTCb63v3uh_wOsi_OyrCAJdXXrE6E,496
|
|
14
|
-
examples/cohere_example/rerank.py,sha256=
|
|
14
|
+
examples/cohere_example/rerank.py,sha256=9XEG90sTa6djcHqikSqZDnffLhxEZub76e7-l2LPYdI,1445
|
|
15
15
|
examples/cohere_example/tools.py,sha256=a5uvS058tcwU6PJbF9EDO6LPVmPj2LoW4Vn8Web3Iq8,1656
|
|
16
16
|
examples/crewai_example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
examples/crewai_example/basic.py,sha256=PBu4f8yQfZO1L_22UDm_ReU9lnEcycjZcGuy5UpgDJM,1948
|
|
@@ -44,9 +44,9 @@ examples/gemini_example/function_tools.py,sha256=ZOBrdPy_8s3NDfsF5A4RXIoUi2VXlD8
|
|
|
44
44
|
examples/gemini_example/main.py,sha256=cTXqgOa6lEMwgX56uneM-1TbIY_QZtDRkByW5z0LpNk,2470
|
|
45
45
|
examples/hiveagent_example/basic.py,sha256=Sd7I5w8w5Xx7ODaydTY30yiq9HwJDMKHQywrZjgehP0,441
|
|
46
46
|
examples/inspect_ai_example/basic_eval.py,sha256=hDg2BB9ONNpOGRVH08HsghnS1373sOnq6dyDmUQd9gY,1040
|
|
47
|
-
examples/langchain_example/__init__.py,sha256=
|
|
47
|
+
examples/langchain_example/__init__.py,sha256=hYsiJzR050yCwip4-KZD9EhSLeBMeOUU1eQzyXSfwRs,669
|
|
48
48
|
examples/langchain_example/basic.py,sha256=hrwMHOUv78-su5DP9i5krkQnMGHq0svEXsBa40Jkggg,2981
|
|
49
|
-
examples/langchain_example/groq_example.py,sha256=
|
|
49
|
+
examples/langchain_example/groq_example.py,sha256=Y_VyCO8IcQ5ZdSssiUd5tfFXWhCvPioU5CvB-vi9lOU,3494
|
|
50
50
|
examples/langchain_example/langchain_google_example.py,sha256=SQqz3lWApm7DJK9pW-FwtGUtDJ5nkbJ8MIPz79Rwtw0,817
|
|
51
51
|
examples/langchain_example/langgraph_example.py,sha256=7C2a4Sg0PKbbab03CVkStO3MzT7C-O1UtdmObvBXurM,2005
|
|
52
52
|
examples/langchain_example/langgraph_example_tools.py,sha256=rFwgQYRngeyCz9PuBxnllp5t5PIHk8d-UDKwCQTgkxw,4208
|
|
@@ -91,8 +91,8 @@ examples/vertexai_example/main.py,sha256=gndId5X5ksD-ycxnAWMdEqIDbLc3kz5Vt8vm4YP
|
|
|
91
91
|
examples/weaviate_example/__init__.py,sha256=8JMDBsRSEV10HfTd-YC7xb4txBjD3la56snk-Bbg2Kw,618
|
|
92
92
|
examples/weaviate_example/query_text.py,sha256=wPHQTc_58kPoKTZMygVjTj-2ZcdrIuaausJfMxNQnQc,127162
|
|
93
93
|
langtrace_python_sdk/__init__.py,sha256=VZM6i71NR7pBQK6XvJWRelknuTYUhqwqE7PlicKa5Wg,1166
|
|
94
|
-
langtrace_python_sdk/langtrace.py,sha256=
|
|
95
|
-
langtrace_python_sdk/version.py,sha256=
|
|
94
|
+
langtrace_python_sdk/langtrace.py,sha256=sNCOHq5dBsNAHkNLB9VsR-FgbnrQ_2Tjo7jiyR8svgk,8218
|
|
95
|
+
langtrace_python_sdk/version.py,sha256=RohQLHKqlPro_f4YsroQT2N42TzHsnal4n8zBKAKrjE,23
|
|
96
96
|
langtrace_python_sdk/constants/__init__.py,sha256=3CNYkWMdd1DrkGqzLUgNZXjdAlM6UFMlf_F-odAToyc,146
|
|
97
97
|
langtrace_python_sdk/constants/exporter/langtrace_exporter.py,sha256=5MNjnAOg-4am78J3gVMH6FSwq5N8TOj72ugkhsw4vi0,46
|
|
98
98
|
langtrace_python_sdk/constants/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -126,7 +126,7 @@ langtrace_python_sdk/instrumentation/chroma/instrumentation.py,sha256=nT6PS6bsrI
|
|
|
126
126
|
langtrace_python_sdk/instrumentation/chroma/patch.py,sha256=jYcqBeu-0cYA29PO880oXYRwYh-R1oseXmzfK6UDBps,9074
|
|
127
127
|
langtrace_python_sdk/instrumentation/cohere/__init__.py,sha256=sGUSLdTUyYf36Tm6L5jQflhzCqvmWrhnBOMYHjvp6Hs,95
|
|
128
128
|
langtrace_python_sdk/instrumentation/cohere/instrumentation.py,sha256=YQFHZIBd7SSPD4b6Va-ZR0thf_AuBCqj5yzHLHJVWnM,2121
|
|
129
|
-
langtrace_python_sdk/instrumentation/cohere/patch.py,sha256=
|
|
129
|
+
langtrace_python_sdk/instrumentation/cohere/patch.py,sha256=AnRWIy00XaLdQg670s8FDXoVWai3sF1JKeR70pDuZ7I,20986
|
|
130
130
|
langtrace_python_sdk/instrumentation/crewai/__init__.py,sha256=_UBKfvQv7l0g2_wnmA5F6CdSAFH0atNOVPd49zsN3aM,88
|
|
131
131
|
langtrace_python_sdk/instrumentation/crewai/instrumentation.py,sha256=5Umzq8zjEnMEtjZZiMB4DQOPkxZ-1vts7RKC6JWpn24,2969
|
|
132
132
|
langtrace_python_sdk/instrumentation/crewai/patch.py,sha256=C2OKKPC-pzfzZWxPc74kHdYsKTX9yRhOgVY47WY9KN8,9109
|
|
@@ -179,11 +179,11 @@ langtrace_python_sdk/instrumentation/vertexai/patch.py,sha256=vPxwuSKgA3cUtelgot
|
|
|
179
179
|
langtrace_python_sdk/instrumentation/weaviate/__init__.py,sha256=Mc-Je6evPo-kKQzerTG7bd1XO5JOh4YGTE3wBxaUBwg,99
|
|
180
180
|
langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=bzPwtoQD0X6beLYXe6ZL7XRkyRkqdiqKiGc4gOlCQdU,2295
|
|
181
181
|
langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=aWLDbNGz35V6XQUv4lkMD0O689suqh6KdTa33VDtUkE,6905
|
|
182
|
-
langtrace_python_sdk/types/__init__.py,sha256=
|
|
183
|
-
langtrace_python_sdk/utils/__init__.py,sha256=
|
|
182
|
+
langtrace_python_sdk/types/__init__.py,sha256=VnfLV5pVHIB9VRIpEwIDQjWSPEAqQKnq6VNbqsm9W3Q,4287
|
|
183
|
+
langtrace_python_sdk/utils/__init__.py,sha256=O-Ra9IDd1MnxihdQUC8HW_wYFhk7KbTCK2BIl02yacQ,2935
|
|
184
184
|
langtrace_python_sdk/utils/langtrace_sampler.py,sha256=BupNndHbU9IL_wGleKetz8FdcveqHMBVz1bfKTTW80w,1753
|
|
185
|
-
langtrace_python_sdk/utils/llm.py,sha256=
|
|
186
|
-
langtrace_python_sdk/utils/misc.py,sha256=
|
|
185
|
+
langtrace_python_sdk/utils/llm.py,sha256=Hm3mr1iuk1dC-dGnBymDS6PEdOO5vaoPQzCtTeOqUQs,14970
|
|
186
|
+
langtrace_python_sdk/utils/misc.py,sha256=LaQr5LOmZMiuwVdjYh7aIu6o2C_Xb1wgpQGNOVmRzfE,1918
|
|
187
187
|
langtrace_python_sdk/utils/prompt_registry.py,sha256=n5dQMVLBw8aJZY8Utvf67bncc25ELf6AH9BYw8_hSzo,2619
|
|
188
188
|
langtrace_python_sdk/utils/sdk_version_checker.py,sha256=F-VVVH7Fmhr5LcY0IIe-34zIi5RQcx26uuxFpPzZesM,1782
|
|
189
189
|
langtrace_python_sdk/utils/silently_fail.py,sha256=wzmvRDZppaRZgVP8C1xpq2GlWXYCwubhaeWvEbQP1SI,1196
|
|
@@ -231,8 +231,8 @@ tests/pinecone/cassettes/test_query.yaml,sha256=b5v9G3ssUy00oG63PlFUR3JErF2Js-5A
|
|
|
231
231
|
tests/pinecone/cassettes/test_upsert.yaml,sha256=neWmQ1v3d03V8WoLl8FoFeeCYImb8pxlJBWnFd_lITU,38607
|
|
232
232
|
tests/qdrant/conftest.py,sha256=9n0uHxxIjWk9fbYc4bx-uP8lSAgLBVx-cV9UjnsyCHM,381
|
|
233
233
|
tests/qdrant/test_qdrant.py,sha256=pzjAjVY2kmsmGfrI2Gs2xrolfuaNHz7l1fqGQCjp5_o,3353
|
|
234
|
-
langtrace_python_sdk-2.3.
|
|
235
|
-
langtrace_python_sdk-2.3.
|
|
236
|
-
langtrace_python_sdk-2.3.
|
|
237
|
-
langtrace_python_sdk-2.3.
|
|
238
|
-
langtrace_python_sdk-2.3.
|
|
234
|
+
langtrace_python_sdk-2.3.17.dist-info/METADATA,sha256=oCqK5sGGX7UVC1PWPDXIPxNYFw8H6FmB5QkuYoUP9vQ,15380
|
|
235
|
+
langtrace_python_sdk-2.3.17.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
|
236
|
+
langtrace_python_sdk-2.3.17.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
|
|
237
|
+
langtrace_python_sdk-2.3.17.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
238
|
+
langtrace_python_sdk-2.3.17.dist-info/RECORD,,
|
|
File without changes
|
{langtrace_python_sdk-2.3.15.dist-info → langtrace_python_sdk-2.3.17.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{langtrace_python_sdk-2.3.15.dist-info → langtrace_python_sdk-2.3.17.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|