perf(workflow): add tests, adapt some LLM node output formats, optimize sandbox return format
This commit is contained in:
@@ -36,7 +36,7 @@ async def run_code(request: RunCodeRequest):
|
||||
elif request.language == "javascript":
|
||||
return await run_nodejs_code(request.code, request.preload, request.options)
|
||||
else:
|
||||
return error_response(-400, "unsupported language")
|
||||
return error_response(400, "unsupported language")
|
||||
|
||||
|
||||
@router.get("/dependencies", response_model=ApiResponse)
|
||||
@@ -45,7 +45,7 @@ async def get_dependencies(language: str):
|
||||
if language == "python3":
|
||||
return await list_python_dependencies()
|
||||
else:
|
||||
return error_response(-400, "unsupported language")
|
||||
return error_response(400, "unsupported language")
|
||||
|
||||
|
||||
@router.post("/dependencies/update", response_model=ApiResponse)
|
||||
@@ -54,4 +54,4 @@ async def update_dependencies(request: UpdateDependencyRequest):
|
||||
if request.language == "python3":
|
||||
return await update_python_dependencies()
|
||||
else:
|
||||
return error_response(-400, "unsupported language")
|
||||
return error_response(400, "unsupported language")
|
||||
|
||||
@@ -75,6 +75,4 @@ def success_response(data: Any) -> ApiResponse:
|
||||
|
||||
def error_response(code: int, message: str) -> ApiResponse:
|
||||
"""Create error response"""
|
||||
if code >= 0:
|
||||
code = -1
|
||||
return ApiResponse(code=code, message=message, data=None)
|
||||
|
||||
@@ -27,11 +27,11 @@ async def run_nodejs_code(code: str, preload: str, options: RunnerOptions):
|
||||
try:
|
||||
runner = NodejsRunner()
|
||||
result = await runner.run(code, options, preload)
|
||||
if result.exit_code == signal.SIGSYS + 0x80:
|
||||
if result.exit_code in [signal.SIGSYS + 0x80, -signal.SIGSYS]:
|
||||
return error_response(31, "sandbox security policy violation")
|
||||
|
||||
if result.exit_code != 0:
|
||||
return error_response(500, result.stderr)
|
||||
return error_response(result.exit_code, result.stderr)
|
||||
|
||||
return success_response(RunCodeResponse(
|
||||
stdout=result.stdout,
|
||||
@@ -39,5 +39,5 @@ async def run_nodejs_code(code: str, preload: str, options: RunnerOptions):
|
||||
))
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Python execution failed: {e}", exc_info=True)
|
||||
return error_response(-500, str(e))
|
||||
logger.error(f"JavaScript execution failed: {e}", exc_info=True)
|
||||
return error_response(500, str(e))
|
||||
|
||||
@@ -47,7 +47,7 @@ async def run_python_code(code: str, preload: str, options: RunnerOptions):
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Python execution failed: {e}", exc_info=True)
|
||||
return error_response(-500, str(e))
|
||||
return error_response(500, str(e))
|
||||
|
||||
|
||||
async def list_python_dependencies():
|
||||
|
||||
Reference in New Issue
Block a user