INTEGRITY Документация

Code interpreter с Workers AI

Создание мощного интерпретатора кода, который предоставляет модель gpt-oss в Workers AI возможность выполнять код Python с помощью Cloudflare Sandbox SDK.

Время выполнения: 15 минут

Что вы создадите

Cloudflare Worker, который принимает запросы на естественном языке, использует GPT-OSS для определения необходимости выполнения кода Python, запускает код в изолированных песочницах и возвращает результаты вместе с объяснениями на основе ИИ.

Предварительные требования

  1. Зарегистрируйтесь для получения Аккаунт Cloudflare ↗.
  2. Установка Node.js ↗.

менеджер версий Node.js

Используйте менеджер версий Node, например Volta ↗ или nvm ↗ чтобы избежать проблем с правами доступа и переключать версии Node.js. Wrangler, о котором пойдёт речь далее в этом руководстве, требует версию Node 16.17.0 или более поздней версии.

Также потребуется:

1. Создайте проект

Создайте новый проект Sandbox SDK:

npm create cloudflare@latest -- workers-ai-interpreter --template=cloudflare/sandbox-sdk/examples/code-interpreter
cd workers-ai-interpreter

2. Проверьте реализацию

Шаблон включает полную реализацию с использованием актуальных лучших практик. Рассмотрим ключевые компоненты:

// 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:

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"

Ключевые моменты конфигурации:

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 deploy

6. Проверка развёртывания

Попробуйте более сложные запросы:

# 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]"}'

Как это работает

  1. Пользовательский ввод: Отправляйте запросы на естественном языке в /run конечная точка
  2. Решение ИИ: GPT-OSS получает промпт с execute_python инструмент доступен
  3. Умное выполнение: Модель определяет, требуется ли выполнение кода Python
  4. Изоляция песочницы: Код выполняется в изолированных контейнерах Cloudflare Sandbox
  5. Объяснение с помощью ИИ: Результаты интегрируются обратно в ответ ИИ для формирования итогового вывода

Что вы создали

Вы развернули сложный интерпретатор кода, который:

Следующие шаги