Разделы документации
Выполнение кодаготовится
Планируемый контракт: модель пишет и запускает код в изолированной среде
Как это будет работать
Выполнение кода — это инструмент, который вы включаете в запросе. Модель сама решает, что задачу проще посчитать, а не угадывать: пишет короткую программу, отправляет её в изолированную среду на нашей стороне, получает результат и продолжает ответ уже с числами на руках. Вам не нужно исполнять код у себя — вы получаете готовый вывод в теле ответа.
Включение планируется по конвенции OpenAI — через массив tools. Один вызов инструмента = один запуск среды.
Планируемый ответ содержит обычный choices[0].message.content, а рядом — запись о запуске: сам код, поток вывода и код завершения.
Что доступно внутри среды
Среда планируется одноразовой: она поднимается на время запроса и удаляется вместе со всем, что в ней создано. Между двумя запросами ничего не сохраняется — переменные, установленные пакеты и временные файлы не переживают ответ.
| Свойство | Планируемое значение |
|---|---|
| Язык | Python 3.12 |
| Библиотеки | стандартная библиотека плюс numpy, pandas, scipy, sympy, matplotlib, Pillow |
| Установка своих пакетов | нет |
| Сеть | полностью закрыта, любой запрос наружу упадёт |
| Файловая система | только каталог /workspace, доступный на запись |
| Память | 1 ГиБ |
| Время на один запуск | 30 секунд |
| Запусков в одном ответе | до 5 |
| Размер вывода | до 64 КиБ, дальше обрезается |
Отсутствие сети — это не временное ограничение, а способ изоляции. Если модели нужны свежие данные, передавайте их в messages или используйте веб-поиск как отдельный инструмент.
Работа с файлами
Планируется, что в /workspace можно положить файлы заранее и забрать созданные после запуска. Входные файлы прикрепляются к запросу по идентификаторам, полученным при загрузке; внутри среды они лежат по своим именам.
Файлы, созданные кодом, планируется возвращать списком в output_files — с именем, размером и идентификатором для скачивания. Живут они ограниченное время (планово 24 часа), затем удаляются. Ограничения: до 20 входных файлов, до 100 МиБ суммарно на запуск, один файл не больше 50 МиБ. Хранение и скачивание тарифицируются отдельно: файлы 6,75 ₽ за ГиБ в сутки, скачивание 54 ₽ за ГиБ.
Цена
Выполнение кода планируется тарифицировать поштучно: 1 350 ₽ за 1 000 вызовов, то есть 1,35 ₽ за один запуск среды. Вызовом считается каждый запуск, включая тот, что завершился ошибкой или упёрся в лимит времени — среда всё равно была поднята.
Поверх этого отдельно оплачиваются токены. Код, который написала модель, и вывод программы, который она прочитала, попадают в обычный счёт за токены: libra-fast — 337,50 ₽ за миллион на входе и 675 ₽ на выходе, libra-pro — 450 ₽ и 900 ₽. Длинный вывод программы возвращается модели во вход следующего шага, поэтому печатать в stdout мегабайты дорого: просите модель выводить итог, а не сырые данные.
| Что списывается | Ставка |
|---|---|
| Запуск среды | 1,35 ₽ за вызов (1 350 ₽ / 1000) |
| Токены кода и вывода, libra-fast | 337,50 ₽ вход / 675 ₽ выход за 1 млн |
| Токены кода и вывода, libra-pro | 450 ₽ вход / 900 ₽ выход за 1 млн |
| Хранение созданных файлов | 6,75 ₽ за ГиБ в сутки |
Ошибки
Ошибка внутри кода — это не ошибка API. Если программа упала, ответ придёт со статусом 200: в stderr будет трассировка, в exit_code — ненулевое значение, а модель, скорее всего, исправит код и запустит его заново (в пределах лимита запусков). Ошибки уровня HTTP планируются те же, что и в остальном API: 401 no_api_key и invalid_api_key, 402 insufficient_balance, 429 rate_limited, 502 upstream_error. К ним добавятся 400 code_execution_unsupported, если инструмент запрошен для модели без его поддержки, и 408 code_execution_timeout, когда запуск не уложился в 30 секунд.