uipath-langchain 0.1.24__py3-none-any.whl → 0.1.28__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/agent/guardrails/actions/base_action.py +1 -0
- uipath_langchain/agent/guardrails/actions/block_action.py +1 -0
- uipath_langchain/agent/guardrails/actions/escalate_action.py +255 -30
- uipath_langchain/agent/guardrails/actions/log_action.py +1 -0
- uipath_langchain/agent/guardrails/guardrail_nodes.py +50 -2
- uipath_langchain/agent/guardrails/guardrails_subgraph.py +38 -2
- uipath_langchain/agent/react/agent.py +6 -2
- uipath_langchain/chat/openai.py +3 -2
- uipath_langchain/chat/vertex.py +255 -0
- uipath_langchain/runtime/schema.py +44 -7
- {uipath_langchain-0.1.24.dist-info → uipath_langchain-0.1.28.dist-info}/METADATA +7 -6
- {uipath_langchain-0.1.24.dist-info → uipath_langchain-0.1.28.dist-info}/RECORD +15 -15
- uipath_langchain/chat/gemini.py +0 -330
- {uipath_langchain-0.1.24.dist-info → uipath_langchain-0.1.28.dist-info}/WHEEL +0 -0
- {uipath_langchain-0.1.24.dist-info → uipath_langchain-0.1.28.dist-info}/entry_points.txt +0 -0
- {uipath_langchain-0.1.24.dist-info → uipath_langchain-0.1.28.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from typing import Any, Optional
|
|
3
|
+
|
|
4
|
+
import httpx
|
|
5
|
+
from uipath._utils._ssl_context import get_httpx_client_kwargs
|
|
6
|
+
from uipath.utils import EndpointManager
|
|
7
|
+
|
|
8
|
+
from .supported_models import GeminiModels
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def _check_genai_dependencies() -> None:
|
|
12
|
+
"""Check if required dependencies for UiPathChatVertex are installed."""
|
|
13
|
+
import importlib.util
|
|
14
|
+
|
|
15
|
+
missing_packages = []
|
|
16
|
+
|
|
17
|
+
if importlib.util.find_spec("langchain_google_genai") is None:
|
|
18
|
+
missing_packages.append("langchain-google-genai")
|
|
19
|
+
|
|
20
|
+
if importlib.util.find_spec("google.genai") is None:
|
|
21
|
+
missing_packages.append("google-genai")
|
|
22
|
+
|
|
23
|
+
if missing_packages:
|
|
24
|
+
packages_str = ", ".join(missing_packages)
|
|
25
|
+
raise ImportError(
|
|
26
|
+
f"The following packages are required to use UiPathChatVertex: {packages_str}\n"
|
|
27
|
+
"Please install them using one of the following methods:\n\n"
|
|
28
|
+
" # Using pip:\n"
|
|
29
|
+
f" pip install uipath-langchain[vertex]\n\n"
|
|
30
|
+
" # Using uv:\n"
|
|
31
|
+
f" uv add 'uipath-langchain[vertex]'\n\n"
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
_check_genai_dependencies()
|
|
36
|
+
|
|
37
|
+
import google.genai
|
|
38
|
+
from google.genai import types as genai_types
|
|
39
|
+
from langchain_google_genai import ChatGoogleGenerativeAI
|
|
40
|
+
from pydantic import PrivateAttr
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def _rewrite_request_for_gateway(
|
|
44
|
+
request: httpx.Request, gateway_url: str
|
|
45
|
+
) -> httpx.Request:
|
|
46
|
+
"""Rewrite a request to redirect to the UiPath gateway."""
|
|
47
|
+
url_str = str(request.url)
|
|
48
|
+
if "generateContent" in url_str or "streamGenerateContent" in url_str:
|
|
49
|
+
is_streaming = "alt=sse" in url_str
|
|
50
|
+
|
|
51
|
+
headers = dict(request.headers)
|
|
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
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class _UrlRewriteTransport(httpx.BaseTransport):
|
|
70
|
+
"""Transport that rewrites URLs to redirect to UiPath gateway."""
|
|
71
|
+
|
|
72
|
+
def __init__(self, gateway_url: str):
|
|
73
|
+
self.gateway_url = gateway_url
|
|
74
|
+
self._transport = httpx.HTTPTransport()
|
|
75
|
+
|
|
76
|
+
def handle_request(self, request: httpx.Request) -> httpx.Response:
|
|
77
|
+
request = _rewrite_request_for_gateway(request, self.gateway_url)
|
|
78
|
+
return self._transport.handle_request(request)
|
|
79
|
+
|
|
80
|
+
def close(self) -> None:
|
|
81
|
+
self._transport.close()
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class _AsyncUrlRewriteTransport(httpx.AsyncBaseTransport):
|
|
85
|
+
"""Async transport that rewrites URLs to redirect to UiPath gateway."""
|
|
86
|
+
|
|
87
|
+
def __init__(self, gateway_url: str):
|
|
88
|
+
self.gateway_url = gateway_url
|
|
89
|
+
self._transport = httpx.AsyncHTTPTransport()
|
|
90
|
+
|
|
91
|
+
async def handle_async_request(self, request: httpx.Request) -> httpx.Response:
|
|
92
|
+
request = _rewrite_request_for_gateway(request, self.gateway_url)
|
|
93
|
+
return await self._transport.handle_async_request(request)
|
|
94
|
+
|
|
95
|
+
async def aclose(self) -> None:
|
|
96
|
+
await self._transport.aclose()
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
class UiPathChatVertex(ChatGoogleGenerativeAI):
|
|
100
|
+
"""UiPath Vertex AI Chat model that routes requests through UiPath's LLM Gateway."""
|
|
101
|
+
|
|
102
|
+
_vendor: str = PrivateAttr(default="vertexai")
|
|
103
|
+
_model_name: str = PrivateAttr()
|
|
104
|
+
_uipath_token: str = PrivateAttr()
|
|
105
|
+
_uipath_llmgw_url: Optional[str] = PrivateAttr(default=None)
|
|
106
|
+
|
|
107
|
+
def __init__(
|
|
108
|
+
self,
|
|
109
|
+
org_id: Optional[str] = None,
|
|
110
|
+
tenant_id: Optional[str] = None,
|
|
111
|
+
token: Optional[str] = None,
|
|
112
|
+
model_name: str = GeminiModels.gemini_2_5_flash,
|
|
113
|
+
temperature: Optional[float] = None,
|
|
114
|
+
**kwargs: Any,
|
|
115
|
+
):
|
|
116
|
+
org_id = org_id or os.getenv("UIPATH_ORGANIZATION_ID")
|
|
117
|
+
tenant_id = tenant_id or os.getenv("UIPATH_TENANT_ID")
|
|
118
|
+
token = token or os.getenv("UIPATH_ACCESS_TOKEN")
|
|
119
|
+
|
|
120
|
+
if not org_id:
|
|
121
|
+
raise ValueError(
|
|
122
|
+
"UIPATH_ORGANIZATION_ID environment variable or org_id parameter is required"
|
|
123
|
+
)
|
|
124
|
+
if not tenant_id:
|
|
125
|
+
raise ValueError(
|
|
126
|
+
"UIPATH_TENANT_ID environment variable or tenant_id parameter is required"
|
|
127
|
+
)
|
|
128
|
+
if not token:
|
|
129
|
+
raise ValueError(
|
|
130
|
+
"UIPATH_ACCESS_TOKEN environment variable or token parameter is required"
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
uipath_url = self._build_base_url(model_name)
|
|
134
|
+
headers = self._build_headers(token)
|
|
135
|
+
|
|
136
|
+
http_options = genai_types.HttpOptions(
|
|
137
|
+
httpx_client=httpx.Client(
|
|
138
|
+
transport=_UrlRewriteTransport(uipath_url),
|
|
139
|
+
headers=headers,
|
|
140
|
+
**get_httpx_client_kwargs(),
|
|
141
|
+
),
|
|
142
|
+
httpx_async_client=httpx.AsyncClient(
|
|
143
|
+
transport=_AsyncUrlRewriteTransport(uipath_url),
|
|
144
|
+
headers=headers,
|
|
145
|
+
**get_httpx_client_kwargs(),
|
|
146
|
+
),
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
if temperature is None and (
|
|
150
|
+
"gemini-3" in model_name or "gemini-2" in model_name
|
|
151
|
+
):
|
|
152
|
+
temperature = 1.0
|
|
153
|
+
|
|
154
|
+
super().__init__(
|
|
155
|
+
model=model_name,
|
|
156
|
+
google_api_key="uipath-gateway",
|
|
157
|
+
temperature=temperature,
|
|
158
|
+
**kwargs,
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
custom_client = google.genai.Client(
|
|
162
|
+
api_key="uipath-gateway",
|
|
163
|
+
http_options=http_options,
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
object.__setattr__(self, "client", custom_client)
|
|
167
|
+
|
|
168
|
+
self._model_name = model_name
|
|
169
|
+
self._uipath_token = token
|
|
170
|
+
self._uipath_llmgw_url = uipath_url
|
|
171
|
+
|
|
172
|
+
if self.temperature is not None and not 0 <= self.temperature <= 2.0:
|
|
173
|
+
raise ValueError("temperature must be in the range [0.0, 2.0]")
|
|
174
|
+
|
|
175
|
+
if self.top_p is not None and not 0 <= self.top_p <= 1:
|
|
176
|
+
raise ValueError("top_p must be in the range [0.0, 1.0]")
|
|
177
|
+
|
|
178
|
+
if self.top_k is not None and self.top_k <= 0:
|
|
179
|
+
raise ValueError("top_k must be positive")
|
|
180
|
+
|
|
181
|
+
additional_headers = self.additional_headers or {}
|
|
182
|
+
self.default_metadata = tuple(additional_headers.items())
|
|
183
|
+
|
|
184
|
+
@staticmethod
|
|
185
|
+
def _build_headers(token: str) -> dict[str, str]:
|
|
186
|
+
"""Build HTTP headers for UiPath Gateway requests."""
|
|
187
|
+
headers = {
|
|
188
|
+
"Authorization": f"Bearer {token}",
|
|
189
|
+
}
|
|
190
|
+
if job_key := os.getenv("UIPATH_JOB_KEY"):
|
|
191
|
+
headers["X-UiPath-JobKey"] = job_key
|
|
192
|
+
if process_key := os.getenv("UIPATH_PROCESS_KEY"):
|
|
193
|
+
headers["X-UiPath-ProcessKey"] = process_key
|
|
194
|
+
return headers
|
|
195
|
+
|
|
196
|
+
@staticmethod
|
|
197
|
+
def _build_base_url(model_name: str) -> str:
|
|
198
|
+
"""Build the full URL for the UiPath LLM Gateway."""
|
|
199
|
+
env_uipath_url = os.getenv("UIPATH_URL")
|
|
200
|
+
|
|
201
|
+
if not env_uipath_url:
|
|
202
|
+
raise ValueError("UIPATH_URL environment variable is required")
|
|
203
|
+
|
|
204
|
+
vendor_endpoint = EndpointManager.get_vendor_endpoint()
|
|
205
|
+
formatted_endpoint = vendor_endpoint.format(
|
|
206
|
+
vendor="vertexai",
|
|
207
|
+
model=model_name,
|
|
208
|
+
)
|
|
209
|
+
return f"{env_uipath_url.rstrip('/')}/{formatted_endpoint}"
|
|
210
|
+
|
|
211
|
+
def _stream(self, messages, stop=None, run_manager=None, **kwargs):
|
|
212
|
+
"""Streaming fallback - calls _generate and yields single response."""
|
|
213
|
+
from langchain_core.messages import AIMessageChunk
|
|
214
|
+
from langchain_core.outputs import ChatGenerationChunk
|
|
215
|
+
|
|
216
|
+
result = self._generate(messages, stop=stop, run_manager=run_manager, **kwargs)
|
|
217
|
+
|
|
218
|
+
if result.generations:
|
|
219
|
+
message = result.generations[0].message
|
|
220
|
+
chunk = AIMessageChunk(
|
|
221
|
+
content=message.content,
|
|
222
|
+
additional_kwargs=message.additional_kwargs,
|
|
223
|
+
response_metadata=getattr(message, "response_metadata", {}),
|
|
224
|
+
id=message.id,
|
|
225
|
+
tool_calls=getattr(message, "tool_calls", []),
|
|
226
|
+
tool_call_chunks=getattr(message, "tool_call_chunks", []),
|
|
227
|
+
)
|
|
228
|
+
if hasattr(message, "usage_metadata") and message.usage_metadata:
|
|
229
|
+
chunk.usage_metadata = message.usage_metadata
|
|
230
|
+
|
|
231
|
+
yield ChatGenerationChunk(message=chunk)
|
|
232
|
+
|
|
233
|
+
async def _astream(self, messages, stop=None, run_manager=None, **kwargs):
|
|
234
|
+
"""Async streaming fallback - calls _agenerate and yields single response."""
|
|
235
|
+
from langchain_core.messages import AIMessageChunk
|
|
236
|
+
from langchain_core.outputs import ChatGenerationChunk
|
|
237
|
+
|
|
238
|
+
result = await self._agenerate(
|
|
239
|
+
messages, stop=stop, run_manager=run_manager, **kwargs
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
if result.generations:
|
|
243
|
+
message = result.generations[0].message
|
|
244
|
+
chunk = AIMessageChunk(
|
|
245
|
+
content=message.content,
|
|
246
|
+
additional_kwargs=message.additional_kwargs,
|
|
247
|
+
response_metadata=getattr(message, "response_metadata", {}),
|
|
248
|
+
id=message.id,
|
|
249
|
+
tool_calls=getattr(message, "tool_calls", []),
|
|
250
|
+
tool_call_chunks=getattr(message, "tool_call_chunks", []),
|
|
251
|
+
)
|
|
252
|
+
if hasattr(message, "usage_metadata") and message.usage_metadata:
|
|
253
|
+
chunk.usage_metadata = message.usage_metadata
|
|
254
|
+
|
|
255
|
+
yield ChatGenerationChunk(message=chunk)
|
|
@@ -7,6 +7,8 @@ from langchain_core.runnables.base import Runnable
|
|
|
7
7
|
from langchain_core.runnables.graph import Graph, Node
|
|
8
8
|
from langgraph.graph.state import CompiledStateGraph
|
|
9
9
|
from langgraph.prebuilt import ToolNode
|
|
10
|
+
from langgraph.pregel._read import PregelNode
|
|
11
|
+
from langgraph.pregel._write import ChannelWrite, ChannelWriteEntry
|
|
10
12
|
from uipath.runtime.schema import (
|
|
11
13
|
UiPathRuntimeEdge,
|
|
12
14
|
UiPathRuntimeGraph,
|
|
@@ -193,7 +195,6 @@ def get_graph_schema(
|
|
|
193
195
|
nodes: list[UiPathRuntimeNode] = []
|
|
194
196
|
for node_id, node in graph.nodes.items():
|
|
195
197
|
subgraph: UiPathRuntimeGraph | None = subgraphs_dict.get(node_id)
|
|
196
|
-
|
|
197
198
|
nodes.append(
|
|
198
199
|
UiPathRuntimeNode(
|
|
199
200
|
id=node.id,
|
|
@@ -204,15 +205,51 @@ def get_graph_schema(
|
|
|
204
205
|
)
|
|
205
206
|
)
|
|
206
207
|
|
|
208
|
+
# Use a set to track unique edges (source, target)
|
|
209
|
+
seen_edges: set[tuple[str, str]] = set()
|
|
207
210
|
edges: list[UiPathRuntimeEdge] = []
|
|
211
|
+
|
|
212
|
+
# First, add edges from graph.edges (static edges)
|
|
208
213
|
for edge in graph.edges:
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
+
edge_tuple = (edge.source, edge.target)
|
|
215
|
+
if edge_tuple not in seen_edges:
|
|
216
|
+
seen_edges.add(edge_tuple)
|
|
217
|
+
edges.append(
|
|
218
|
+
UiPathRuntimeEdge(
|
|
219
|
+
source=edge.source,
|
|
220
|
+
target=edge.target,
|
|
221
|
+
label=getattr(edge, "data", None) or getattr(edge, "label", None),
|
|
222
|
+
)
|
|
214
223
|
)
|
|
215
|
-
|
|
224
|
+
|
|
225
|
+
# Build a map of channel -> target node
|
|
226
|
+
channel_to_target: dict[str, str] = {}
|
|
227
|
+
node_spec: PregelNode
|
|
228
|
+
for node_name, node_spec in compiled_graph.nodes.items():
|
|
229
|
+
for trigger in node_spec.triggers:
|
|
230
|
+
if isinstance(trigger, str) and trigger.startswith("branch:to:"):
|
|
231
|
+
channel_to_target[trigger] = node_name
|
|
232
|
+
|
|
233
|
+
# Extract edges by looking at what each node writes to (dynamic edges from Command)
|
|
234
|
+
for source_name, node_spec in compiled_graph.nodes.items():
|
|
235
|
+
writer: Runnable[Any, Any]
|
|
236
|
+
for writer in node_spec.writers:
|
|
237
|
+
if isinstance(writer, ChannelWrite):
|
|
238
|
+
write_entry: Any
|
|
239
|
+
for write_entry in writer.writes:
|
|
240
|
+
if isinstance(write_entry, ChannelWriteEntry) and isinstance(
|
|
241
|
+
write_entry.channel, str
|
|
242
|
+
):
|
|
243
|
+
target = channel_to_target.get(write_entry.channel)
|
|
244
|
+
if target:
|
|
245
|
+
edge_tuple = (source_name, target)
|
|
246
|
+
if edge_tuple not in seen_edges:
|
|
247
|
+
seen_edges.add(edge_tuple)
|
|
248
|
+
edges.append(
|
|
249
|
+
UiPathRuntimeEdge(
|
|
250
|
+
source=source_name, target=target, label=None
|
|
251
|
+
)
|
|
252
|
+
)
|
|
216
253
|
|
|
217
254
|
return UiPathRuntimeGraph(nodes=nodes, edges=edges)
|
|
218
255
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uipath-langchain
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary: UiPath
|
|
3
|
+
Version: 0.1.28
|
|
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
|
|
7
7
|
Project-URL: Documentation, https://uipath.github.io/uipath-python/
|
|
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Classifier: Topic :: Software Development :: Build Tools
|
|
15
15
|
Requires-Python: >=3.11
|
|
16
|
+
Requires-Dist: aiosqlite==0.21.0
|
|
16
17
|
Requires-Dist: httpx>=0.27.0
|
|
17
18
|
Requires-Dist: jsonpath-ng>=1.7.0
|
|
18
19
|
Requires-Dist: jsonschema-pydantic-converter>=0.1.5
|
|
@@ -24,18 +25,18 @@ Requires-Dist: langgraph<2.0.0,>=1.0.0
|
|
|
24
25
|
Requires-Dist: openinference-instrumentation-langchain>=0.1.56
|
|
25
26
|
Requires-Dist: pydantic-settings>=2.6.0
|
|
26
27
|
Requires-Dist: python-dotenv>=1.0.1
|
|
27
|
-
Requires-Dist: uipath<2.3.0,>=2.2.
|
|
28
|
+
Requires-Dist: uipath<2.3.0,>=2.2.30
|
|
28
29
|
Provides-Extra: bedrock
|
|
29
30
|
Requires-Dist: boto3-stubs>=1.41.4; extra == 'bedrock'
|
|
30
31
|
Requires-Dist: langchain-aws>=0.2.35; extra == 'bedrock'
|
|
31
32
|
Provides-Extra: vertex
|
|
32
|
-
Requires-Dist:
|
|
33
|
-
Requires-Dist: langchain-google-
|
|
34
|
-
Requires-Dist: types-protobuf>=6.32.1.20251105; extra == 'vertex'
|
|
33
|
+
Requires-Dist: google-generativeai>=0.8.0; extra == 'vertex'
|
|
34
|
+
Requires-Dist: langchain-google-genai>=2.0.0; extra == 'vertex'
|
|
35
35
|
Description-Content-Type: text/markdown
|
|
36
36
|
|
|
37
37
|
# UiPath LangChain Python SDK
|
|
38
38
|
|
|
39
|
+
[](https://pypi.org/project/uipath-langchain/)
|
|
39
40
|
[](https://pypi.org/project/uipath-langchain/)
|
|
40
41
|
[](https://pypi.org/project/uipath-langchain/)
|
|
41
42
|
|
|
@@ -17,17 +17,17 @@ uipath_langchain/_utils/_sleep_policy.py,sha256=e9pHdjmcCj4CVoFM1jMyZFelH11Yatsg
|
|
|
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
19
|
uipath_langchain/agent/guardrails/__init__.py,sha256=gWxPFhbxqiBM6phdYeuR2EMVb-qwB71Ny16SzNAQ5kw,610
|
|
20
|
-
uipath_langchain/agent/guardrails/guardrail_nodes.py,sha256=
|
|
20
|
+
uipath_langchain/agent/guardrails/guardrail_nodes.py,sha256=qXOnOfXsMY8hHoHzejjQfppuLTk8OsC1vyL98uNodJw,5467
|
|
21
21
|
uipath_langchain/agent/guardrails/guardrails_factory.py,sha256=gkOkNO5uyhNBt1y7j4V3Ao-u1fh1gpTji3-N2bRS_l4,2248
|
|
22
|
-
uipath_langchain/agent/guardrails/guardrails_subgraph.py,sha256=
|
|
22
|
+
uipath_langchain/agent/guardrails/guardrails_subgraph.py,sha256=o38vdDS15LJmXY6FZ0wVHFBHQPm-zFRViG40Xoq9H70,9817
|
|
23
23
|
uipath_langchain/agent/guardrails/types.py,sha256=Z5TS6EHnaanie3s1yfGhE4JXoFKuu01ESsbeFbbPie4,561
|
|
24
24
|
uipath_langchain/agent/guardrails/actions/__init__.py,sha256=PiE5Eb39JYWrQG481aREV2I0tNMPEi7VtChBy7ZJqcc,253
|
|
25
|
-
uipath_langchain/agent/guardrails/actions/base_action.py,sha256=
|
|
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/log_action.py,sha256=
|
|
25
|
+
uipath_langchain/agent/guardrails/actions/base_action.py,sha256=89POG1KQ0x1KPXKP8jT42M04SYoizp5E_co2-Ykq8gc,710
|
|
26
|
+
uipath_langchain/agent/guardrails/actions/block_action.py,sha256=RZPF6xxFqs4G2OByBrE7V5nBdPIsb3AyMl-r-lf95yE,1367
|
|
27
|
+
uipath_langchain/agent/guardrails/actions/escalate_action.py,sha256=BM04L7b0pVG5UOVi9ZA6U2TOMBf_UtpKl278i4TAMHk,18569
|
|
28
|
+
uipath_langchain/agent/guardrails/actions/log_action.py,sha256=mA9qIMErZ7tnkDwGKGY9Q7gh55qiL5C6kn1-ljOGGtU,1961
|
|
29
29
|
uipath_langchain/agent/react/__init__.py,sha256=BhRWUMZ9yLtBr7SyRwS-XMKG9o84DROyedCMpE6j1RU,362
|
|
30
|
-
uipath_langchain/agent/react/agent.py,sha256=
|
|
30
|
+
uipath_langchain/agent/react/agent.py,sha256=w--Mu9ZD9P-f4yXeZHTtAwtcDDgRhxCI28pbs215aDw,4002
|
|
31
31
|
uipath_langchain/agent/react/constants.py,sha256=B2yqryh242DETslaRYacUPbVdpjvvApjsBira_qhQwk,61
|
|
32
32
|
uipath_langchain/agent/react/init_node.py,sha256=plhyTecBOBsm-YHfi73ZN3pJhe24tpCMr53IfRzN6SA,566
|
|
33
33
|
uipath_langchain/agent/react/llm_node.py,sha256=4q8JcAwzELyyBaYTaFtx5HP9neq_5UolfFsuqsh4pso,1468
|
|
@@ -49,11 +49,11 @@ uipath_langchain/agent/tools/tool_node.py,sha256=TnXsjoShvhsoBuV5RoUVoJCc2zYPKSn
|
|
|
49
49
|
uipath_langchain/agent/tools/utils.py,sha256=DsFeZ7kDzFaZ0bGHQN6TlGMJ90wYr7P1Vo1rpHPHWws,401
|
|
50
50
|
uipath_langchain/chat/__init__.py,sha256=fAoK-hKuShWDV9tbinJU9TSKRBG2wQQwK3UKZTAyMVM,254
|
|
51
51
|
uipath_langchain/chat/bedrock.py,sha256=eonXWnGh3m9cmMifP49fnXsjmrRQLd3Wda5fFa11568,5863
|
|
52
|
-
uipath_langchain/chat/gemini.py,sha256=Zlz5KVoHdzlemzFTmFVjKCloaFo2lMiBbBq9MCJ9Lds,11903
|
|
53
52
|
uipath_langchain/chat/mapper.py,sha256=XsWFbg6U4kW5Yj_ANvYUZ4HICybHcv9qWdfPPU8UTKA,11950
|
|
54
53
|
uipath_langchain/chat/models.py,sha256=cbIRw-YhEvQcgt0DVTHc84lKIjeDhsQo5oxvBz9luD0,18168
|
|
55
|
-
uipath_langchain/chat/openai.py,sha256=
|
|
54
|
+
uipath_langchain/chat/openai.py,sha256=iZWRFbFGPJo0rgjIL1uGytGgvlYHzYQvuoIgyltOz98,4689
|
|
56
55
|
uipath_langchain/chat/supported_models.py,sha256=KrTO8rex8sjC2NVUnuDoLLvz__ROKtxEtCXSk1xXTOU,1373
|
|
56
|
+
uipath_langchain/chat/vertex.py,sha256=y68TrwJwWewkSNdv_smP9JzCQ9hvJw5o6tYVLV-_9wE,9261
|
|
57
57
|
uipath_langchain/embeddings/__init__.py,sha256=QICtYB58ZyqFfDQrEaO8lTEgAU5NuEKlR7iIrS0OBtc,156
|
|
58
58
|
uipath_langchain/embeddings/embeddings.py,sha256=MGUtnT0pkj97IjHKhROSd786g3ONwwkjgfQBSq3ayhc,6888
|
|
59
59
|
uipath_langchain/retrievers/__init__.py,sha256=rOn7PyyHgZ4pMnXWPkGqmuBmx8eGuo-Oyndo7Wm9IUU,108
|
|
@@ -65,12 +65,12 @@ uipath_langchain/runtime/errors.py,sha256=iepiILaDtanusvyYBQSRsPDmKB-6GB94OXKATw
|
|
|
65
65
|
uipath_langchain/runtime/factory.py,sha256=_fbYViNg6uuApUZiEJjYHQU2noH5dqFBTXWEPy-Oj_k,11043
|
|
66
66
|
uipath_langchain/runtime/graph.py,sha256=1h_eaXkyN0G43BS0WUMoK_UNDao8jrmcyJqGVgwVEjM,5513
|
|
67
67
|
uipath_langchain/runtime/runtime.py,sha256=cK7hewu6Mv8rQbUir03JgPUgv-zqVtYQ1YOfoMLB89I,16904
|
|
68
|
-
uipath_langchain/runtime/schema.py,sha256=
|
|
68
|
+
uipath_langchain/runtime/schema.py,sha256=mzMnxKtRvREGEzmLyAYX3sSYLJTz6xIZe63u6Z6dPNs,13392
|
|
69
69
|
uipath_langchain/runtime/storage.py,sha256=Vem6kz0yGIUgIhTByzguvNOkb6N40b_ba8jcbjGo_eY,3954
|
|
70
70
|
uipath_langchain/vectorstores/__init__.py,sha256=w8qs1P548ud1aIcVA_QhBgf_jZDrRMK5Lono78yA8cs,114
|
|
71
71
|
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.
|
|
72
|
+
uipath_langchain-0.1.28.dist-info/METADATA,sha256=rpoHmCK1gULm42RORNwYclg1fapZEA9M6_AbqDhSizo,5818
|
|
73
|
+
uipath_langchain-0.1.28.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
74
|
+
uipath_langchain-0.1.28.dist-info/entry_points.txt,sha256=Wptt1FbvhcDzNQxDlu2Lt1ngBOdDIFPlM1p8WzXf6wQ,171
|
|
75
|
+
uipath_langchain-0.1.28.dist-info/licenses/LICENSE,sha256=JDpt-uotAkHFmxpwxi6gwx6HQ25e-lG4U_Gzcvgp7JY,1063
|
|
76
|
+
uipath_langchain-0.1.28.dist-info/RECORD,,
|