← Sandbox SDK / sandbox / tutorials
Code interpreter с Workers AI
Создание мощного интерпретатора кода, который предоставляет модель gpt-oss в Workers AI возможность выполнять код Python с помощью Cloudflare Sandbox SDK.
Время выполнения: 15 минут
Что вы создадите
Cloudflare Worker, который принимает запросы на естественном языке, использует GPT-OSS для определения необходимости выполнения кода Python, запускает код в изолированных песочницах и возвращает результаты вместе с объяснениями на основе ИИ.
Предварительные требования
- Зарегистрируйтесь для получения Аккаунт Cloudflare ↗.
- Установка
Node.js↗.
менеджер версий Node.js
Используйте менеджер версий Node, например Volta ↗ или nvm ↗ чтобы избежать проблем с правами доступа и переключать версии Node.js. Wrangler, о котором пойдёт речь далее в этом руководстве, требует версию Node 16.17.0 или более поздней версии.
Также потребуется:
- Docker ↗ локальный запуск
1. Создайте проект
Создайте новый проект Sandbox SDK:
npm create cloudflare@latest -- workers-ai-interpreter --template=cloudflare/sandbox-sdk/examples/code-interpretercd workers-ai-interpreter2. Проверьте реализацию
Шаблон включает полную реализацию с использованием актуальных лучших практик. Рассмотрим ключевые компоненты:
// 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";
}Ключевые преимущества по сравнению с прямыми вызовами REST API:
- Официальные пакеты: Использует
workers-ai-providerвместо ручных вызовов API - Vercel AI SDK: Использует
generateText()иtool()для чистого вызова функций - Без API-ключей: Использует нативную привязку AI вместо переменных окружения
- Типобезопасность: Полная поддержка TypeScript с корректной типизацией
3. Проверьте конфигурацию
Шаблон включает правильную конфигурацию Wrangler:
{
"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"Ключевые моменты конфигурации:
- AI binding: Обеспечивает прямой доступ к моделям Workers AI
- Настройка контейнера: Настраивает контейнер песочницы с помощью Dockerfile
- Durable Objects: Предоставляет постоянные песочницы с управлением состоянием
4. Протестируйте локально
Запустите сервер разработки:
npm run devТестирование с помощью 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. Разверните
Разверните ваш Worker:
npx wrangler deploy6. Проверка развёртывания
Попробуйте более сложные запросы:
# 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]"}'Как это работает
- Пользовательский ввод: Отправляйте запросы на естественном языке в
/runконечная точка - Решение ИИ: GPT-OSS получает промпт с
execute_pythonинструмент доступен - Умное выполнение: Модель определяет, требуется ли выполнение кода Python
- Изоляция песочницы: Код выполняется в изолированных контейнерах Cloudflare Sandbox
- Объяснение с помощью ИИ: Результаты интегрируются обратно в ответ ИИ для формирования итогового вывода
Что вы создали
Вы развернули сложный интерпретатор кода, который:
- Встроенная интеграция с Workers AI: Использует официальный
workers-ai-providerпакет для простой интеграции - Вызов функций: Использует Vercel AI SDK для чёткого определения и выполнения инструментов
- Безопасное выполнение: Выполняет код Python в изолированных контейнерах песочницы
- Интеллектуальные ответы: Объединяет рассуждения ИИ с результатами выполнения кода
Следующие шаги
- Анализ данных с помощью ИИ - Добавьте pandas и matplotlib для расширенного анализа данных
- Code Interpreter API - Используйте встроенный интерпретатор кода со структурированным выводом
- Потоковый вывод - Отображение прогресса выполнения в реальном времени
- Справочник по API - Ознакомьтесь со всеми доступными методами песочницы
Дополнительные материалы
- Workers AI - Узнайте больше о платформе Cloudflare для ИИ
- пакет workers-ai-provider ↗ - Официальная интеграция с Workers AI
- Vercel AI SDK ↗ - Универсальный набор инструментов для приложений с ИИ
- Документация по модели GPT-OSS - Сведения о модели и её возможностях