forked from phoenix-oss/llama-stack-mirror
chore: Make code interpreter async (#1654)
# What does this PR do? Made code interpreter tool call to be async such that its non blocking ## Test Plan pytest -s -v tests/integration/agents/test_agents.py --stack-config=together --text-model=meta-llama/Llama-3.3-70B-Instruct <img width="1693" alt="image" src="https://github.com/user-attachments/assets/42520bb6-7acf-42d5-b71f-b35ca149d722" /> [//]: # (## Documentation) Co-authored-by: sarthakdeshpande <sarthak.deshpande@engati.com>
This commit is contained in:
parent
d609ffce2a
commit
5ece262976
1 changed files with 3 additions and 2 deletions
|
@ -5,6 +5,7 @@
|
||||||
# the root directory of this source tree.
|
# the root directory of this source tree.
|
||||||
|
|
||||||
|
|
||||||
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
|
@ -37,7 +38,7 @@ class CodeInterpreterToolRuntimeImpl(ToolsProtocolPrivate, ToolRuntime):
|
||||||
async def initialize(self):
|
async def initialize(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def register_tool(self, tool: Tool):
|
async def register_tool(self, tool: Tool) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def unregister_tool(self, tool_id: str) -> None:
|
async def unregister_tool(self, tool_id: str) -> None:
|
||||||
|
@ -65,7 +66,7 @@ class CodeInterpreterToolRuntimeImpl(ToolsProtocolPrivate, ToolRuntime):
|
||||||
# Use environment variable to control bwrap usage
|
# Use environment variable to control bwrap usage
|
||||||
force_disable_bwrap = os.environ.get("DISABLE_CODE_SANDBOX", "").lower() in ("1", "true", "yes")
|
force_disable_bwrap = os.environ.get("DISABLE_CODE_SANDBOX", "").lower() in ("1", "true", "yes")
|
||||||
req = CodeExecutionRequest(scripts=[script], use_bwrap=not force_disable_bwrap)
|
req = CodeExecutionRequest(scripts=[script], use_bwrap=not force_disable_bwrap)
|
||||||
res = self.code_executor.execute(req)
|
res = await asyncio.to_thread(self.code_executor.execute, req)
|
||||||
pieces = [res["process_status"]]
|
pieces = [res["process_status"]]
|
||||||
for out_type in ["stdout", "stderr"]:
|
for out_type in ["stdout", "stderr"]:
|
||||||
res_out = res[out_type]
|
res_out = res[out_type]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue