> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yahont.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Выполнение кода

> Включите выполнение кода на Python для ваших ИИ-агентов в Yahont

Действие «Выполнение кода» позволяет агентам писать и запускать код на Python для более сложных задач,
таких как вычисления, анализ данных и построение визуализаций.

## Возможности

* **Вычисления**: точное выполнение больших или сложных математических операций
* **Анализ данных**: анализ файлов, предоставленных пользователем (например, CSV и таблиц)
* **Создание файлов**: создание и возврат файлов, таких как отчёты, изменённые наборы данных или файлы экспорта
* **Визуализации**: построение графиков и диаграмм,
  которые отображаются прямо в [интерфейсе чата](/overview/core_features/chat)

## Настройка

Настройка не требуется. Выполнение кода — встроенное действие, доступное во всех развёртываниях Yahont сразу.

Чтобы включить его для конкретного агента, убедитесь, что действие **Выполнение кода** включено в настройках агента.

## Подключение и отключение сервера выполнения кода

Сервер выполнения кода подключён по умолчанию.
Вы можете отключить или снова подключить его в любой момент в **панели администратора**.
На этой странице также отображаются состояние сервера и статус подключения.

![Выполнение кода](https://mintcdn.com/yahont-ai/GgKRVXXDNIirDkuK/assets/admins/actions/code_interpreter.png?fit=max\&auto=format\&n=GgKRVXXDNIirDkuK\&q=85\&s=647daf29d9061ca6c748f8c0e42cca46)

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

Код выполняется в защищённой изолированной среде Python со следующими свойствами:

* **Предустановленные библиотеки**, такие как numpy, pandas, scipy и matplotlib
* **Сетевой доступ отключён**, а доступ к файловой системе ограничен в целях безопасности
* **Ограничения ресурсов и тайм-ауты**, предотвращающие неконтролируемое выполнение

LLM сама решает, когда вызывать выполнение кода, исходя из запроса пользователя, — явный вызов не нужен.

## Выполнение кода в Docker Compose

В `docker-compose.yml` за выполнение кода отвечает сервис `code-interpreter`.
Сервер API обращается к нему по адресу `http://code-interpreter:8000`.
Этот адрес задаёт переменная `CODE_INTERPRETER_BASE_URL`. Версию образа задаёт переменная `CODE_INTERPRETER_IMAGE_TAG`.

> [!WARNING]
>
> Сервис запускается от пользователя `root`, и в него монтируется сокет Docker (`/var/run/docker.sock`).
> Это режим `docker-out-of-docker`. Доступ к сокету даёт контейнеру доступ к демону Docker на хосте.
> Разворачивайте сервис только на сервере, где вы доверяете выполняемому коду и его пользователям.

* **Первый запуск.** Сервис скачивает образ исполнителя и до окончания загрузки не отвечает на запросы.
  Проверка состояния ждёт до 120 секунд.
* **Проверка состояния.** Она требует доступного демона Docker и образа исполнителя на хосте.
  Если вы удалите образ (например, командой `docker system prune --all`), сервис не восстановится,
  пока вы не перезапустите контейнер.
* **Rootless Docker в Linux.** Задайте `DOCKER_SOCK_PATH=${XDG_RUNTIME_DIR}/docker.sock`.
* **Режим `docker-in-docker`.** В файле есть закомментированный вариант с `privileged: true`.
  Чтобы использовать его, раскомментируйте эту строку и закомментируйте монтирование сокета.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.