---
metadata:
  - name: generator
    content: Diplodoc Platform v5.56.0
alternate:
  - https://ydb.tech/docs/en/reference/ydb-cli/interactive-cli-ai.md?version=main
  - https://ydb.tech/docs/ru/reference/ydb-cli/interactive-cli-ai.md?version=main
  - href: ru/reference/ydb-cli/interactive-cli-ai.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/reference/ydb-cli/interactive-cli-ai.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# Режим AI-ассистента

[Интерактивный режим выполнения запросов](https://ydb.tech/docs/ru/reference/ydb-cli/interactive-cli.md?version=main) YDB CLI включает режим AI-ассистента — диалогового агента на основе большой языковой модели (LLM). Ассистент понимает запросы на естественном языке и помогает работать с базой данных: исследовать её структуру, писать и выполнять запросы YQL, объяснять планы запросов, искать информацию в документации и вызывать команды YDB CLI.

{% note warning %}

Ассистент обращается к внешнему API большой языковой модели, которое вы указываете самостоятельно. Содержимое диалога, включая структуру схемы и результаты запросов, которые ассистент решит передать модели, отправляется этому API. Не используйте режим с конфиденциальными данными, если это запрещено вашими политиками. YDB CLI не предоставляет языковую модель и ключ доступа к ней — их необходимо получить у выбранного вами провайдера.

{% endnote %}

## Переключение в AI-режим {#enter}

Интерактивный режим работает в одном из двух подрежимов:

* **YQL** — ввод и выполнение запросов YQL (используется по умолчанию при первом запуске);
* **AI** — диалог с AI-ассистентом.

Запустите [интерактивный режим](https://ydb.tech/docs/ru/reference/ydb-cli/interactive-cli.md?version=main), выполнив команду `ydb` без подкоманды с необходимыми [параметрами подключения](https://ydb.tech/docs/ru/reference/ydb-cli/connect.md?version=main):

```bash
ydb [global options...]
```

Активный подрежим отображается в приглашении командной строки (`YQL>` или `AI>`). Переключаться между подрежимами можно горячей клавишей `Ctrl + T` или командой `/switch`. YDB CLI запоминает последний использованный подрежим и открывает его при следующем запуске.

## Настройка AI-профиля {#profile}

Для работы ассистента нужен AI-профиль — набор параметров подключения к API языковой модели. При первом переходе в AI-режим, если профилей ещё нет, YDB CLI предложит создать профиль и проведёт через настройку шаг за шагом:

Параметр | Описание
--- | ---
**API endpoint** | URL API языковой модели. Должен начинаться с `http://` или `https://` (например, `https://api.openai.com/v1/`). YDB CLI проверяет соединение с указанным адресом.
**API type** | Тип API: <ul><li>**OpenAI-compatible** — для моделей с OpenAI-совместимым API;</li><li>**Anthropic** — для API Anthropic.</li></ul>
**API token** | Токен доступа к API. Сохраняется в [файле конфигурации](#config-file). Поле можно оставить пустым и передавать токен через переменную окружения [`YDB_CLI_AI_TOKEN`](#env).
**Model name** | Имя модели. Если API позволяет, YDB CLI запросит список доступных моделей; имя также можно ввести вручную. Пустое значение означает, что имя модели не передаётся в запросах.
**Profile display name** | Отображаемое имя профиля, под которым он сохраняется и показывается при выборе.

После настройки профиль сохраняется в [файле конфигурации](#config-file) и становится активным. Сменить активный профиль или создать новый можно командой [`/model`](#commands).

## Работа с ассистентом {#usage}

В AI-режиме введите сообщение на естественном языке и нажмите `Enter` для отправки (`Ctrl + Enter` — перенос строки). Ассистент анализирует запрос и при необходимости вызывает инструменты для работы с базой данных:

Возможность | Изменяет данные | Подтверждение
--- | --- | ---
Просмотр списка объектов схемы по указанному пути | Нет | Не требуется
Описание объекта схемы (таблицы, топика и т. д.) | Нет | Не требуется
Получение плана запроса YQL (`EXPLAIN`) | Нет | Не требуется
Поиск информации в документации YDB | Нет | Не требуется
Получение справки по командам YDB CLI | Нет | Не требуется
Выполнение запроса YQL | Да | Требуется
Выполнение команды оболочки | Да | Требуется

Ассистент сохраняет контекст диалога: последующие сообщения в той же сессии учитывают предыдущие. Очистить контекст можно командой [`/config`](#commands).

### Подтверждение действий {#approve}

Перед выполнением действия, которое может изменить данные, — выполнения запроса YQL или команды оболочки — ассистент запрашивает подтверждение и предлагает варианты:

* **Approve execution** — выполнить запрос или команду в текущем виде;
* **Edit query** / **Edit command** — отредактировать текст запроса или команды перед выполнением;
* **Abort operation** — отменить выполнение (и продолжить работу в том же контексте).

## Команды {#commands}

В AI-режиме доступны следующие команды:

Команда | Описание
--- | ---
`/help` | Показать справку по AI-режиму и список горячих клавиш.
`/model` | Выбрать другой AI-профиль или создать новый.
`/config` | Изменить настройки сессии: очистить контекст диалога, сменить или отредактировать активный профиль, удалить профиль.
`/switch` | Переключиться в режим YQL (аналог `Ctrl + T`).

## Файл конфигурации {#config-file}

AI-профили и настройки AI-режима хранятся в YAML-файле. По умолчанию это `~/.config/ydb/ai_profiles.yaml`; путь можно переопределить переменной окружения [`YDB_CLI_AI_PROFILE_FILE`](#env). Файл содержит список профилей, идентификатор активного профиля и текущий подрежим интерактивного режима. Обычно его не требуется редактировать вручную — управляйте профилями через команды [`/model`](#commands) и [`/config`](#commands).

{% note info %}

Токен, введённый при настройке профиля напрямую, сохраняется в файле конфигурации. YDB CLI ограничивает права доступа к этому файлу так, что читать и изменять его может только пользователь-владелец, запустивший CLI (в Unix-системах — режим доступа `0600`). Если вы предпочитаете не хранить токен на диске, оставьте поле токена пустым и передавайте его через переменную окружения [`YDB_CLI_AI_TOKEN`](#env).

{% endnote %}

## Переменные окружения {#env}

Переменная | Описание
--- | ---
`YDB_CLI_AI_TOKEN` | Токен доступа к API языковой модели. Используется, если токен не задан в активном профиле.
`YDB_CLI_AI_PROFILE_FILE` | Путь к [файлу конфигурации](#config-file) AI-профилей. По умолчанию `~/.config/ydb/ai_profiles.yaml`. Позволяет использовать отдельный набор профилей или нестандартное расположение файла, например в автоматизированных сценариях.
`YDB_CLI_AI_DISABLE_HISTORY` | Если переменная задана, история сообщений AI-режима не сохраняется на диск между запусками. Может использоваться, если переписку с ассистентом не следует хранить на диске.
