# Разработка с помощью ИИ в Studio IDE

Платформа dbt | Оплата по использованию

Используйте ИИ для разработки проектов dbt в Studio IDE.

[dbt Wizard](https://docs.getdbt.tech/docs/platform/wizard-platform.md) в [Studio IDE](https://docs.getdbt.tech/docs/platform/studio-ide/develop-in-studio.md) — это новый и рекомендуемый способ разработки проектов dbt с помощью ИИ с соблюдением правил управления данными. Он использует контекст вашего проекта, чтобы помочь вам быстрее вносить изменения в dbt с соблюдением этих правил. Представьте его как интеллектуального ИИ-агента, у которого есть карта вашего проекта: вместо того чтобы просматривать каждый файл для понимания контекста, вы можете задавать ему вопросы и с его помощью быстрее разрабатывать и проверять изменения.

dbt также поддерживает dbt Copilot — отдельный инструмент встроенной ИИ-помощи для генерации SQL, документации, тестов и семантических моделей одним нажатием в Studio IDE, Canvas и Insights.

## Предварительные требования

* [Аккаунт dbt](https://www.getdbt.com/signup) на любом тарифном плане и [лицензия Developer](https://docs.getdbt.tech/docs/platform/manage-access/seats-and-users.md).
* [Среда разработки](https://docs.getdbt.tech/docs/platform/studio-ide/develop-in-studio.md#get-started-with-the-studio-ide) и учётные данные, настроенные в Studio IDE.

Функции ИИ включены по умолчанию. Администраторы могут [выключить или снова включить их в любое время](https://docs.getdbt.tech/docs/platform/manage-dbt-ai.md).

## dbt Wizard в Studio IDE [Предварительная версия](https://docs.getdbt.tech/docs/dbt-versions/product-lifecycles "Подробнее о статусе или тарифе")

Используйте [dbt Wizard](https://docs.getdbt.tech/docs/dbt-ai/wizard-ide.md) для автономной генерации моделей, рефакторинга и выполнения многоэтапных рабочих процессов в Studio IDE. Он опирается на [dbt Information Schema](https://docs.getdbt.tech/docs/build/dbt-information-schema.md) — структурированное представление зависимостей, тестов, состояния моделей и семантических определений вашего проекта — поэтому понимает не только ваш код, но и ваши данные.

dbt Wizard доступен на боковой панели или в разделе Console в Studio IDE.

 Доступность и особенности использования

* **Где работает:** Поддерживается только в [Studio IDE](https://docs.getdbt.tech/docs/platform/studio-ide/develop-in-studio.md), во всех [типах развертывания](https://docs.getdbt.tech/docs/platform/about-platform/tenancy.md?version=2.0). Не поддерживается в VS Code и dbt platform CLI.
* **Движки:** Работает с dbt v2 и dbt v1.
* **Диалоги:** В списке диалогов откройте меню **More actions** (три точки) нужного диалога, затем нажмите **Delete**, чтобы удалить его. При удалении открытого диалога панель очищается.
* **Сеансы:** Обновление текущей вкладки браузера сохраняет активный сеанс. В новой вкладке или при повторном открытии закрытой вкладки сеанс начинается с пустой историей.
* **История чата:** Хранится только в течение 90 дней. В развертываниях с одним арендатором история чата пока не поддерживается, поэтому сохраняйте все важное перед закрытием.
* **Режим планирования:** Пока не поддерживается. Агент не показывает отдельный план перед применением изменений, однако вы можете использовать режим **Ask for approval**, чтобы подтверждать изменения в каждом файле.
* **Новый чат:** Нажмите **Start new dbt Wizard chat** (в правом верхнем углу панели dbt Wizard), чтобы начать новый сеанс.

### Использование dbt Wizard

Используйте панель dbt Wizard для генерации ресурсов с помощью быстрых действий или поручите агенту полный цикл создания и рефакторинга моделей с помощью запросов на естественном языке.

Чтобы использовать dbt Wizard, выполните следующие действия:

1. Откройте свой проект dbt в [Studio IDE](https://docs.getdbt.tech/docs/platform/studio-ide/develop-in-studio.md), затем выберите **dbt Wizard** в палитре команд.

2. Начните ввод запроса одним из нескольких способов на [панели dbt Wizard](https://docs.getdbt.tech/docs/dbt-ai/wizard-ide.md?version=2#panel-controls):

   * **Быстрые действия**: Используйте [генерацию ресурсов с помощью быстрых действий](https://docs.getdbt.tech/docs/dbt-ai/wizard-ide.md#panel-controls) в верхней части панели для создания соответствующих запросов.
   * **Обычный текст**: Введите в текстовое поле описание того, что вы хотите создать или изменить.
   * **Контекст модели**: Введите `@`, чтобы выбрать модель в качестве контекста. Это ограничит изменения агента выбранным ресурсом.

3. Нажмите [кнопку **Agent mode**](https://docs.getdbt.tech/docs/dbt-ai/wizard-ide.md#agent-modes), чтобы задать режим работы dbt Wizard. Доступны режимы **Explore only**, **Ask for approval** (по умолчанию) и **Edit files automatically**.

4. Выберите модель dbt управляемое подключение, с которой хотите работать, в [списке выбора модели](https://docs.getdbt.tech/docs/dbt-ai/pricing-billing/overview.md#choose-a-model) рядом с кнопкой **Agent mode**.

5. [Просмотрите предложения агента](https://docs.getdbt.tech/docs/dbt-ai/wizard-ide.md#reviewing-agent-suggestions) и примите или отклоните изменения. Вы также можете нажать кнопку **Start new dbt Wizard chat**, чтобы начать новый сеанс чата.

6. [Разрешайте выполнение команд dbt](https://docs.getdbt.tech/docs/dbt-ai/wizard-ide.md#granting-command-permissions), когда dbt Wizard запрашивает запуск таких команд, как `dbt compile` или `dbt build`.

7. Повторите эти действия, чтобы создать или изменить другие модели.

8. Зафиксируйте изменения в своем проекте dbt и откройте pull request. Но будьте осторожны: этот волшебник умеет творить заклинания.

На следующих изображениях показано, как dbt Wizard отображает ход работы и результат:

[![dbt Wizard выполняет рефакторинг модели и отображает граф зависимостей в интерфейсе чата.](/img/docs/dbt-platform/wizard-ide-refactor-lineage.png?v=2 "dbt Wizard выполняет рефакторинг модели и отображает граф зависимостей в интерфейсе чата.")](#)dbt Wizard выполняет рефакторинг модели и отображает граф зависимостей в интерфейсе чата.

[![Итоговый результат рефакторинга Wizard в виде сравнения изменений](/img/docs/dbt-platform/wizard-ide-refactor-diff.png?v=2 "Итоговый результат рефакторинга Wizard в виде сравнения изменений")](#)Итоговый результат рефакторинга Wizard в виде сравнения изменений

Чтобы узнать больше о dbt Wizard и его работе, разверните следующие разделы с дополнительной информацией.

 Элементы управления панелью

Панель dbt Wizard содержит:

1. **Быстрые действия** (в центре): Кнопки в верхней части панели для типовых задач, таких как генерация документации, тестов, семантических моделей и метрик. При выборе действия текстовое поле автоматически заполняется запросом.
2. **Кнопка Agent mode** (внизу слева): Переключение между режимами **Explore only**, **Ask for approval** и **Edit files automatically**. Нажмите кнопку, чтобы сменить режим.
3. **Список выбора модели** (внизу слева): Выберите модель dbt управляемое подключение для текущего сеанса. Сведения о доступных моделях см. в разделе [Выбор модели](https://docs.getdbt.tech/docs/dbt-ai/pricing-billing/overview.md#choose-a-model).
4. **Контекст модели dbt** (внизу слева): Показывает текущий открытый файл. Используйте `@` в текстовом поле, чтобы сослаться на другую модель dbt. Нажмите **x**, чтобы убрать контекст модели dbt.
5. **Поле ввода текста** (внизу слева): Введите запрос в текстовое поле, чтобы описать, что вы хотите создать или изменить. Введите `@`, чтобы выбрать модель dbt в качестве контекста. Это ограничит изменения агента выбранным ресурсом.
6. **Start new dbt Wizard chat** (вверху справа): Начинает новый сеанс чата.
7. **Stop** или **Enter** (внизу справа): Нажмите **Enter**, чтобы отправить запрос. Нажмите **Stop**, чтобы остановить текущий сеанс и работу агента. Это действие нельзя отменить.

[![Панель Wizard в Studio IDE с кнопками быстрых действий, кнопкой режима агента, списком выбора модели и полем ввода текста.](/img/docs/dbt-platform/wizard-panel.png?v=2 "Панель Wizard в Studio IDE с кнопками быстрых действий, кнопкой режима агента, списком выбора модели и полем ввода текста.")](#)Панель Wizard в Studio IDE с кнопками быстрых действий, кнопкой режима агента, списком выбора модели и полем ввода текста.

В dbt Wizard также есть упрощенная навигационная панель над полем ввода текста. Она показывает текущий проект и ветку и помогает выполнять операции Git, например фиксировать изменения в файлах или создавать ветку.

[]()

 Режимы агента

dbt Wizard работает в трёх режимах:

| Режим                                        | Поведение                                                                                                                                                                                                                                                                                                                                                                                            |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Только исследование**                      | Агент выполняет запросы к данным и объясняет их, но не может редактировать файлы или запускать сборки. Лучше всего подходит для анализа данных или проверки результатов модели, когда вы не хотите, чтобы агент предлагал изменения. Каждый ответ сопровождается SQL-запросом или определением метрики, на котором он основан. Доступен на главной вкладке пользователям с правами только на чтение. |
| **Запрашивать подтверждение** (по умолчанию) | Агент подготавливает изменения в файлах. Вы подтверждаете каждое изменение файла перед его сохранением. Лучше всего подходит, если вам нужен строгий контроль над тем, что сохраняется в вашей ветке.                                                                                                                                                                                                |
| **Редактировать файлы автоматически**        | Агент подготавливает и автоматически сохраняет изменения в файлах без подтверждения для каждого файла. Лучше всего подходит для ускоренной итеративной работы, когда вы уверены в своём запросе.                                                                                                                                                                                                     |

Переключаться между режимами можно в любой момент с помощью кнопки **Режим агента** (внизу слева). В режимах редактирования аналитические инструменты остаются доступными, поэтому при выходе из режима **Только исследование** вы ничего не теряете.

[![dbt Wizard в режимах Explore only, Ask for approval и Edit files automatically.](/img/docs/dbt-platform/wizard-modes.png?v=2 "dbt Wizard в режимах Explore only, Ask for approval и Edit files automatically.")](#)dbt Wizard в режимах Explore only, Ask for approval и Edit files automatically.

 Просмотр предложений агента

Когда dbt Wizard предлагает изменения кода, вы можете просмотреть их до сохранения в проекте:

* **Просмотр различий**: Агент показывает сравнение предлагаемых изменений. Нажмите **Show all X lines**, чтобы развернуть и просмотреть предложение целиком.
* **Индикаторы строк**: Добавленные и удаленные строки выделены и снабжены номерами, чтобы вы могли точно увидеть, что изменилось.
* **Копирование или открытие в редакторе**: Используйте элементы в правом верхнем углу области сравнения, чтобы скопировать предложение или открыть его непосредственно в редакторе.

 Предоставление разрешений на выполнение команд

Для проверки или запуска моделей во время сеанса агент может запросить выполнение команд dbt, таких как `dbt compile` или `dbt build`. Перед выполнением каждого запроса вам будет предложено подтвердить его. Например, агент может запросить запуск:

```bash
dbt compile --select model_name
```

Вы можете выбрать один из следующих вариантов:

| Вариант                                               | Поведение                                                                             |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------- |
| **Yes, run once**                                     | Разрешает однократное выполнение этой конкретной команды.                             |
| **Yes, and allow `dbt_command_name` for the session** | Разрешает выполнять команды dbt до конца сеанса без повторных запросов подтверждения. |
| **No**                                                | Отклоняет запрос. Агент не выполнит команду.                                          |

После выполнения команды dbt Wizard добавляет значок и всплывающую подсказку к результатам на [вкладке **Commands**](https://docs.getdbt.tech/docs/platform/studio-ide/ide-user-interface.md#console-section) в Studio IDE. Это помогает отличать команды, запущенные агентом, от команд, запущенных вручную, в результатах выполнения и журналах.

### Добавление собственных навыков

Вы можете расширить возможности dbt Wizard с помощью собственных навыков, закрепив в них принятые в команде соглашения по SQL, правила именования и рабочие процессы моделирования, чтобы не повторять их в каждом запросе. Полный справочник, включая инструкции по созданию, структурированию и вызову навыков, см. в разделе [Навыки](https://docs.getdbt.tech/docs/dbt-ai/wizard-platform-skills.md).

### Диагностика сбоев заданий

dbt Wizard может исследовать и устранять сбои заданий и запусков dbt непосредственно из Studio IDE. Эта возможность основана на навыке `troubleshooting-dbt-job-errors` из набора [dbt Agent Skills](https://github.com/dbt-labs/dbt-agent-skills), который уже настроен в агенте — дополнительная настройка не требуется.

Вы можете задавать агенту вопросы и давать команды, например:

* «Какие задания завершились с ошибкой за последнее время?»
* «Какова первопричина сбоя задания?»
* «Как исправить недавний сбой задания?»
* «Исправь сбой задания».

Агент сообщает, когда локальное состояние проекта может отличаться от состояния, в котором выполнялось задание, — например, если вы работаете в другой ветке или у вас есть незафиксированные изменения. Так вы получите полный контекст, прежде чем применять предложенные исправления.

### Обработка тайм-аутов

Если команда dbt, запущенная dbt Wizard, выполняется более 5 минут, агент автоматически пытается остановить ее на сервере, прежде чем вернуть вам управление.

Вместо зависания или общей ошибки агент выводит понятное сообщение о том, что время ожидания команды истекло и ее выполнение было прервано. В сообщении также указано, удалось ли выполнить запрос на отмену. Если отмена не удалась, команда может продолжать выполняться на сервере.

После этого вы можете повторить команду, сузить запрос или выполнить другое действие.

### Процесс миграции на dbt v2

Если у вас есть доступ к [dbt Wizard](https://docs.getdbt.tech/docs/dbt-ai/wizard-ide.md) с включёнными [функциями ИИ](https://docs.getdbt.tech/docs/platform/manage-dbt-ai.md), вы можете воспользоваться навыком [миграции на dbt v2](https://docs.getdbt.tech/docs/dbt-ai/wizard-ide.md#fusion-migration-workflow). Этот навык помогает исправлять ошибки совместимости прямо в Studio IDE с помощью dbt Wizard — без ручного анализа логов. Он классифицирует каждую ошибку, автоматически применяет проверенные исправления и показывает, что препятствует дальнейшей миграции.

к сведению

Процесс миграции на dbt v2 доступен через dbt Wizard в Studio IDE. Если вы используете VS Code или dbt platform CLI, воспользуйтесь вместо этого [инструментом autofix](https://docs.getdbt.com/guides/dbt-package-compat?step=4).

1. В списке заданий нажмите кнопку **Review job** для задания с успешным запуском.
   * Если кнопка **Review job** не отображается, включите переключатель **Show dbt v2 eligibility** в списке заданий.

2. Во всплывающем окне **dbt v2 eligibility unknown for this job** нажмите **Debug in Studio with dbt Wizard**.

3. dbt перенаправит вас в Studio IDE и переключит вашу персональную среду разработки на dbt v2.

4. Откроется dbt Wizard и автоматически запустит навык миграции на dbt v2 со следующим запросом:

   ```text
   I need help fixing dbt v2 compatibility issues in this project. Please investigate and resolve any deprecation warnings or incompatibilities. Please use the migrating-dbt-core-to-fusion skill to guide this.
   ```

5. Рассмотрите и одобрите запросы разрешений от dbt Wizard, чтобы он мог выполнять необходимые команды.

6. dbt Wizard последовательно выполняет `dbt compile`, анализирует результаты и применяет исправления, пока компиляция не завершится успешно или не возникнет ошибка, которую он не сможет устранить. Если дальнейшая работа невозможна, он корректно завершает процесс, объясняет, что не удалось исправить, создаёт markdown-файл со сводкой всех внесённых изменений и предоставляет ссылку на него.

7. Когда проект будет компилироваться без предупреждений и ошибок, создайте коммит и опубликуйте изменения.

8. После слияния изменений дождитесь повторного запуска задания или запустите его вручную на dbt v2.

[![Процесс миграции на v2 с помощью Developer Agent: анализ и исправление ошибок совместимости с v2 в Studio IDE.](/img/docs/dbt-platform/v2-migration-workflow.gif?v=2 "Процесс миграции на v2 с помощью Developer Agent: анализ и исправление ошибок совместимости с v2 в Studio IDE.")](#)Процесс миграции на v2 с помощью Developer Agent: анализ и исправление ошибок совместимости с v2 в Studio IDE.

Подробнее о подготовке проекта к dbt v2 и действиях при возникновении ошибок совместимости см. в [контрольном списке готовности к dbt v2](https://docs.getdbt.tech/docs/dbt/dbt-readiness.md) и [руководствах по переходу на dbt v2](https://docs.getdbt.tech/guides/prepare-v2-upgrade.md).

### Составление эффективных запросов

Хорошие запросы включают *область применения* (какие модели или часть проекта затрагиваются), *цель* (нужное преобразование или бизнес-логику) и любые *ограничения* (соглашения об именовании, материализацию, тесты). Вот несколько примеров:

| Задача                                    | Пример запроса                                                                                                                                               |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Создать новую модель                      | «Создай модель с именем `fct_daily_revenue`, которая объединяет `stg_orders` и `stg_payments`, агрегирует выручку по дням и материализуется в виде таблицы». |
| Выполнить рефакторинг существующей модели | «Выполни рефакторинг `fct_orders`, чтобы использовать инкрементальную материализацию. Сохрани существующие тесты и соблюдай наши соглашения об именовании».  |
| Сгенерировать тесты и документацию        | «Добавь тесты `not_null` и `unique` для первичного ключа `dim_customers` и сгенерируй документацию для всех столбцов».                                       |

Подробные рекомендации, шаблоны и дополнительные примеры для SQL, документации, тестов и семантических моделей см. в [сборнике рецептов запросов](https://docs.getdbt.tech/guides/prompt-cookbook.md).

## dbt Copilot в Studio IDE

*Предыдущая версия dbt Copilot в Studio IDE доступна только для ограниченного числа аккаунтов. dbt Wizard доступен для всех аккаунтов и является рекомендуемым способом разработки с помощью ИИ в Studio IDE — он поддерживает все возможности быстрых действий dbt Copilot, а также многоэтапные изменения со встроенной проверкой.*

[dbt Copilot](https://docs.getdbt.tech/docs/dbt-ai/copilot-overview.md) позволяет одним нажатием генерировать SQL, документацию, тесты и семантические модели в Studio IDE, Canvas и Insights.

1. Перейдите в Studio IDE и выберите SQL-файл модели в **File Explorer**.
2. В разделе **Console** нажмите кнопку **dbt Copilot**, чтобы просмотреть доступные функции ИИ.
3. Выберите доступные действия для [генерации ресурсов](#generate-resources), например используйте кнопки быстрых действий для генерации документации, тестов, семантических моделей или метрик.

В следующих разделах описано, как использовать dbt Copilot в Studio IDE.

### Генерация ресурсов

Чтобы сгенерировать ресурсы с помощью dbt Copilot, выполните следующие действия:

Создавайте документацию, тесты, метрики и семантические модели — [ресурсы](https://docs.getdbt.tech/docs/build/projects.md) — одним нажатием кнопки в [Studio IDE](https://docs.getdbt.tech/docs/platform/studio-ide/develop-in-studio.md) с помощью dbt Copilot, экономя время. Чтобы получить доступ к этой функции ИИ и воспользоваться ею:

1. Перейдите в Studio IDE и выберите SQL-файл модели в разделе **File Explorer**.

2. В разделе **Console** (под **File Editor**) нажмите кнопку dbt Copilot и выберите, что вы хотите создать: документацию, тесты, метрики, SQL или семантические модели. Чтобы создать несколько конфигураций YAML для одной модели, выбирайте каждый вариант отдельно. dbt Copilot сохраняет их в один и тот же YAML-файл.

   примечание

   dbt Copilot пока не поддерживает генерацию семантических моделей с использованием последней версии спецификации YAML.

   * Чтобы создавать метрики, сначала необходимо определить семантические модели.
   * После их определения нажмите **dbt Copilot** и выберите **Generate metrics**.
   * Введите запрос с описанием метрик, которые вы хотите создать, и нажмите Enter.
   * Примите (**Accept**) или отклоните (**Reject**) сгенерированный код.

3. Проверьте код, сгенерированный ИИ. При необходимости измените или исправьте его.

4. Нажмите **Save As**. Изменения в файле должны появиться в разделе **Version control**.

### Редактирование SQL непосредственно в редакторе

dbt Copilot поддерживает окно быстрого ввода запроса для точечных изменений SQL непосредственно в редакторе. Нажмите **Cmd+B** (Mac) или **Ctrl+B** (Windows), чтобы открыть окно ввода запроса в файле модели, опишите, что вы хотите сгенерировать или изменить, и dbt Copilot покажет различия между текущей и предлагаемой версиями — нажмите **Accept**, чтобы применить изменения, или **Reject**, чтобы отклонить их.

Это удобно для локальных изменений в одном SQL-файле. Для более масштабных или многоэтапных изменений — например, создания новой модели, рефакторинга нескольких файлов или генерации YAML — ознакомьтесь с тем, как вместо этого может помочь [dbt Wizard](https://docs.getdbt.tech/docs/dbt-ai/wizard-ide.md).
