CoolFace
Apppublic

Pamudu13/gemma-3-chat

sourceHugging Faceupdated 25d agoView on Hugging Face
0likes
code_interpreter.py92 linesDownload Raw Back to py
1from e2b_code_interpreter import Sandbox2import asyncio3from concurrent.futures import ThreadPoolExecutor4from py.get_setting import load_settings5 6async def e2b_code(code: str, language: str = "Python") -> str:7    settings = await load_settings()8    e2b_api_key = settings["codeSettings"]["e2b_api_key"]9    executor = ThreadPoolExecutor()10    def run_in_sandbox():11        with Sandbox(api_key=e2b_api_key) as sandbox:12            execution = sandbox.run_code(code,language=language)13            return execution.logs14 15    # 使用线程池执行同步代码,防止阻塞事件循环16    loop = asyncio.get_event_loop()17    result = await loop.run_in_executor(executor, run_in_sandbox)18    return str(result)19 20import asyncio21from aiohttp import ClientSession22 23 24async def local_run_code(code: str, language: str = "python") -> str:25    settings = await load_settings()26    url = settings["codeSettings"]["sandbox_url"].strip("/") + "/run_code"27    headers = {28        "Content-Type": "application/json"29    }30    data = {31        "code": code,32        "language": language33    }34 35    async with ClientSession() as session:36        async with session.post(url, json=data, headers=headers) as response:37            # 获取响应文本38            result = await response.text()39            return result40 41e2b_code_tool = {42    "type": "function",43    "function": {44        "name": "e2b_code",45        "description": "执行代码,工具只会返回stdout和stderr。请将你要查看的答案输出到stdout。",46        "parameters": {47            "type": "object",48            "properties": {49                "code": {50                    "type": "string",51                    "description": "需要执行的代码,例如:print('Hello, World!'),不要包含markdown的代码块标记!只有输入可运行的代码字符串。",52                },53                "language": {54                    "type": "string",55                    "description": "代码语言。",56                    "enum": ["python", "js", "ts", "r", "java", "bash"],57                    "default": "python"58                }59            },60            "required": ["code"],61        },62    },63}64 65local_run_code_tool = {66  "type": "function",67  "function": {68    "name": "local_run_code",69    "description": "执行代码,工具只会返回stdout和stderr。请将你要查看的答案输出到stdout。",70    "parameters": {71      "type": "object",72      "properties": {73        "code": {74          "type": "string",75          "description": "需要执行的代码,例如:print('Hello, World!'),不要包含markdown的代码块标记!只有输入可运行的代码字符串。工具只会返回stdout和stderr。请将你要查看的答案放在print()中,不要放在其他地方。"76        },77        "language": {78          "type": "string",79          "description": "代码语言。",80          "enum": [81            "python", "cpp", "nodejs", "go", "go_test", "java", "php", "csharp",82            "bash", "typescript", "sql", "rust", "cuda", "lua", "R", "perl",83            "D_ut", "ruby", "scala", "julia", "pytest", "junit", "kotlin_script",84            "jest", "verilog", "python_gpu", "lean", "swift", "racket"85          ],86          "default": "python"87        }88      },89      "required": ["code"]90    }91  }92}