Python沙盒与Gradio UI集成

提供一个安全的Python沙盒环境,集成Gradio Web UI,用于与大型语言模型交互并执行代码。

  • by aamir-gmail
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 aamir-gmail/lm_studio_mcp

使用说明

LM Studio的Python沙盒和Gradio用户界面

这个项目提供了一个完整的生态系统,用于在安全沙箱中执行Python代码,并与基于Gradio的网页用户界面紧密集成,以便与LM Studio等服务中的大型语言模型进行交互。

注:此设置已在LM Studio v0.3.x版本中进行了测试和优化,使用qwen.qwen3-coder-30b-a3b-instruct模型以实现基于工具的稳健代码执行。

全栈包括三个主要组件:

  1. Python Sandbox:一个安全、容器化的环境,用于运行Python代码,并配备丰富的数据科学和机器学习工具栈。

  2. 工件服务器:一个轻量级的Web服务器,用于存储和提供沙箱生成的文件(图表、图像、数据)。

  3. Gradio UI:一个用户友好的网页界面,用于与大型语言模型(LLM)进行交互,能够将代码执行任务委托给Python沙盒,并展示结果,包括图像和文件。

这个项目是设计为与Linux生态系统协同工作的,我正在使用Ubuntu 22.04 LTS, 我还没有在Windows系统或Windows Docker上进行测试。

重要的是,您要仔细阅读这些说明,以确保取得成功的结果。

你需要对编辑Python代码、Docker代码以及LM Studio有一定的熟悉度。

要开始的话,首先克隆仓库,然后开始构建Docker镜像 核心MCP服务器。Docker文件位于“MCP_core_server”目录下

在终端中执行命令:“docker build -t python-sandbox-integrated_v2:latest”。

如果构建成功,您可以这样进行测试。

“docker run --rm -i -p 8000:8000 -e PUBLIC_BASE_URL=http://{YOUR_LOCAL_IP}:8000 python-sandbox-integrated_v2:latest python /app/mcp_server.py --stdio”

对于这一点,有两种运行Python沙箱的方法。

我不会详细介绍如何为MCP使用配置LM Studio。 关于这个有很多相关的文档资料。

在LM工作室聊天界面内的本地区域。

  1. 复制提供的mcp文件,并根据本地IP进行相应编辑
  2. 确保您的本地防火墙为JSON和Docker Compose中定义的端口和本地卷提供了例外,这些端口和卷是本地系统特有的。
  3. 在开始使用MCP服务器之前,请确保已使用docker compose启动了边车(side-car)。
  4. 这就像运行 `docker compose up -d` 一样简单,side-car 提供了镜像持久化功能。
  5. 使用提供的mcp文件,LM Studio将为您管理一切。无需手动运行Docker。
  6. 对于Python环境的正常运行,重要的是要使用提供的系统提示文件“system_prompt.txt”。
  7. 您正在使用的模型具备调用工具的能力,例如“qwen.qwen3-coder-30b-a3b-instruct”

现在让我们来看看第二个选项。使用Gradio界面与LM Studio开发者API。 这有点棘手,但还是可以做到的。在LM Studio的开发者模式下,你的mcp.json文件 无法工作。它仅在本地聊天模式下有效。

导航至“python_mcp_LMstudio_developers_api”。

从这一点开始,我们将假设您已经构建了您的基础Python沙箱Docker镜像, 所以重点是要让Gradio运行起来。

  1. 利用LM studio开发者API进行工作,并能监听外部接口网卡。
  2. 根据你本地系统的实际情况编辑.env文件。
  3. 在你继续进行到这一步之前,请编辑docker-compose文件,以确保所有本地卷和子文件夹实际上都指向你的本地系统。 必须使用绝对路径
  4. 执行以下命令:“docker compose --env-file .env -f docker-compose.external_v3.yml build --no-cache ui”。
  5. 这将构建您的Gradio/Python沙盒环境。
  6. 运行命令:“docker compose --env-file .env -f docker-compose.external_v3.yml up -d”
  7. 现在我们需要检查每个组件是否正常工作。
  8. 执行这个命令“docker logs mcp_lmstudio_ui_ext --tail 120”。你应该能看到UI正在监听设置的接口。

最后,提供一些故障排除技巧。

  1. 我已经在LM本地聊天以及Gradio界面进行了广泛的测试。
  2. 如果您遇到任何问题,请检查以下内容。
  3. 你是否正确地将本地卷挂载到 Docker 上了。
  4. 你是否已正确设置环境变量,比如你机器的IP地址。
  5. 如果你使用了某种防火墙,请允许所有使用的端口通过。
  6. 正确编辑.env文件。
  7. 编辑“docker-compose.external_v3.yml”文件,以正确挂载本地卷。
  8. 当在本地LM聊天或Gradio界面中运行沙盒时,如果遇到类似这样的URL。 ““ 只需复制并将URL部分粘贴到您的浏览器中,这不是一个错误。