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

Interpreter

Методы определены в sandbox.interpreter после того как вы подключите withInterpreter на вашем Sandbox подкласс. Названия методов совпадают со стабильным интерпретатором; runCode возвращает обычные сериализуемые данные. Подключение и первый запуск: Code interpreter.

createCodeContext()

createCodeContext(options?: CreateContextOptions): Promise<CodeContext>

CreateContextOptions

createCodeContext принимает следующие параметры:

Поле Тип Описание
language "python" | "javascript" | "typescript" Язык Interpreter. По умолчанию: python.
cwd string Рабочий каталог. По умолчанию: /workspace.

CodeContext

Созданный контекст содержит следующие поля:

Поле Тип Описание
id string ID контекста в текущем контейнере
language string Язык контекста
cwd string Рабочий каталог
createdAt Date Время создания
lastUsed Date Время последнего использования

runCode()

runCode(code: string, options?: RunCodeOptions): Promise<ExecutionResult>

RunCodeOptions

runCode принимает следующие параметры. Поля обратного вызова применяются к runCode только.

Поле Тип Описание
context CodeContext Контекст для использования. Если не указан, применяется контекст по умолчанию для language используется.
language "python" | "javascript" | "typescript" Используется при создании или выборе контекста по умолчанию. Значение по умолчанию: python.
onStdout (output: OutputMessage) => void | Promise<void> Вызывается для фрагментов stdout во время выполнения
onStderr (output: OutputMessage) => void | Promise<void> Вызывается для фрагментов stderr во время выполнения
onResult (result: ResultData) => void | Promise<void> Вызывается для расширенных результатов (обычные данные)
onError (error: ExecutionError) => void | Promise<void> Вызывается, когда запуск сообщает об ошибке выполнения

OutputMessage

interface OutputMessage {
	text: string;
	timestamp: number;
}

ExecutionResult

interface ExecutionResult {
	code: string;
	logs: {
		stdout: string[];
		stderr: string[];
	};
	error?: ExecutionError;
	executionCount?: number;
	results: ResultData[];
}

ResultData может включать обычные поля, например text, html, png, jpeg, svg, latex, markdown, json, а также chart когда их создаёт среда выполнения.

ExecutionError

interface ExecutionError {
	name: string;
	message: string;
	traceback: string[];
	lineNumber?: number;
}

runCodeStream()

runCodeStream(
	code: string,
	options?: RunCodeOptions,
): Promise<ReadableStream<Uint8Array>>

Возвращает поток байтов SSE с событиями выполнения. Тип TypeScript использует повторно RunCodeOptions для context и language, однако потоковый путь позволяет не вызовите onStdout, onStderr, onResult, или onError : используйте вместо этого тело SSE. Отмена потока может прервать выполняющийся запуск.

listCodeContexts()

listCodeContexts(): Promise<CodeContext[]>

deleteCodeContext()

deleteCodeContext(contextId: string): Promise<void>

Ошибки

Ошибки Interpreter могут проявляться как InterpreterNotReadyError, ContextNotFoundError, или CodeExecutionError. См. API ошибок и Ошибки и восстановление.

Для Python требуется -python вариант образа контейнера. Разворачивайте пакет Worker и образ контейнера из одной и той же линии preview.