打造你的 AI 實驗室:OpenSandbox 讓你輕鬆玩轉 AI 應用
大家好!今天要為大家介紹一個超酷的工具:OpenSandbox。 簡單來說,OpenSandbox 就像是一個為 AI 應用打造的「安全遊樂場」,讓你在裡面盡情實驗各種 AI 程式碼,而不用擔心會弄壞你的電腦或伺服器。 對於想要踏入 AI 領域的初學者,或者想要試驗各種 AI 工具的開發者來說,OpenSandbox 都是一個非常值得一試的工具。 讓我們一起來看看 OpenSandbox 到底是什麼,以及它能為我們帶來什麼吧!
什麼是 OpenSandbox?
OpenSandbox 是一個通用的沙盒平台,專為 AI 應用而設計。 它的主要功能是提供一個隔離且安全的環境,讓你在裡面執行程式碼,而不會影響到你的主機系統。 你可以把它想像成一個虛擬的實驗室,你可以在這個實驗室裡安全地進行各種 AI 實驗,例如:
- 執行 AI 程式碼: 在安全的環境中執行程式碼,不用擔心程式碼會對你的系統造成任何損害。
- 測試 AI 模型: 在隔離的環境中測試你的 AI 模型,確保它們的運作符合預期。
- 整合 AI 工具: 將各種 AI 工具整合到 OpenSandbox 中,例如程式碼解釋器、瀏覽器自動化工具等。
- 進行 AI 訓練: 在 OpenSandbox 中進行 AI 模型的訓練,並監控訓練的進度。
OpenSandbox 支援多種程式語言,包括 Python、Java、JavaScript 等, 並且提供統一的 API,讓你輕鬆控制和管理沙盒。 它還支援 Docker 和 Kubernetes, 讓你可以在本地運行,也可以部署到雲端進行大規模的 AI 應用開發。
OpenSandbox 的核心功能
OpenSandbox 提供了許多強大的功能,讓它成為一個非常棒的 AI 應用開發平台:
- 多語言 SDK: 支援多種程式語言,包括 Python、Java/Kotlin、JavaScript/TypeScript、C#/.NET 等。 這意味著你可以使用你最熟悉的程式語言來開發 AI 應用。
- 沙盒協議: 定義了沙盒生命週期管理 API 和沙盒執行 API,讓你擴展自定義的沙盒運行時。 你可以根據自己的需求,創建定制化的沙盒環境。
- 沙盒運行時: 內建生命週期管理,支援 Docker 和 Kubernetes, 讓你可以在本地運行,也可以部署到雲端。 它提供了高度的彈性和可擴展性,可以滿足不同規模的 AI 應用需求。
- 沙盒環境: 內建 Command(命令)、Filesystem(檔案系統)和 Code Interpreter(程式碼解釋器) 的實現。 例如:Coding Agents(程式碼代理)、瀏覽器自動化(Chrome, Playwright) 和 桌面環境(VNC, VS Code)。 這意味著你可以直接使用這些內建的環境,而不用自己搭建。
- 網路策略: 統一的 Ingress Gateway(入口網關), 具有多種路由策略,以及每個沙盒的 Egress 控制(出口控制)。 你可以控制沙盒的網路訪問權限,確保沙盒的安全。
- 強隔離性: 支援安全的容器運行時,如 gVisor、Kata Containers 和 Firecracker microVM, 可以在沙盒工作負載和主機之間提供增強的隔離性。 確保沙盒的安全性。
初學者入門:快速上手 OpenSandbox
對於初學者來說,OpenSandbox 提供了友善的入門方式,讓我們一起來看看如何快速上手吧!
1. 準備你的環境
- Docker: 這是 OpenSandbox 執行沙盒的基礎,所以請確保你的電腦上已經安裝了 Docker。
- Python 3.10+: 建議使用 Python 3.10 或更高版本,因為 OpenSandbox 的 Python SDK 提供了更好的支援。
2. 安裝與配置 OpenSandbox 伺服器
首先,我們需要安裝 OpenSandbox 的伺服器端,並進行初始化配置。
uv pip install opensandbox-server
opensandbox-server init-config ~/.sandbox.toml --example docker
uv pip install opensandbox-server: 使用uv(類似pip的套件管理工具,如果沒有安裝請自行安裝) 安裝 OpenSandbox 伺服器。opensandbox-server init-config ~/.sandbox.toml --example docker: 初始化配置檔案。 這會在你的家目錄(~)下建立一個名為.sandbox.toml的配置文件。--example docker選項表示使用 Docker 運行時的配置。
3. 啟動 OpenSandbox 伺服器
配置完成後,我們就可以啟動 OpenSandbox 伺服器了。
opensandbox-server
或者,你也可以使用以下指令查看幫助資訊:
opensandbox-server -h
4. 撰寫你的第一個 Python 程式碼(Code Interpreter 範例)
接下來,讓我們來寫一個簡單的 Python 程式碼, 使用 OpenSandbox 的 Code Interpreter SDK 執行程式碼。
import asyncio
from datetime import timedelta
from code_interpreter import CodeInterpreter, SupportedLanguage
from opensandbox import Sandbox
from opensandbox.models import WriteEntry
async def main() -> None:
# 1. 建立一個沙盒
sandbox = await Sandbox.create(
"opensandbox/code-interpreter:v1.0.1",
entrypoint=["/opt/opensandbox/code-interpreter.sh"],
env={"PYTHON_VERSION": "3.11"},
timeout=timedelta(minutes=10),
)
async with sandbox:
# 2. 執行 shell 指令
execution = await sandbox.commands.run("echo 'Hello OpenSandbox!'")
print(execution.logs.stdout[0].text)
# 3. 寫入檔案
await sandbox.files.write_files([
WriteEntry(path="/tmp/hello.txt", data="Hello World", mode=644)
])
# 4. 讀取檔案
content = await sandbox.files.read_file("/tmp/hello.txt")
print(f"Content: {content}")
# 5. 建立一個程式碼解釋器
interpreter = await CodeInterpreter.create(sandbox)
# 6. 執行 Python 程式碼 (單次執行,直接傳入語言)
result = await interpreter.codes.run(
"""
import sys
print(sys.version)
result = 2 + 2
result
""",
language=SupportedLanguage.PYTHON,
)
print(result.result[0].text)
print(result.logs.stdout[0].text)
# 7. 清理沙盒
await sandbox.kill()
if __name__ == "__main__":
asyncio.run(main())
uv pip install opensandbox-code-interpreter: 安裝 Code Interpreter SDK。Sandbox.create(): 創建一個沙盒,指定使用的 Docker 鏡像 (opensandbox/code-interpreter:v1.0.1)。sandbox.commands.run(): 在沙盒中執行 Shell 指令。sandbox.files.write_files(): 在沙盒中寫入檔案。sandbox.files.read_file(): 在沙盒中讀取檔案。CodeInterpreter.create(): 建立一個 Code Interpreter 實例。interpreter.codes.run(): 執行 Python 程式碼。sandbox.kill(): 關閉沙盒。
5. 執行你的程式碼
將上述程式碼儲存為一個 Python 檔案 (例如 sandbox_example.py),然後在你的終端機中執行它:
python sandbox_example.py
如果你一切順利,你應該會在終端機中看到 “Hello OpenSandbox!” 和 Python 版本資訊,以及 “4”。 這表示你已經成功地使用 OpenSandbox 執行了你的第一個程式碼!
更多 OpenSandbox 實例
OpenSandbox 提供了豐富的實例,展示了在不同情境下如何使用沙盒。 這些範例程式碼都位於 examples/ 目錄中。 讓我們來看看一些有趣的範例:
- code-interpreter: 使用 OpenSandbox 建立一個 Code Interpreter,讓你在沙盒中執行 Python、JavaScript 等多種程式碼。 這是個非常適合初學者的範例,讓你快速了解 OpenSandbox 的基本用法。
- aio-sandbox: 展示了如何使用 OpenSandbox SDK 建立一個 all-in-one 沙盒。
- agent-sandbox: 示範如何在 Kubernetes 上使用 OpenSandbox。
- claude-code: 在 OpenSandbox 中執行 Claude Code。
- gemini-cli: 在 OpenSandbox 中執行 Google Gemini CLI。
- chrome: 使用 Headless Chromium 搭配 VNC,方便你進行自動化操作和除錯。 適合想要進行網頁爬蟲或瀏覽器自動化的朋友。
- playwright: Playwright + Chromium 範例,讓你進行 headless 爬蟲和測試。
- rl-training: 在沙盒中進行 DQN CartPole 訓練。 適合想要進行強化學習的朋友。
你可以從這些範例中學習如何使用 OpenSandbox 解決各種 AI 應用場景。 每個範例都有詳細的說明文件, 幫助你快速理解和上手。
為什麼選擇 OpenSandbox? 你的 AI 實驗室優勢
- 安全性: OpenSandbox 提供強大的隔離性,確保你的程式碼在安全、可控的環境中執行, 保護你的主機系統。
- 彈性: 支援多種程式語言和運行時,你可以根據你的需求選擇最適合你的工具和環境。
- 可擴展性: 支援 Docker 和 Kubernetes, 讓你可以在本地運行,也可以部署到雲端,輕鬆擴展你的 AI 應用。
- 易用性: 提供了易於使用的 SDK 和豐富的範例, 讓你可以快速上手,開始你的 AI 實驗。
- 豐富的生態系統: OpenSandbox 正在不斷發展, 擁有越來越多的整合和支援,例如: Claude Code, Gemini CLI, Playwright 等。
錯誤排除與小技巧
在使用 OpenSandbox 的過程中,你可能會遇到一些問題。 以下是一些常見問題和解決方法:
- Docker 未啟動: 請確認你的 Docker 正在運行。 在 macOS 上,你可以點擊 Docker 圖示查看 Docker 狀態; 在 Linux 上,你可以使用
systemctl status docker指令檢查 Docker 狀態。 - 權限問題: 在某些情況下,你可能需要使用
sudo執行某些指令,例如啟動 OpenSandbox 伺服器。 - Docker 鏡像問題: 確保你使用的 Docker 鏡像已經下載。 如果遇到問題,可以嘗試重新下載鏡像。
- 網路問題: 如果你的沙盒需要訪問網路,請確保你的網路配置正確。 你可以在
.sandbox.toml配置文件中設定網路策略。 - 版本相容性: 請確認你的 OpenSandbox 伺服器、SDK 和 Docker 版本相容。
結論
OpenSandbox 是一個功能強大且易於使用的沙盒平台,非常適合 AI 開發者和初學者。 它提供了安全的環境、豐富的功能和豐富的範例, 讓你可以在其中盡情實驗 AI 程式碼, 探索 AI 的無限可能。
趕快去 OpenSandbox 官方網站 看看吧, 開始打造你的 AI 實驗室, 創造屬於你的 AI 奇蹟!
參考閱讀
https://github.com/alibaba/OpenSandbox