uipath-langchain 0.0.140__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.
- uipath_langchain/_cli/_runtime/_context.py +1 -7
- uipath_langchain/_cli/_runtime/_input.py +125 -117
- uipath_langchain/_cli/_runtime/_output.py +111 -197
- uipath_langchain/_cli/_runtime/_runtime.py +376 -150
- uipath_langchain/_cli/cli_debug.py +95 -0
- uipath_langchain/_cli/cli_run.py +30 -17
- uipath_langchain/middlewares.py +2 -0
- uipath_langchain/py.typed +0 -0
- uipath_langchain/tools/preconfigured.py +2 -2
- {uipath_langchain-0.0.140.dist-info → uipath_langchain-0.0.141.dist-info}/METADATA +2 -2
- {uipath_langchain-0.0.140.dist-info → uipath_langchain-0.0.141.dist-info}/RECORD +14 -12
- {uipath_langchain-0.0.140.dist-info → uipath_langchain-0.0.141.dist-info}/WHEEL +0 -0
- {uipath_langchain-0.0.140.dist-info → uipath_langchain-0.0.141.dist-info}/entry_points.txt +0 -0
- {uipath_langchain-0.0.140.dist-info → uipath_langchain-0.0.141.dist-info}/licenses/LICENSE +0 -0
|
@@ -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
|
+
)
|
uipath_langchain/_cli/cli_run.py
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
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
|
|
uipath_langchain/middlewares.py
CHANGED
|
@@ -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:
|
|
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.
|
|
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.
|
|
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=
|
|
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
|
|
9
|
-
uipath_langchain/_cli/_runtime/_context.py,sha256=
|
|
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=
|
|
14
|
-
uipath_langchain/_cli/_runtime/_output.py,sha256=
|
|
15
|
-
uipath_langchain/_cli/_runtime/_runtime.py,sha256=
|
|
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
|
|
@@ -31,11 +33,11 @@ uipath_langchain/embeddings/embeddings.py,sha256=45gKyb6HVKigwE-0CXeZcAk33c0mtea
|
|
|
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=
|
|
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.
|
|
38
|
-
uipath_langchain-0.0.
|
|
39
|
-
uipath_langchain-0.0.
|
|
40
|
-
uipath_langchain-0.0.
|
|
41
|
-
uipath_langchain-0.0.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|