mirror of
https://github.com/MervinPraison/PraisonAI.git
synced 2026-11-09 03:39:37 -10:00
26 lines
913 B
Python
26 lines
913 B
Python
# praisonai: skip=true
|
|
import json
|
|
from e2b_code_interpreter import Sandbox
|
|
|
|
def code_interpret(code: str):
|
|
print(f"\n{'='*50}\n> Running following AI-generated code:\n{code}\n{'='*50}")
|
|
exec = Sandbox().run_code(code)
|
|
|
|
if exec.error:
|
|
print("[Code Interpreter error]", exec.error)
|
|
return {"error": str(exec.error)}
|
|
else:
|
|
results = []
|
|
for result in exec.results:
|
|
# Ensure each result is a list or a simple Python type
|
|
if hasattr(result, '__iter__'):
|
|
result_list = list(result) # Convert Result to list
|
|
results.extend(result_list)
|
|
else:
|
|
results.append(str(result)) # Fall back to string
|
|
|
|
logs = {"stdout": list(exec.logs.stdout), "stderr": list(exec.logs.stderr)}
|
|
|
|
# Now everything is JSON-serialisable
|
|
return json.dumps({"results": results, "logs": logs})
|