uipath-langchain 0.1.28__py3-none-any.whl → 0.1.34__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.
- uipath_langchain/_utils/_request_mixin.py +8 -0
- uipath_langchain/_utils/_settings.py +3 -2
- uipath_langchain/agent/guardrails/__init__.py +0 -16
- uipath_langchain/agent/guardrails/actions/__init__.py +2 -0
- uipath_langchain/agent/guardrails/actions/block_action.py +1 -1
- uipath_langchain/agent/guardrails/actions/escalate_action.py +17 -34
- uipath_langchain/agent/guardrails/actions/filter_action.py +55 -0
- uipath_langchain/agent/guardrails/actions/log_action.py +1 -1
- uipath_langchain/agent/guardrails/guardrail_nodes.py +161 -45
- uipath_langchain/agent/guardrails/guardrails_factory.py +200 -4
- uipath_langchain/agent/guardrails/types.py +0 -12
- uipath_langchain/agent/guardrails/utils.py +146 -0
- uipath_langchain/agent/react/agent.py +20 -7
- uipath_langchain/agent/react/constants.py +1 -2
- uipath_langchain/agent/{guardrails → react/guardrails}/guardrails_subgraph.py +57 -18
- uipath_langchain/agent/react/llm_node.py +41 -10
- uipath_langchain/agent/react/router.py +48 -37
- uipath_langchain/agent/react/types.py +15 -1
- uipath_langchain/agent/react/utils.py +1 -1
- uipath_langchain/agent/tools/__init__.py +2 -0
- uipath_langchain/agent/tools/mcp_tool.py +86 -0
- uipath_langchain/chat/__init__.py +4 -0
- uipath_langchain/chat/bedrock.py +16 -0
- uipath_langchain/chat/openai.py +56 -26
- uipath_langchain/chat/supported_models.py +9 -0
- uipath_langchain/chat/vertex.py +62 -46
- uipath_langchain/embeddings/embeddings.py +18 -12
- uipath_langchain/runtime/schema.py +72 -16
- {uipath_langchain-0.1.28.dist-info → uipath_langchain-0.1.34.dist-info}/METADATA +4 -2
- {uipath_langchain-0.1.28.dist-info → uipath_langchain-0.1.34.dist-info}/RECORD +33 -30
- {uipath_langchain-0.1.28.dist-info → uipath_langchain-0.1.34.dist-info}/WHEEL +0 -0
- {uipath_langchain-0.1.28.dist-info → uipath_langchain-0.1.34.dist-info}/entry_points.txt +0 -0
- {uipath_langchain-0.1.28.dist-info → uipath_langchain-0.1.34.dist-info}/licenses/LICENSE +0 -0
uipath_langchain/chat/vertex.py
CHANGED
|
@@ -40,60 +40,59 @@ from langchain_google_genai import ChatGoogleGenerativeAI
|
|
|
40
40
|
from pydantic import PrivateAttr
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
def
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
headers["X-UiPath-Streaming-Enabled"] = "true" if is_streaming else "false"
|
|
54
|
-
|
|
55
|
-
gateway_url_parsed = httpx.URL(gateway_url)
|
|
56
|
-
if gateway_url_parsed.host:
|
|
57
|
-
headers["host"] = gateway_url_parsed.host
|
|
58
|
-
|
|
59
|
-
return httpx.Request(
|
|
60
|
-
method=request.method,
|
|
61
|
-
url=gateway_url,
|
|
62
|
-
headers=headers,
|
|
63
|
-
content=request.content,
|
|
64
|
-
extensions=request.extensions,
|
|
65
|
-
)
|
|
66
|
-
return request
|
|
43
|
+
def _rewrite_vertex_url(original_url: str, gateway_url: str) -> httpx.URL | None:
|
|
44
|
+
"""Rewrite Google GenAI URLs to UiPath gateway endpoint.
|
|
45
|
+
|
|
46
|
+
Handles URL patterns containing generateContent or streamGenerateContent.
|
|
47
|
+
Returns the gateway URL, or None if no rewrite needed.
|
|
48
|
+
"""
|
|
49
|
+
if "generateContent" in original_url or "streamGenerateContent" in original_url:
|
|
50
|
+
return httpx.URL(gateway_url)
|
|
51
|
+
return None
|
|
67
52
|
|
|
68
53
|
|
|
69
|
-
class _UrlRewriteTransport(httpx.
|
|
54
|
+
class _UrlRewriteTransport(httpx.HTTPTransport):
|
|
70
55
|
"""Transport that rewrites URLs to redirect to UiPath gateway."""
|
|
71
56
|
|
|
72
|
-
def __init__(self, gateway_url: str):
|
|
57
|
+
def __init__(self, gateway_url: str, verify: bool = True):
|
|
58
|
+
super().__init__(verify=verify)
|
|
73
59
|
self.gateway_url = gateway_url
|
|
74
|
-
self._transport = httpx.HTTPTransport()
|
|
75
60
|
|
|
76
61
|
def handle_request(self, request: httpx.Request) -> httpx.Response:
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
62
|
+
original_url = str(request.url)
|
|
63
|
+
new_url = _rewrite_vertex_url(original_url, self.gateway_url)
|
|
64
|
+
if new_url:
|
|
65
|
+
# Set streaming header based on original URL before modifying
|
|
66
|
+
is_streaming = "alt=sse" in original_url
|
|
67
|
+
request.headers["X-UiPath-Streaming-Enabled"] = (
|
|
68
|
+
"true" if is_streaming else "false"
|
|
69
|
+
)
|
|
70
|
+
# Update host header to match the new URL
|
|
71
|
+
request.headers["host"] = new_url.host
|
|
72
|
+
request.url = new_url
|
|
73
|
+
return super().handle_request(request)
|
|
82
74
|
|
|
83
75
|
|
|
84
|
-
class _AsyncUrlRewriteTransport(httpx.
|
|
76
|
+
class _AsyncUrlRewriteTransport(httpx.AsyncHTTPTransport):
|
|
85
77
|
"""Async transport that rewrites URLs to redirect to UiPath gateway."""
|
|
86
78
|
|
|
87
|
-
def __init__(self, gateway_url: str):
|
|
79
|
+
def __init__(self, gateway_url: str, verify: bool = True):
|
|
80
|
+
super().__init__(verify=verify)
|
|
88
81
|
self.gateway_url = gateway_url
|
|
89
|
-
self._transport = httpx.AsyncHTTPTransport()
|
|
90
82
|
|
|
91
83
|
async def handle_async_request(self, request: httpx.Request) -> httpx.Response:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
84
|
+
original_url = str(request.url)
|
|
85
|
+
new_url = _rewrite_vertex_url(original_url, self.gateway_url)
|
|
86
|
+
if new_url:
|
|
87
|
+
# Set streaming header based on original URL before modifying
|
|
88
|
+
is_streaming = "alt=sse" in original_url
|
|
89
|
+
request.headers["X-UiPath-Streaming-Enabled"] = (
|
|
90
|
+
"true" if is_streaming else "false"
|
|
91
|
+
)
|
|
92
|
+
# Update host header to match the new URL
|
|
93
|
+
request.headers["host"] = new_url.host
|
|
94
|
+
request.url = new_url
|
|
95
|
+
return await super().handle_async_request(request)
|
|
97
96
|
|
|
98
97
|
|
|
99
98
|
class UiPathChatVertex(ChatGoogleGenerativeAI):
|
|
@@ -103,6 +102,8 @@ class UiPathChatVertex(ChatGoogleGenerativeAI):
|
|
|
103
102
|
_model_name: str = PrivateAttr()
|
|
104
103
|
_uipath_token: str = PrivateAttr()
|
|
105
104
|
_uipath_llmgw_url: Optional[str] = PrivateAttr(default=None)
|
|
105
|
+
_agenthub_config: Optional[str] = PrivateAttr(default=None)
|
|
106
|
+
_byo_connection_id: Optional[str] = PrivateAttr(default=None)
|
|
106
107
|
|
|
107
108
|
def __init__(
|
|
108
109
|
self,
|
|
@@ -111,6 +112,8 @@ class UiPathChatVertex(ChatGoogleGenerativeAI):
|
|
|
111
112
|
token: Optional[str] = None,
|
|
112
113
|
model_name: str = GeminiModels.gemini_2_5_flash,
|
|
113
114
|
temperature: Optional[float] = None,
|
|
115
|
+
agenthub_config: Optional[str] = None,
|
|
116
|
+
byo_connection_id: Optional[str] = None,
|
|
114
117
|
**kwargs: Any,
|
|
115
118
|
):
|
|
116
119
|
org_id = org_id or os.getenv("UIPATH_ORGANIZATION_ID")
|
|
@@ -131,18 +134,21 @@ class UiPathChatVertex(ChatGoogleGenerativeAI):
|
|
|
131
134
|
)
|
|
132
135
|
|
|
133
136
|
uipath_url = self._build_base_url(model_name)
|
|
134
|
-
headers = self._build_headers(token)
|
|
137
|
+
headers = self._build_headers(token, agenthub_config, byo_connection_id)
|
|
138
|
+
|
|
139
|
+
client_kwargs = get_httpx_client_kwargs()
|
|
140
|
+
verify = client_kwargs.get("verify", True)
|
|
135
141
|
|
|
136
142
|
http_options = genai_types.HttpOptions(
|
|
137
143
|
httpx_client=httpx.Client(
|
|
138
|
-
transport=_UrlRewriteTransport(uipath_url),
|
|
144
|
+
transport=_UrlRewriteTransport(uipath_url, verify=verify),
|
|
139
145
|
headers=headers,
|
|
140
|
-
**
|
|
146
|
+
**client_kwargs,
|
|
141
147
|
),
|
|
142
148
|
httpx_async_client=httpx.AsyncClient(
|
|
143
|
-
transport=_AsyncUrlRewriteTransport(uipath_url),
|
|
149
|
+
transport=_AsyncUrlRewriteTransport(uipath_url, verify=verify),
|
|
144
150
|
headers=headers,
|
|
145
|
-
**
|
|
151
|
+
**client_kwargs,
|
|
146
152
|
),
|
|
147
153
|
)
|
|
148
154
|
|
|
@@ -168,6 +174,8 @@ class UiPathChatVertex(ChatGoogleGenerativeAI):
|
|
|
168
174
|
self._model_name = model_name
|
|
169
175
|
self._uipath_token = token
|
|
170
176
|
self._uipath_llmgw_url = uipath_url
|
|
177
|
+
self._agenthub_config = agenthub_config
|
|
178
|
+
self._byo_connection_id = byo_connection_id
|
|
171
179
|
|
|
172
180
|
if self.temperature is not None and not 0 <= self.temperature <= 2.0:
|
|
173
181
|
raise ValueError("temperature must be in the range [0.0, 2.0]")
|
|
@@ -182,11 +190,19 @@ class UiPathChatVertex(ChatGoogleGenerativeAI):
|
|
|
182
190
|
self.default_metadata = tuple(additional_headers.items())
|
|
183
191
|
|
|
184
192
|
@staticmethod
|
|
185
|
-
def _build_headers(
|
|
193
|
+
def _build_headers(
|
|
194
|
+
token: str,
|
|
195
|
+
agenthub_config: Optional[str] = None,
|
|
196
|
+
byo_connection_id: Optional[str] = None,
|
|
197
|
+
) -> dict[str, str]:
|
|
186
198
|
"""Build HTTP headers for UiPath Gateway requests."""
|
|
187
199
|
headers = {
|
|
188
200
|
"Authorization": f"Bearer {token}",
|
|
189
201
|
}
|
|
202
|
+
if agenthub_config:
|
|
203
|
+
headers["X-UiPath-AgentHub-Config"] = agenthub_config
|
|
204
|
+
if byo_connection_id:
|
|
205
|
+
headers["X-UiPath-LlmGateway-ByoIsConnectionId"] = byo_connection_id
|
|
190
206
|
if job_key := os.getenv("UIPATH_JOB_KEY"):
|
|
191
207
|
headers["X-UiPath-JobKey"] = job_key
|
|
192
208
|
if process_key := os.getenv("UIPATH_PROCESS_KEY"):
|
|
@@ -4,6 +4,7 @@ from typing import Any
|
|
|
4
4
|
import httpx
|
|
5
5
|
from langchain_openai.embeddings import AzureOpenAIEmbeddings, OpenAIEmbeddings
|
|
6
6
|
from pydantic import Field
|
|
7
|
+
from uipath._utils._ssl_context import get_httpx_client_kwargs
|
|
7
8
|
from uipath.utils import EndpointManager
|
|
8
9
|
|
|
9
10
|
from uipath_langchain._utils._request_mixin import UiPathRequestMixin
|
|
@@ -26,19 +27,24 @@ class UiPathAzureOpenAIEmbeddings(UiPathRequestMixin, AzureOpenAIEmbeddings):
|
|
|
26
27
|
)
|
|
27
28
|
|
|
28
29
|
def __init__(self, **kwargs):
|
|
30
|
+
default_client_kwargs = get_httpx_client_kwargs()
|
|
31
|
+
client_kwargs = {
|
|
32
|
+
**default_client_kwargs,
|
|
33
|
+
"event_hooks": {
|
|
34
|
+
"request": [self._log_request_duration],
|
|
35
|
+
"response": [self._log_response_duration],
|
|
36
|
+
},
|
|
37
|
+
}
|
|
38
|
+
aclient_kwargs = {
|
|
39
|
+
**default_client_kwargs,
|
|
40
|
+
"event_hooks": {
|
|
41
|
+
"request": [self._alog_request_duration],
|
|
42
|
+
"response": [self._alog_response_duration],
|
|
43
|
+
},
|
|
44
|
+
}
|
|
29
45
|
super().__init__(
|
|
30
|
-
http_client=httpx.Client(
|
|
31
|
-
|
|
32
|
-
"request": [self._log_request_duration],
|
|
33
|
-
"response": [self._log_response_duration],
|
|
34
|
-
}
|
|
35
|
-
),
|
|
36
|
-
http_async_client=httpx.AsyncClient(
|
|
37
|
-
event_hooks={
|
|
38
|
-
"request": [self._alog_request_duration],
|
|
39
|
-
"response": [self._alog_response_duration],
|
|
40
|
-
}
|
|
41
|
-
),
|
|
46
|
+
http_client=httpx.Client(**client_kwargs),
|
|
47
|
+
http_async_client=httpx.AsyncClient(**aclient_kwargs),
|
|
42
48
|
**kwargs,
|
|
43
49
|
)
|
|
44
50
|
# Monkey-patch the OpenAI client to use your custom methods
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from collections.abc import Iterable
|
|
1
2
|
from dataclasses import dataclass
|
|
2
3
|
from typing import Any, Callable, TypeVar
|
|
3
4
|
|
|
@@ -31,28 +32,83 @@ class SchemaDetails:
|
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
def _unwrap_runnable_callable(
|
|
34
|
-
runnable: Runnable[Any, Any],
|
|
35
|
+
runnable: Runnable[Any, Any],
|
|
36
|
+
target_type: type[T],
|
|
37
|
+
_seen: set[int] | None = None,
|
|
35
38
|
) -> T | None:
|
|
36
|
-
"""
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
"""Try to find an instance of target_type (e.g., BaseChatModel)
|
|
40
|
+
inside a Runnable.
|
|
41
|
+
|
|
42
|
+
Handles:
|
|
43
|
+
- Direct model runnables
|
|
44
|
+
- LangGraph RunnableCallable
|
|
45
|
+
- LangChain function runnables (RunnableLambda, etc.)
|
|
46
|
+
- RunnableBinding / RunnableSequence with nested steps
|
|
44
47
|
"""
|
|
45
48
|
if isinstance(runnable, target_type):
|
|
46
49
|
return runnable
|
|
47
50
|
|
|
51
|
+
if _seen is None:
|
|
52
|
+
_seen = set()
|
|
53
|
+
obj_id = id(runnable)
|
|
54
|
+
if obj_id in _seen:
|
|
55
|
+
return None
|
|
56
|
+
_seen.add(obj_id)
|
|
57
|
+
|
|
58
|
+
func: Callable[..., Any] | None = None
|
|
59
|
+
|
|
60
|
+
# 1) LangGraph internal RunnableCallable
|
|
48
61
|
if RunnableCallable is not None and isinstance(runnable, RunnableCallable):
|
|
49
|
-
func
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
62
|
+
func = getattr(runnable, "func", None)
|
|
63
|
+
|
|
64
|
+
# 2) Generic LangChain function-wrapping runnables
|
|
65
|
+
if func is None:
|
|
66
|
+
for attr_name in ("func", "_func", "afunc", "_afunc"):
|
|
67
|
+
maybe = getattr(runnable, attr_name, None)
|
|
68
|
+
if callable(maybe):
|
|
69
|
+
func = maybe
|
|
70
|
+
break
|
|
71
|
+
|
|
72
|
+
# 3) Look into the function closure for a model
|
|
73
|
+
if func is not None:
|
|
74
|
+
closure = getattr(func, "__closure__", None) or ()
|
|
75
|
+
for cell in closure:
|
|
76
|
+
content = getattr(cell, "cell_contents", None)
|
|
77
|
+
if isinstance(content, target_type):
|
|
78
|
+
return content
|
|
79
|
+
if isinstance(content, Runnable):
|
|
80
|
+
found = _unwrap_runnable_callable(content, target_type, _seen)
|
|
81
|
+
if found is not None:
|
|
82
|
+
return found
|
|
83
|
+
|
|
84
|
+
# 4) Deep-scan attributes, including nested runnables / containers
|
|
85
|
+
def _scan_value(value: Any) -> T | None:
|
|
86
|
+
if isinstance(value, target_type):
|
|
87
|
+
return value
|
|
88
|
+
if isinstance(value, Runnable):
|
|
89
|
+
return _unwrap_runnable_callable(value, target_type, _seen)
|
|
90
|
+
if isinstance(value, dict):
|
|
91
|
+
for v in value.values():
|
|
92
|
+
found = _scan_value(v)
|
|
93
|
+
if found is not None:
|
|
94
|
+
return found
|
|
95
|
+
# Handle lists, tuples, sets, etc. but avoid strings/bytes
|
|
96
|
+
if isinstance(value, Iterable) and not isinstance(value, (str, bytes)):
|
|
97
|
+
for item in value:
|
|
98
|
+
found = _scan_value(item)
|
|
99
|
+
if found is not None:
|
|
100
|
+
return found
|
|
101
|
+
return None
|
|
102
|
+
|
|
103
|
+
try:
|
|
104
|
+
attrs = vars(runnable)
|
|
105
|
+
except TypeError:
|
|
106
|
+
attrs = {}
|
|
107
|
+
|
|
108
|
+
for value in attrs.values():
|
|
109
|
+
found = _scan_value(value)
|
|
110
|
+
if found is not None:
|
|
111
|
+
return found
|
|
56
112
|
|
|
57
113
|
return None
|
|
58
114
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uipath-langchain
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.34
|
|
4
4
|
Summary: Python SDK that enables developers to build and deploy LangGraph agents to the UiPath Cloud Platform
|
|
5
5
|
Project-URL: Homepage, https://uipath.com
|
|
6
6
|
Project-URL: Repository, https://github.com/UiPath/uipath-langchain-python
|
|
@@ -18,14 +18,16 @@ Requires-Dist: httpx>=0.27.0
|
|
|
18
18
|
Requires-Dist: jsonpath-ng>=1.7.0
|
|
19
19
|
Requires-Dist: jsonschema-pydantic-converter>=0.1.5
|
|
20
20
|
Requires-Dist: langchain-core<2.0.0,>=1.0.0
|
|
21
|
+
Requires-Dist: langchain-mcp-adapters==0.2.1
|
|
21
22
|
Requires-Dist: langchain-openai<2.0.0,>=1.0.0
|
|
22
23
|
Requires-Dist: langchain<2.0.0,>=1.0.0
|
|
23
24
|
Requires-Dist: langgraph-checkpoint-sqlite<4.0.0,>=3.0.0
|
|
24
25
|
Requires-Dist: langgraph<2.0.0,>=1.0.0
|
|
26
|
+
Requires-Dist: mcp==1.24.0
|
|
25
27
|
Requires-Dist: openinference-instrumentation-langchain>=0.1.56
|
|
26
28
|
Requires-Dist: pydantic-settings>=2.6.0
|
|
27
29
|
Requires-Dist: python-dotenv>=1.0.1
|
|
28
|
-
Requires-Dist: uipath<2.3.0,>=2.2.
|
|
30
|
+
Requires-Dist: uipath<2.3.0,>=2.2.35
|
|
29
31
|
Provides-Extra: bedrock
|
|
30
32
|
Requires-Dist: boto3-stubs>=1.41.4; extra == 'bedrock'
|
|
31
33
|
Requires-Dist: langchain-aws>=0.2.35; extra == 'bedrock'
|
|
@@ -11,51 +11,54 @@ uipath_langchain/_resources/REQUIRED_STRUCTURE.md,sha256=BRmWWFtM0qNXj5uumALVxq9
|
|
|
11
11
|
uipath_langchain/_tracing/__init__.py,sha256=C2dRvQ2ynxCmyICgE-rJHimWKEcFRME_o9gfX84Mb3Y,123
|
|
12
12
|
uipath_langchain/_tracing/_instrument_traceable.py,sha256=cIxtDvlrPxVSZLOvpl571HxFO3wg7pNem4rLUuMI2Vg,4276
|
|
13
13
|
uipath_langchain/_utils/__init__.py,sha256=-w-4TD9ZnJDCpj4VIPXhJciukrmDJJbmnOFnhAkAaEU,81
|
|
14
|
-
uipath_langchain/_utils/_request_mixin.py,sha256=
|
|
15
|
-
uipath_langchain/_utils/_settings.py,sha256=
|
|
14
|
+
uipath_langchain/_utils/_request_mixin.py,sha256=VjOyH9fS8WhKEXufoAoSRhfaY1jumLacRwBsbaRsiy8,31307
|
|
15
|
+
uipath_langchain/_utils/_settings.py,sha256=6E4yGzrEj3P3DcqCx_Y_lHQREQRfBm0yH1mSitiSJIU,3188
|
|
16
16
|
uipath_langchain/_utils/_sleep_policy.py,sha256=e9pHdjmcCj4CVoFM1jMyZFelH11YatsgWfpyrfXzKBQ,1251
|
|
17
17
|
uipath_langchain/agent/exceptions/__init__.py,sha256=GFh8mtsoKYghTHe93rRbIycWOW8dPt0okQjZuc2N-Hc,158
|
|
18
18
|
uipath_langchain/agent/exceptions/exceptions.py,sha256=G7LdeQ9uMljLGTlixWBHvNJ1ULtUIDIkzApjfbsF6_0,216
|
|
19
|
-
uipath_langchain/agent/guardrails/__init__.py,sha256=
|
|
20
|
-
uipath_langchain/agent/guardrails/guardrail_nodes.py,sha256=
|
|
21
|
-
uipath_langchain/agent/guardrails/guardrails_factory.py,sha256=
|
|
22
|
-
uipath_langchain/agent/guardrails/
|
|
23
|
-
uipath_langchain/agent/guardrails/
|
|
24
|
-
uipath_langchain/agent/guardrails/actions/__init__.py,sha256=
|
|
19
|
+
uipath_langchain/agent/guardrails/__init__.py,sha256=2lM-DFLp8oHR6qpkZy8_E93RL_tXKhtzbbsL00_m6TA,114
|
|
20
|
+
uipath_langchain/agent/guardrails/guardrail_nodes.py,sha256=GNfgz45RY2Ic_xchB7KvP3asURxAK9ZBbs8Z7VE_Pac,9491
|
|
21
|
+
uipath_langchain/agent/guardrails/guardrails_factory.py,sha256=4_YvYi13CdVr5qxpwkDpnXjlGe6L4XNmnbMeu9_BVUM,8998
|
|
22
|
+
uipath_langchain/agent/guardrails/types.py,sha256=guVi19x7x5atcaXTUWK_c9O3bP6HfmnX_1Er1ErsnSE,169
|
|
23
|
+
uipath_langchain/agent/guardrails/utils.py,sha256=dmlfDG_tBzbGhfOJrfhysaCAuVHL0GEEzkXqFQDen1M,4652
|
|
24
|
+
uipath_langchain/agent/guardrails/actions/__init__.py,sha256=o_xoSaqcaOM33CRldvmnmux66BIK9fbcv994lB0m1-U,313
|
|
25
25
|
uipath_langchain/agent/guardrails/actions/base_action.py,sha256=89POG1KQ0x1KPXKP8jT42M04SYoizp5E_co2-Ykq8gc,710
|
|
26
|
-
uipath_langchain/agent/guardrails/actions/block_action.py,sha256=
|
|
27
|
-
uipath_langchain/agent/guardrails/actions/escalate_action.py,sha256=
|
|
28
|
-
uipath_langchain/agent/guardrails/actions/
|
|
26
|
+
uipath_langchain/agent/guardrails/actions/block_action.py,sha256=AMgpeHG41XbRV6bdFX78OLLJ-CTJ1lez6ai6s60zG4M,1374
|
|
27
|
+
uipath_langchain/agent/guardrails/actions/escalate_action.py,sha256=JAGIBLB9FHMa104pTa9ddKi6wW6Ll22qjSZBMzqsYvk,18050
|
|
28
|
+
uipath_langchain/agent/guardrails/actions/filter_action.py,sha256=PbHzz8_vZZ4X-kbHs9-ab3RFBXESlS5GOBEs8vSB-Sg,2185
|
|
29
|
+
uipath_langchain/agent/guardrails/actions/log_action.py,sha256=1nknvqYFBmBFACWLhtreU9Uun40_H2ETsg9c6-IacGM,1968
|
|
29
30
|
uipath_langchain/agent/react/__init__.py,sha256=BhRWUMZ9yLtBr7SyRwS-XMKG9o84DROyedCMpE6j1RU,362
|
|
30
|
-
uipath_langchain/agent/react/agent.py,sha256=
|
|
31
|
-
uipath_langchain/agent/react/constants.py,sha256=
|
|
31
|
+
uipath_langchain/agent/react/agent.py,sha256=Foz9HagXh3lA-QDZSx6a302JAJnudL7YQ1njLShWSGA,4552
|
|
32
|
+
uipath_langchain/agent/react/constants.py,sha256=yRi3sRxl2CSlshcn_ooWRN3TCcKdRMxJIwmiUQpAtFE,38
|
|
32
33
|
uipath_langchain/agent/react/init_node.py,sha256=plhyTecBOBsm-YHfi73ZN3pJhe24tpCMr53IfRzN6SA,566
|
|
33
|
-
uipath_langchain/agent/react/llm_node.py,sha256=
|
|
34
|
-
uipath_langchain/agent/react/router.py,sha256
|
|
34
|
+
uipath_langchain/agent/react/llm_node.py,sha256=Qy9A_s7L5IKfHXbhT8PChyUWYB-RRUjkW49C958wCRs,2484
|
|
35
|
+
uipath_langchain/agent/react/router.py,sha256=-I3Ym0-FLQfg1J0v9Wibb0Xq7rTN73_FLsjVxa31aTQ,4080
|
|
35
36
|
uipath_langchain/agent/react/terminate_node.py,sha256=G2k2xMgocfNC13RjF9A2Kea6KiPINmdnxiZHQCS_fAY,2734
|
|
36
|
-
uipath_langchain/agent/react/types.py,sha256=
|
|
37
|
-
uipath_langchain/agent/react/utils.py,sha256=
|
|
37
|
+
uipath_langchain/agent/react/types.py,sha256=oZtWQiOwmghWUftrC0BzP5emNFq9uvWB2jUYFcWILPs,1417
|
|
38
|
+
uipath_langchain/agent/react/utils.py,sha256=EhrbvnkrftR79LTKHBVBv9e7oBzs0xgGXhtk_bLF_fQ,1285
|
|
39
|
+
uipath_langchain/agent/react/guardrails/guardrails_subgraph.py,sha256=NDtdngT6Z5amQzZMscX3rW2vupPSrY7hMlACukqQovk,11134
|
|
38
40
|
uipath_langchain/agent/react/tools/__init__.py,sha256=LGfG8Dc32ffKdXQyMI2oYzhNnTs1wbzsddXz6eU-0MY,102
|
|
39
41
|
uipath_langchain/agent/react/tools/tools.py,sha256=vFBGnFrGocX__sotKisMJr2lxRRVqA0-uThzzhPADIw,1443
|
|
40
|
-
uipath_langchain/agent/tools/__init__.py,sha256=
|
|
42
|
+
uipath_langchain/agent/tools/__init__.py,sha256=0ptYdkW3zIjdQljY7fsVKZKI-83lyprhCBoMJFlhgtg,527
|
|
41
43
|
uipath_langchain/agent/tools/context_tool.py,sha256=oPvMVNxeb5q6xVlSScvMGcpT1wOUlFGOwsnFoP_dbuE,1772
|
|
42
44
|
uipath_langchain/agent/tools/escalation_tool.py,sha256=VYNUEjfNMw3k2ESWMtn3RZ66WYRJcBvXpQaGzMXWCSw,3819
|
|
43
45
|
uipath_langchain/agent/tools/integration_tool.py,sha256=EcCJ2g6NyyJj6sQeVyzLY1JL3sAtTAWu2dwVvWOkHgo,6555
|
|
46
|
+
uipath_langchain/agent/tools/mcp_tool.py,sha256=NjSWoCYXixIheLWqYUCiYdnkI1umHIvTEBXJphg_WTM,3202
|
|
44
47
|
uipath_langchain/agent/tools/process_tool.py,sha256=3RkqqeXzmm8mSNaesEQKST1SvB8UEl2H69Qyh0lBv1c,1696
|
|
45
48
|
uipath_langchain/agent/tools/static_args.py,sha256=_bS-ENdVNxSQ74fi6H0bk7FG9QVZTqitM6es3eLsGq4,4521
|
|
46
49
|
uipath_langchain/agent/tools/structured_tool_with_output_type.py,sha256=9EZB1WlVt7FFBf20jX3Av9vJf9MaDNCnKLUhMBIrtLQ,354
|
|
47
50
|
uipath_langchain/agent/tools/tool_factory.py,sha256=o0bd_IMIIsVc0d6gODf3Lk-yiG6eXC9o9NYMgumY4GI,1419
|
|
48
51
|
uipath_langchain/agent/tools/tool_node.py,sha256=TnXsjoShvhsoBuV5RoUVoJCc2zYPKSnJYSC9MGJoeOk,707
|
|
49
52
|
uipath_langchain/agent/tools/utils.py,sha256=DsFeZ7kDzFaZ0bGHQN6TlGMJ90wYr7P1Vo1rpHPHWws,401
|
|
50
|
-
uipath_langchain/chat/__init__.py,sha256=
|
|
51
|
-
uipath_langchain/chat/bedrock.py,sha256
|
|
53
|
+
uipath_langchain/chat/__init__.py,sha256=YlbvzwZz2269kQK438YK8PDIpt5EoRukmpedazpSHHY,387
|
|
54
|
+
uipath_langchain/chat/bedrock.py,sha256=-e1Spix8QizWJf7qLPTJ1-Bs6QLmAHF4VvZSb2kn_Uw,6662
|
|
52
55
|
uipath_langchain/chat/mapper.py,sha256=XsWFbg6U4kW5Yj_ANvYUZ4HICybHcv9qWdfPPU8UTKA,11950
|
|
53
56
|
uipath_langchain/chat/models.py,sha256=cbIRw-YhEvQcgt0DVTHc84lKIjeDhsQo5oxvBz9luD0,18168
|
|
54
|
-
uipath_langchain/chat/openai.py,sha256=
|
|
55
|
-
uipath_langchain/chat/supported_models.py,sha256=
|
|
56
|
-
uipath_langchain/chat/vertex.py,sha256=
|
|
57
|
+
uipath_langchain/chat/openai.py,sha256=laLJbSoviyD1HdHRGL7zmGuDZngFZvQb93yNcSoR3r4,5829
|
|
58
|
+
uipath_langchain/chat/supported_models.py,sha256=KttS2PZZzh_-fPub-bAenq2V0LfqCUPMmBtQnRP0Lik,1561
|
|
59
|
+
uipath_langchain/chat/vertex.py,sha256=KX584HDzW8x1x-BjfTXpYnl9ofAAVNsphto29O7uoD0,10428
|
|
57
60
|
uipath_langchain/embeddings/__init__.py,sha256=QICtYB58ZyqFfDQrEaO8lTEgAU5NuEKlR7iIrS0OBtc,156
|
|
58
|
-
uipath_langchain/embeddings/embeddings.py,sha256=
|
|
61
|
+
uipath_langchain/embeddings/embeddings.py,sha256=EeVWEpG-DhfewiHJAHNrUMtzIS2oF6rLUPNRtfRg0_8,7137
|
|
59
62
|
uipath_langchain/retrievers/__init__.py,sha256=rOn7PyyHgZ4pMnXWPkGqmuBmx8eGuo-Oyndo7Wm9IUU,108
|
|
60
63
|
uipath_langchain/retrievers/context_grounding_retriever.py,sha256=eVDt49dcyBVM8wgBn5FmaXK8gfgsOaNBC8tYnebiQeQ,2201
|
|
61
64
|
uipath_langchain/runtime/__init__.py,sha256=h4pDyPy8kAYWvSohG3qFmx-bTVTIj1spbMqc7kO674E,1017
|
|
@@ -65,12 +68,12 @@ uipath_langchain/runtime/errors.py,sha256=iepiILaDtanusvyYBQSRsPDmKB-6GB94OXKATw
|
|
|
65
68
|
uipath_langchain/runtime/factory.py,sha256=_fbYViNg6uuApUZiEJjYHQU2noH5dqFBTXWEPy-Oj_k,11043
|
|
66
69
|
uipath_langchain/runtime/graph.py,sha256=1h_eaXkyN0G43BS0WUMoK_UNDao8jrmcyJqGVgwVEjM,5513
|
|
67
70
|
uipath_langchain/runtime/runtime.py,sha256=cK7hewu6Mv8rQbUir03JgPUgv-zqVtYQ1YOfoMLB89I,16904
|
|
68
|
-
uipath_langchain/runtime/schema.py,sha256=
|
|
71
|
+
uipath_langchain/runtime/schema.py,sha256=BKtWYVVpK2FfdWO75iQEc-md7qh5z8DqsRPsbHJ_WBI,15130
|
|
69
72
|
uipath_langchain/runtime/storage.py,sha256=Vem6kz0yGIUgIhTByzguvNOkb6N40b_ba8jcbjGo_eY,3954
|
|
70
73
|
uipath_langchain/vectorstores/__init__.py,sha256=w8qs1P548ud1aIcVA_QhBgf_jZDrRMK5Lono78yA8cs,114
|
|
71
74
|
uipath_langchain/vectorstores/context_grounding_vectorstore.py,sha256=SfRvIenOzn4r7jng_I9GIyknyeDx2hdW63O1rZY-ZLQ,8407
|
|
72
|
-
uipath_langchain-0.1.
|
|
73
|
-
uipath_langchain-0.1.
|
|
74
|
-
uipath_langchain-0.1.
|
|
75
|
-
uipath_langchain-0.1.
|
|
76
|
-
uipath_langchain-0.1.
|
|
75
|
+
uipath_langchain-0.1.34.dist-info/METADATA,sha256=Ntt7gH8D0fLKzbpKGWqW5iIu6O--cXe2J-eal5WPSDk,5890
|
|
76
|
+
uipath_langchain-0.1.34.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
77
|
+
uipath_langchain-0.1.34.dist-info/entry_points.txt,sha256=Wptt1FbvhcDzNQxDlu2Lt1ngBOdDIFPlM1p8WzXf6wQ,171
|
|
78
|
+
uipath_langchain-0.1.34.dist-info/licenses/LICENSE,sha256=JDpt-uotAkHFmxpwxi6gwx6HQ25e-lG4U_Gzcvgp7JY,1063
|
|
79
|
+
uipath_langchain-0.1.34.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|