uipath-langchain 0.0.139__py3-none-any.whl → 0.0.141__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.

Potentially problematic release.


This version of uipath-langchain might be problematic. Click here for more details.

@@ -0,0 +1,95 @@
1
+ import asyncio
2
+ import os
3
+ from typing import Optional
4
+
5
+ from openinference.instrumentation.langchain import (
6
+ LangChainInstrumentor,
7
+ get_current_span,
8
+ )
9
+ from uipath._cli._debug._bridge import UiPathDebugBridge, get_debug_bridge
10
+ from uipath._cli._debug._runtime import UiPathDebugRuntime
11
+ from uipath._cli._runtime._contracts import (
12
+ UiPathRuntimeFactory,
13
+ )
14
+ from uipath._cli.middlewares import MiddlewareResult
15
+
16
+ from .._tracing import LangChainExporter, _instrument_traceable_attributes
17
+ from ._runtime._exception import LangGraphRuntimeError
18
+ from ._runtime._runtime import ( # type: ignore[attr-defined]
19
+ LangGraphRuntimeContext,
20
+ LangGraphScriptRuntime,
21
+ )
22
+ from ._utils._graph import LangGraphConfig
23
+
24
+
25
+ def langgraph_debug_middleware(
26
+ entrypoint: Optional[str], input: Optional[str], resume: bool, **kwargs
27
+ ) -> MiddlewareResult:
28
+ """Middleware to handle LangGraph execution"""
29
+ config = LangGraphConfig()
30
+ if not config.exists:
31
+ return MiddlewareResult(
32
+ should_continue=True
33
+ ) # Continue with normal flow if no langgraph.json
34
+
35
+ try:
36
+
37
+ async def execute():
38
+ context = LangGraphRuntimeContext.with_defaults(**kwargs)
39
+ context.entrypoint = entrypoint
40
+ context.input = input
41
+ context.resume = resume
42
+ context.execution_id = context.job_id or "default"
43
+
44
+ _instrument_traceable_attributes()
45
+
46
+ def generate_runtime(
47
+ ctx: LangGraphRuntimeContext,
48
+ ) -> LangGraphScriptRuntime:
49
+ runtime = LangGraphScriptRuntime(ctx, ctx.entrypoint)
50
+ # If not resuming and no job id, delete the previous state file
51
+ if not ctx.resume and ctx.job_id is None:
52
+ if os.path.exists(runtime.state_file_path):
53
+ os.remove(runtime.state_file_path)
54
+ return runtime
55
+
56
+ runtime_factory = UiPathRuntimeFactory(
57
+ LangGraphScriptRuntime,
58
+ LangGraphRuntimeContext,
59
+ runtime_generator=generate_runtime,
60
+ context_generator=lambda: context,
61
+ )
62
+
63
+ if context.job_id:
64
+ runtime_factory.add_span_exporter(LangChainExporter())
65
+
66
+ runtime_factory.add_instrumentor(LangChainInstrumentor, get_current_span)
67
+
68
+ debug_bridge: UiPathDebugBridge = get_debug_bridge(context)
69
+
70
+ async with UiPathDebugRuntime.from_debug_context(
71
+ factory=runtime_factory,
72
+ context=context,
73
+ debug_bridge=debug_bridge,
74
+ ) as debug_runtime:
75
+ await debug_runtime.execute()
76
+
77
+ asyncio.run(execute())
78
+
79
+ return MiddlewareResult(
80
+ should_continue=False,
81
+ error_message=None,
82
+ )
83
+
84
+ except LangGraphRuntimeError as e:
85
+ return MiddlewareResult(
86
+ should_continue=False,
87
+ error_message=e.error_info.detail,
88
+ should_include_stacktrace=True,
89
+ )
90
+ except Exception as e:
91
+ return MiddlewareResult(
92
+ should_continue=False,
93
+ error_message=f"Error: {str(e)}",
94
+ should_include_stacktrace=True,
95
+ )
@@ -6,10 +6,13 @@ from openinference.instrumentation.langchain import (
6
6
  LangChainInstrumentor,
7
7
  get_current_span,
8
8
  )
9
+ from uipath._cli._debug._bridge import ConsoleDebugBridge, UiPathDebugBridge
9
10
  from uipath._cli._runtime._contracts import (
10
11
  UiPathRuntimeFactory,
12
+ UiPathRuntimeResult,
11
13
  )
12
14
  from uipath._cli.middlewares import MiddlewareResult
15
+ from uipath._events._events import UiPathAgentStateEvent
13
16
 
14
17
  from .._tracing import LangChainExporter, _instrument_traceable_attributes
15
18
  from ._runtime._exception import LangGraphRuntimeError
@@ -31,34 +34,44 @@ def langgraph_run_middleware(
31
34
  ) # Continue with normal flow if no langgraph.json
32
35
 
33
36
  try:
34
- context = LangGraphRuntimeContext.with_defaults(**kwargs)
35
- context.entrypoint = entrypoint
36
- context.input = input
37
- context.resume = resume
38
37
 
39
- _instrument_traceable_attributes()
38
+ async def execute():
39
+ context = LangGraphRuntimeContext.with_defaults(**kwargs)
40
+ context.entrypoint = entrypoint
41
+ context.input = input
42
+ context.resume = resume
43
+ context.execution_id = context.job_id or "default"
44
+ _instrument_traceable_attributes()
40
45
 
41
- def generate_runtime(ctx: LangGraphRuntimeContext) -> LangGraphScriptRuntime:
42
- runtime = LangGraphScriptRuntime(ctx, ctx.entrypoint)
43
- # If not resuming and no job id, delete the previous state file
44
- if not ctx.resume and ctx.job_id is None:
45
- if os.path.exists(runtime.state_file_path):
46
- os.remove(runtime.state_file_path)
47
- return runtime
46
+ def generate_runtime(
47
+ ctx: LangGraphRuntimeContext,
48
+ ) -> LangGraphScriptRuntime:
49
+ runtime = LangGraphScriptRuntime(ctx, ctx.entrypoint)
50
+ # If not resuming and no job id, delete the previous state file
51
+ if not ctx.resume and ctx.job_id is None:
52
+ if os.path.exists(runtime.state_file_path):
53
+ os.remove(runtime.state_file_path)
54
+ return runtime
48
55
 
49
- async def execute():
50
56
  runtime_factory = UiPathRuntimeFactory(
51
57
  LangGraphScriptRuntime,
52
58
  LangGraphRuntimeContext,
53
59
  runtime_generator=generate_runtime,
54
60
  )
55
61
 
56
- if context.job_id:
57
- runtime_factory.add_span_exporter(LangChainExporter())
58
-
59
62
  runtime_factory.add_instrumentor(LangChainInstrumentor, get_current_span)
60
63
 
61
- await runtime_factory.execute(context)
64
+ if context.job_id:
65
+ runtime_factory.add_span_exporter(LangChainExporter())
66
+ await runtime_factory.execute(context)
67
+ else:
68
+ debug_bridge: UiPathDebugBridge = ConsoleDebugBridge()
69
+ await debug_bridge.emit_execution_started(context.execution_id)
70
+ async for event in runtime_factory.stream(context):
71
+ if isinstance(event, UiPathRuntimeResult):
72
+ await debug_bridge.emit_execution_completed(event)
73
+ elif isinstance(event, UiPathAgentStateEvent):
74
+ await debug_bridge.emit_state_update(event)
62
75
 
63
76
  asyncio.run(execute())
64
77
 
@@ -1,15 +1,15 @@
1
1
  import json
2
2
  import logging
3
- from typing import Any, Dict, List, Literal, Optional, Union
3
+ from typing import Any, AsyncIterator, Dict, Iterator, List, Literal, Optional, Union
4
4
 
5
5
  from langchain_core.callbacks import (
6
6
  AsyncCallbackManagerForLLMRun,
7
7
  CallbackManagerForLLMRun,
8
8
  )
9
9
  from langchain_core.language_models import LanguageModelInput
10
- from langchain_core.messages import AIMessage, BaseMessage
10
+ from langchain_core.messages import AIMessage, AIMessageChunk, BaseMessage
11
11
  from langchain_core.messages.ai import UsageMetadata
12
- from langchain_core.outputs import ChatGeneration, ChatResult
12
+ from langchain_core.outputs import ChatGeneration, ChatGenerationChunk, ChatResult
13
13
  from langchain_core.runnables import Runnable
14
14
  from langchain_openai.chat_models import AzureChatOpenAI
15
15
  from pydantic import BaseModel
@@ -49,6 +49,54 @@ class UiPathAzureChatOpenAI(UiPathRequestMixin, AzureChatOpenAI):
49
49
  response = await self._acall(self.url, payload, self.auth_headers)
50
50
  return self._create_chat_result(response)
51
51
 
52
+ def _stream(
53
+ self,
54
+ messages: List[BaseMessage],
55
+ stop: Optional[List[str]] = None,
56
+ run_manager: Optional[CallbackManagerForLLMRun] = None,
57
+ **kwargs: Any,
58
+ ) -> Iterator[ChatGenerationChunk]:
59
+ if "tools" in kwargs and not kwargs["tools"]:
60
+ del kwargs["tools"]
61
+ payload = self._get_request_payload(messages, stop=stop, **kwargs)
62
+ response = self._call(self.url, payload, self.auth_headers)
63
+
64
+ # For non-streaming response, yield single chunk
65
+ chat_result = self._create_chat_result(response)
66
+ chunk = ChatGenerationChunk(
67
+ message=AIMessageChunk(
68
+ content=chat_result.generations[0].message.content,
69
+ additional_kwargs=chat_result.generations[0].message.additional_kwargs,
70
+ response_metadata=chat_result.generations[0].message.response_metadata,
71
+ usage_metadata=chat_result.generations[0].message.usage_metadata, # type: ignore
72
+ )
73
+ )
74
+ yield chunk
75
+
76
+ async def _astream(
77
+ self,
78
+ messages: List[BaseMessage],
79
+ stop: Optional[List[str]] = None,
80
+ run_manager: Optional[AsyncCallbackManagerForLLMRun] = None,
81
+ **kwargs: Any,
82
+ ) -> AsyncIterator[ChatGenerationChunk]:
83
+ if "tools" in kwargs and not kwargs["tools"]:
84
+ del kwargs["tools"]
85
+ payload = self._get_request_payload(messages, stop=stop, **kwargs)
86
+ response = await self._acall(self.url, payload, self.auth_headers)
87
+
88
+ # For non-streaming response, yield single chunk
89
+ chat_result = self._create_chat_result(response)
90
+ chunk = ChatGenerationChunk(
91
+ message=AIMessageChunk(
92
+ content=chat_result.generations[0].message.content,
93
+ additional_kwargs=chat_result.generations[0].message.additional_kwargs,
94
+ response_metadata=chat_result.generations[0].message.response_metadata,
95
+ usage_metadata=chat_result.generations[0].message.usage_metadata, # type: ignore
96
+ )
97
+ )
98
+ yield chunk
99
+
52
100
  def with_structured_output(
53
101
  self,
54
102
  schema: Optional[Any] = None,
@@ -217,6 +265,92 @@ class UiPathChat(UiPathRequestMixin, AzureChatOpenAI):
217
265
  response = await self._acall(self.url, payload, self.auth_headers)
218
266
  return self._create_chat_result(response)
219
267
 
268
+ def _stream(
269
+ self,
270
+ messages: List[BaseMessage],
271
+ stop: Optional[List[str]] = None,
272
+ run_manager: Optional[CallbackManagerForLLMRun] = None,
273
+ **kwargs: Any,
274
+ ) -> Iterator[ChatGenerationChunk]:
275
+ """Stream the LLM on a given prompt.
276
+
277
+ Args:
278
+ messages: the prompt composed of a list of messages.
279
+ stop: a list of strings on which the model should stop generating.
280
+ run_manager: A run manager with callbacks for the LLM.
281
+ **kwargs: Additional keyword arguments.
282
+
283
+ Returns:
284
+ An iterator of ChatGenerationChunk objects.
285
+ """
286
+ if kwargs.get("tools"):
287
+ kwargs["tools"] = [tool["function"] for tool in kwargs["tools"]]
288
+ if "tool_choice" in kwargs and kwargs["tool_choice"]["type"] == "function":
289
+ kwargs["tool_choice"] = {
290
+ "type": "tool",
291
+ "name": kwargs["tool_choice"]["function"]["name"],
292
+ }
293
+ payload = self._get_request_payload(messages, stop=stop, **kwargs)
294
+ response = self._call(self.url, payload, self.auth_headers)
295
+
296
+ # For non-streaming response, yield single chunk
297
+ chat_result = self._create_chat_result(response)
298
+ chunk = ChatGenerationChunk(
299
+ message=AIMessageChunk(
300
+ content=chat_result.generations[0].message.content,
301
+ additional_kwargs=chat_result.generations[0].message.additional_kwargs,
302
+ response_metadata=chat_result.generations[0].message.response_metadata,
303
+ usage_metadata=chat_result.generations[0].message.usage_metadata, # type: ignore
304
+ tool_calls=getattr(
305
+ chat_result.generations[0].message, "tool_calls", None
306
+ ),
307
+ )
308
+ )
309
+ yield chunk
310
+
311
+ async def _astream(
312
+ self,
313
+ messages: List[BaseMessage],
314
+ stop: Optional[List[str]] = None,
315
+ run_manager: Optional[AsyncCallbackManagerForLLMRun] = None,
316
+ **kwargs: Any,
317
+ ) -> AsyncIterator[ChatGenerationChunk]:
318
+ """Async stream the LLM on a given prompt.
319
+
320
+ Args:
321
+ messages: the prompt composed of a list of messages.
322
+ stop: a list of strings on which the model should stop generating.
323
+ run_manager: A run manager with callbacks for the LLM.
324
+ **kwargs: Additional keyword arguments.
325
+
326
+ Returns:
327
+ An async iterator of ChatGenerationChunk objects.
328
+ """
329
+ if kwargs.get("tools"):
330
+ kwargs["tools"] = [tool["function"] for tool in kwargs["tools"]]
331
+ if "tool_choice" in kwargs and kwargs["tool_choice"]["type"] == "function":
332
+ kwargs["tool_choice"] = {
333
+ "type": "tool",
334
+ "name": kwargs["tool_choice"]["function"]["name"],
335
+ }
336
+ payload = self._get_request_payload(messages, stop=stop, **kwargs)
337
+ response = await self._acall(self.url, payload, self.auth_headers)
338
+
339
+ # For non-streaming response, yield single chunk
340
+ chat_result = self._create_chat_result(response)
341
+ chunk = ChatGenerationChunk(
342
+ message=AIMessageChunk(
343
+ content=chat_result.generations[0].message.content,
344
+ additional_kwargs=chat_result.generations[0].message.additional_kwargs,
345
+ response_metadata=chat_result.generations[0].message.response_metadata,
346
+ usage_metadata=chat_result.generations[0].message.usage_metadata, # type: ignore
347
+ tool_calls=getattr(
348
+ chat_result.generations[0].message, "tool_calls", None
349
+ ),
350
+ )
351
+ )
352
+ yield chunk
353
+
220
354
  def with_structured_output(
221
355
  self,
222
356
  schema: Optional[Any] = None,
@@ -1,5 +1,6 @@
1
1
  from uipath._cli.middlewares import Middlewares
2
2
 
3
+ from ._cli.cli_debug import langgraph_debug_middleware
3
4
  from ._cli.cli_dev import langgraph_dev_middleware
4
5
  from ._cli.cli_eval import langgraph_eval_middleware
5
6
  from ._cli.cli_init import langgraph_init_middleware
@@ -14,3 +15,4 @@ def register_middleware():
14
15
  Middlewares.register("new", langgraph_new_middleware)
15
16
  Middlewares.register("dev", langgraph_dev_middleware)
16
17
  Middlewares.register("eval", langgraph_eval_middleware)
18
+ Middlewares.register("debug", langgraph_debug_middleware)
File without changes
@@ -11,13 +11,13 @@ from langgraph.types import interrupt
11
11
  from pydantic import BaseModel
12
12
  from uipath import UiPath
13
13
  from uipath.agent.models.agent import (
14
- AgentDefinition,
15
14
  AgentEscalationChannel,
16
15
  AgentEscalationResourceConfig,
17
16
  AgentIntegrationToolParameter,
18
17
  AgentIntegrationToolResourceConfig,
19
18
  AgentProcessToolResourceConfig,
20
19
  AgentResourceConfig,
20
+ LowCodeAgentDefinition,
21
21
  )
22
22
  from uipath.models import CreateAction, InvokeProcess
23
23
  from uipath.models.connections import ConnectionTokenType
@@ -208,7 +208,7 @@ def create_resource_tool(
208
208
 
209
209
 
210
210
  def safe_extract_tools(
211
- agent_definition: AgentDefinition, cache: Optional[BaseCache] = None
211
+ agent_definition: LowCodeAgentDefinition, cache: Optional[BaseCache] = None
212
212
  ) -> list[BaseTool]:
213
213
  tools = []
214
214
  for resource in agent_definition.resources:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath-langchain
3
- Version: 0.0.139
3
+ Version: 0.0.141
4
4
  Summary: UiPath Langchain
5
5
  Project-URL: Homepage, https://uipath.com
6
6
  Project-URL: Repository, https://github.com/UiPath/uipath-langchain-python
@@ -26,7 +26,7 @@ Requires-Dist: openai>=1.65.5
26
26
  Requires-Dist: openinference-instrumentation-langchain>=0.1.50
27
27
  Requires-Dist: pydantic-settings>=2.6.0
28
28
  Requires-Dist: python-dotenv>=1.0.1
29
- Requires-Dist: uipath<2.2.0,>=2.1.76
29
+ Requires-Dist: uipath<2.2.0,>=2.1.96
30
30
  Provides-Extra: langchain
31
31
  Description-Content-Type: text/markdown
32
32
 
@@ -1,18 +1,20 @@
1
1
  uipath_langchain/__init__.py,sha256=VBrvQn7d3nuOdN7zEnV2_S-uhmkjgEIlXiFVeZxZakQ,80
2
- uipath_langchain/middlewares.py,sha256=6ljfbtWekrYc5G9KWDLSaViJ1DVIaNM-4qeB1BfHywE,731
2
+ uipath_langchain/middlewares.py,sha256=x3U_tmDIyMXPLzq6n-oNRAnpAF6pKa9wfkPYwE-oUfo,848
3
+ uipath_langchain/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
4
  uipath_langchain/_cli/__init__.py,sha256=juqd9PbXs4yg45zMJ7BHAOPQjb7sgEbWE9InBtGZhfo,24
5
+ uipath_langchain/_cli/cli_debug.py,sha256=RQqBVne3OdXYPvgl5f7kIrV5zztA8W8LMXWex7oOQeU,3221
4
6
  uipath_langchain/_cli/cli_dev.py,sha256=l3XFHrh-0OUFJq3zLMKuzedJAluGQBIZQTHP1KWOmpw,1725
5
7
  uipath_langchain/_cli/cli_eval.py,sha256=r8mGlKh-ymxfKrvrU4n0Hg3pQv36c_NhTNR_eokyQEM,3650
6
8
  uipath_langchain/_cli/cli_init.py,sha256=xhxJ8tuMSrVUNHvltgyPpOrvgMA-wq9shHeYYwvHILs,8199
7
9
  uipath_langchain/_cli/cli_new.py,sha256=KKLxCzz7cDQ__rRr_a496IHWlSQXhmrBNgmKHnXAnTY,2336
8
- uipath_langchain/_cli/cli_run.py,sha256=X_DI3VZ2RtID0aC5s-RiNy2_XD6qtJqxz6atX61oukM,2612
9
- uipath_langchain/_cli/_runtime/_context.py,sha256=UnELD9qmW6zEPIYJ3nXjP6EI88-DEJZ2_t1CRPvfypQ,623
10
+ uipath_langchain/_cli/cli_run.py,sha256=-k7QsfHWRQUAvVB6l533SCC9Xcxm7NSWq_oR0iy6THY,3426
11
+ uipath_langchain/_cli/_runtime/_context.py,sha256=mjmGEogKiO8tUV878BgV9rFIeA9MCmEH6hgs5W_dm4g,328
10
12
  uipath_langchain/_cli/_runtime/_conversation.py,sha256=ayghRqhyLeVUZg1WHnpeOYtPNhRwDOl4z8OSYiJkWSU,11529
11
13
  uipath_langchain/_cli/_runtime/_exception.py,sha256=USKkLYkG-dzjX3fEiMMOHnVUpiXJs_xF0OQXCCOvbYM,546
12
14
  uipath_langchain/_cli/_runtime/_graph_resolver.py,sha256=5SmYr3KJ_Iy13QtN8XPOOmoSrdysDGlLsgfiebHDXfs,5296
13
- uipath_langchain/_cli/_runtime/_input.py,sha256=Zx-8ZEr5Z796gdd3NnrlNObMIuXJobAV9mZwOql67Lo,5658
14
- uipath_langchain/_cli/_runtime/_output.py,sha256=yJOZPWv2FRUJWv1NRs9JmpB4QMTDXu8jrxoaKrfJvzw,9078
15
- uipath_langchain/_cli/_runtime/_runtime.py,sha256=HTLT9fDSZuAS1e0cAeFhBWxG1iJC0ISjGYgSOuCnfRM,9801
15
+ uipath_langchain/_cli/_runtime/_input.py,sha256=MTupo0p4F1vCTQi_KPZYJ2Um1X3QCmm8GeqC32HZbks,5724
16
+ uipath_langchain/_cli/_runtime/_output.py,sha256=DOIxc9BKYtESOr9sLaBeppskWfUPse8B2PUDOFin0oU,4829
17
+ uipath_langchain/_cli/_runtime/_runtime.py,sha256=ImDBluxga_WbIm9lnljjm7jGl1tZBPy5hUrXYOCcOIE,18262
16
18
  uipath_langchain/_cli/_templates/langgraph.json.template,sha256=eeh391Gta_hoRgaNaZ58nW1LNvCVXA7hlAH6l7Veous,107
17
19
  uipath_langchain/_cli/_templates/main.py.template,sha256=GpSblGH2hwS9ibqQmX2iB2nsmOA5zDfEEF4ChLiMxbQ,875
18
20
  uipath_langchain/_cli/_utils/_graph.py,sha256=nMJWy8FmaD9rqPUY2lHc5uVpUzbXD1RO12uJnhe0kdo,6803
@@ -25,17 +27,17 @@ uipath_langchain/_utils/_request_mixin.py,sha256=sYvvn3_fUJxtF893xFpVGwJx2YoEbw1
25
27
  uipath_langchain/_utils/_settings.py,sha256=2fExMQJ88YptfldmzMfZIpsx-m1gfMkeYGf5t6KIe0A,3084
26
28
  uipath_langchain/_utils/_sleep_policy.py,sha256=e9pHdjmcCj4CVoFM1jMyZFelH11YatsgWfpyrfXzKBQ,1251
27
29
  uipath_langchain/chat/__init__.py,sha256=WDcvy91ixvZ3Mq7Ae94g5CjyQwXovDBnEv1NlD5SXBE,116
28
- uipath_langchain/chat/models.py,sha256=m5PRAFXzUamt6-1K9uSlWUvZg_NfVyYHkgoQDJ-1rGs,10527
30
+ uipath_langchain/chat/models.py,sha256=PifcbDURqfttqVYKSnzdbOdbSiLiwHfQ6lWgVAtoLj8,16407
29
31
  uipath_langchain/embeddings/__init__.py,sha256=QICtYB58ZyqFfDQrEaO8lTEgAU5NuEKlR7iIrS0OBtc,156
30
32
  uipath_langchain/embeddings/embeddings.py,sha256=45gKyb6HVKigwE-0CXeZcAk33c0mteaEdPGa8hviqcw,4339
31
33
  uipath_langchain/retrievers/__init__.py,sha256=rOn7PyyHgZ4pMnXWPkGqmuBmx8eGuo-Oyndo7Wm9IUU,108
32
34
  uipath_langchain/retrievers/context_grounding_retriever.py,sha256=YLCIwy89LhLnNqcM0YJ5mZoeNyCs5UiKD3Wly8gnW1E,2239
33
35
  uipath_langchain/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- uipath_langchain/tools/preconfigured.py,sha256=xCP0hiQuFKIv45PTvMsoWlwsxJDs7goyZujKflYBngY,7476
36
+ uipath_langchain/tools/preconfigured.py,sha256=SyvrLrM1kezZxVVytgScVO8nBfVYfFGobWjY7erzsYU,7490
35
37
  uipath_langchain/vectorstores/__init__.py,sha256=w8qs1P548ud1aIcVA_QhBgf_jZDrRMK5Lono78yA8cs,114
36
38
  uipath_langchain/vectorstores/context_grounding_vectorstore.py,sha256=TncIXG-YsUlO0R5ZYzWsM-Dj1SVCZbzmo2LraVxXelc,9559
37
- uipath_langchain-0.0.139.dist-info/METADATA,sha256=QtbSg_ijtsfWBdkLdkMr7tJUOVHkDFVZtZs-Bhuht_8,4275
38
- uipath_langchain-0.0.139.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
39
- uipath_langchain-0.0.139.dist-info/entry_points.txt,sha256=FUtzqGOEntlJKMJIXhQUfT7ZTbQmGhke1iCmDWZaQZI,81
40
- uipath_langchain-0.0.139.dist-info/licenses/LICENSE,sha256=JDpt-uotAkHFmxpwxi6gwx6HQ25e-lG4U_Gzcvgp7JY,1063
41
- uipath_langchain-0.0.139.dist-info/RECORD,,
39
+ uipath_langchain-0.0.141.dist-info/METADATA,sha256=0dPnBY1gLeS7U_f-Hth1UNYGJnlvmFnuA-I72J5Fmw8,4275
40
+ uipath_langchain-0.0.141.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
41
+ uipath_langchain-0.0.141.dist-info/entry_points.txt,sha256=FUtzqGOEntlJKMJIXhQUfT7ZTbQmGhke1iCmDWZaQZI,81
42
+ uipath_langchain-0.0.141.dist-info/licenses/LICENSE,sha256=JDpt-uotAkHFmxpwxi6gwx6HQ25e-lG4U_Gzcvgp7JY,1063
43
+ uipath_langchain-0.0.141.dist-info/RECORD,,