← Sandbox SDK / sandbox / tutorials
Code interpreter s Workers AI
Vytvořte výkonný interpret kódu, který dává model gpt-oss v Workers AI možnost spouštět kód v Pythonu pomocí Cloudflare Sandbox SDK.
Doba dokončení: 15 minut
Co vytvoříte
Cloudflare Worker, který přijímá prompty v přirozeném jazyce, pomocí GPT-OSS rozhoduje, kdy je potřeba spustit kód v Pythonu, spouští jej v izolovaných sandboxech a vrací výsledky s vysvětlením generovaným pomocí AI.
Předpoklady
- Zaregistrujte si účet Cloudflare ↗.
- Nainstalujte
Node.js↗.
Správce verzí Node.js
Použijte správce verzí Node, jako je Volta ↗ nebo nvm ↗ abyste se vyhnuli problémům s oprávněními a mohli měnit verze Node.js. Wrangler, o kterém se dozvíte dále v této příručce, vyžaduje verzi Node 16.17.0 nebo novější.
Budete také potřebovat:
- Docker ↗ při lokálním spuštění
1. Vytvořte projekt
Vytvořte nový projekt Sandbox SDK:
npm create cloudflare@latest -- workers-ai-interpreter --template=cloudflare/sandbox-sdk/examples/code-interpretercd workers-ai-interpreter2. Zkontrolujte implementaci
Šablona obsahuje kompletní implementaci podle nejnovějších doporučených postupů. Podívejme se na klíčové součásti:
// src/index.ts
import { getSandbox } from "@cloudflare/sandbox";
import { generateText, stepCountIs, tool } from "ai";
import { createWorkersAI } from "workers-ai-provider";
import { z } from "zod";
const MODEL = "@cf/openai/gpt-oss-120b" as const;
async function handleAIRequest(input: string, env: Env): Promise<string> {
const workersai = createWorkersAI({ binding: env.AI });
const result = await generateText({
model: workersai(MODEL),
messages: [{ role: "user", content: input }],
tools: {
execute_python: tool({
description: "Execute Python code and return the output",
inputSchema: z.object({
code: z.string().describe("The Python code to execute"),
}),
execute: async ({ code }) => {
return executePythonCode(env, code);
},
}),
},
stopWhen: stepCountIs(5),
});
return result.text || "No response generated";
}Klíčová vylepšení oproti přímým voláním REST API:
- Oficiální balíčky: Používá
workers-ai-providermísto ručních volání API - Vercel AI SDK: Využívá
generateText()atool()pro čisté volání funkcí - Žádné klíče API: Používá nativní AI binding místo proměnných prostředí
- Typová bezpečnost: Plná podpora TypeScriptu se správným typováním
3. Zkontrolujte konfiguraci
Šablona obsahuje odpovídající konfiguraci Wrangleru:
{
"name": "sandbox-code-interpreter-example",
"main": "src/index.ts",
// Set this to today's date
"compatibility_date": "2026-08-28",
"ai": {
"binding": "AI"
},
"containers": [
{
"class_name": "Sandbox",
"image": "./Dockerfile",
"name": "sandbox",
"max_instances": 1,
"instance_type": "basic"
}
],
"durable_objects": {
"bindings": [
{
"class_name": "Sandbox",
"name": "Sandbox"
}
]
}
}name = "sandbox-code-interpreter-example"
main = "src/index.ts"
# Set this to today's date
compatibility_date = "2026-08-28"
[ai]
binding = "AI"
[[containers]]
class_name = "Sandbox"
image = "./Dockerfile"
name = "sandbox"
max_instances = 1
instance_type = "basic"
[[durable_objects.bindings]]
class_name = "Sandbox"
name = "Sandbox"Nejdůležitější body konfigurace:
- AI binding: Umožňuje přímý přístup k modelům Workers AI
- Nastavení kontejneru: Nakonfiguruje kontejner sandboxu pomocí Dockerfile
- Durable Objects: Poskytuje trvalé sandboxy se správou stavu
4. Otestujte lokálně
Spusťte vývojový server:
npm run devOtestujte pomocí curl:
# Simple calculation
curl -X POST http://localhost:8787/run \
-H "Content-Type: application/json" \
-d '{"input": "Calculate 5 factorial using Python"}'
# Complex operations
curl -X POST http://localhost:8787/run \
-H "Content-Type: application/json" \
-d '{"input": "Use Python to find all prime numbers under 20"}'
# Data analysis
curl -X POST http://localhost:8787/run \
-H "Content-Type: application/json" \
-d '{"input": "Create a list of the first 10 squares and calculate their sum"}'5. Nasaďte
Nasaďte svůj Worker:
npx wrangler deploy6. Otestujte nasazení
Vyzkoušejte složitější dotazy:
# Data visualization preparation
curl -X POST https://workers-ai-interpreter.YOUR_SUBDOMAIN.workers.dev/run \
-H "Content-Type: application/json" \
-d '{"input": "Generate sample sales data for 12 months and calculate quarterly totals"}'
# Algorithm implementation
curl -X POST https://workers-ai-interpreter.YOUR_SUBDOMAIN.workers.dev/run \
-H "Content-Type: application/json" \
-d '{"input": "Implement a binary search function and test it with a sorted array"}'
# Mathematical computation
curl -X POST https://workers-ai-interpreter.YOUR_SUBDOMAIN.workers.dev/run \
-H "Content-Type: application/json" \
-d '{"input": "Calculate the standard deviation of [2, 4, 4, 4, 5, 5, 7, 9]"}'Jak to funguje
- Uživatelský vstup: Odesílejte prompty v přirozeném jazyce do
/runkoncový bod - Rozhodnutí AI: GPT-OSS obdrží prompt s
execute_pythondostupný nástroj - Chytré spuštění: Model rozhoduje, zda je potřeba spustit kód v Pythonu
- Izolace sandboxu: Kód běží v izolovaných kontejnerech Cloudflare Sandbox
- Vysvětlení AI: Výsledky se začlení zpět do odpovědi AI pro finální výstup
Co jste vytvořili
Nasadili jste sofistikovaný interpret kódu, který:
- Nativní integrace Workers AI: Používá oficiální
workers-ai-providerbalíček pro plynulou integraci - Volání funkcí: Využívá Vercel AI SDK pro přehledné definice nástrojů a jejich spouštění
- Bezpečné spouštění: Spouští kód v Pythonu v izolovaných kontejnerech sandboxu
- Inteligentní odpovědi: Kombinuje uvažování AI s výsledky spuštění kódu
Další kroky
- Analyzujte data pomocí AI - Přidejte pandas a matplotlib pro pokročilou analýzu dat
- Code Interpreter API - Použijte vestavěný interpret kódu se strukturovanými výstupy
- Streamování výstupu - Zobrazení průběhu spuštění v reálném čase
- Referenční dokumentace API - Prozkoumejte všechny dostupné metody sandboxu
Související zdroje
- Workers AI - Více o AI platformě Cloudflare
- balíček workers-ai-provider ↗ - Oficiální integrace s Workers AI
- Vercel AI SDK ↗ - Univerzální sada nástrojů pro AI aplikace
- Dokumentace modelu GPT-OSS - Podrobnosti a možnosti modelu