← Sandbox SDK / sandbox / 1-0-preview / api
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.
См. также
- Code interpreter
- Расширения
- API ошибок
- Стабильно: Interpreter API