# Интеграция Aider с GigaChat

[Aider](https://aider.chat/) — AI-ассистент для разработки приложений, который можно интегрировать с GigaChat. В этой инструкции подробно описано, как настроить подключение и использовать основные функции.

## Подключение Aider к GigaChat

Для подключения Aider к GigaChat при стандартном запуске сервиса `gpt2giga` используйте следующую команду:

```shell
aider --openai-api-base http://localhost:8090 --model gpt-4o --openai-api-key 123
```

Этот способ рабочий и простой, однако предпочтительнее использовать вариант, описанный ниже, поскольку он позволяет более точно отслеживать стоимость сессий и эффективнее использовать доступную длину контекста благодаря информации в файле `.aider.model.metadata.json`

## Подсчет стоимости использования

В файле [.aider.model.metadata.json](.aider.model.metadata.json) описана информация о моделях GigaChat.

Разместите этот файл в директории вашего проекта.

После этого запустите `gpt2giga` со следующими флагами:

```shell
gpt2giga --pass-token --pass-model
```

Теперь вы можете запустить Aider командой:

```shell
aider --openai-api-base http://localhost:8090 --model openai/GigaChat-2-Max --openai-api-key <ключ>
```

Ключ для передачи в `gpt2giga` можно настроить одним из способов:

- `giga-cred-<credentials>:<scope>`
- `giga-user-<user>:<password>`
- `giga-auth-<access_token>`

## Настройка подключения через `.env`

Чтобы не передавать параметры подключения при каждом запуске aider, вы можете создать в папке проекта
файла `.env`.

Создайте файл `.env` в корневой папке проекта и добавьте следующие строки:

```env
AIDER_MODEL=openai/GigaChat-2-Max
OPENAI_API_KEY=<ключ для gpt2giga>
OPENAI_API_BASE=http://localhost:8090
```

Доступные значения для `AIDER_MODEL`:
- `openai/GigaChat-2-Max`
- `openai/GigaChat-2-Pro`
- `openai/GigaChat-2`

## Форматы редактирования файлов

Aider поддерживает два режима редактирования файлов через GigaChat:

- **whole** (по умолчанию)
- **diff**

### Формат `whole`

В этом режиме Aider заменяет содержимое всего файла полностью на версию, возвращённую от GigaChat. Этот формат стабилен и рекомендован для большинства сценариев использования.

### Формат `diff`

Формат `diff` помогает экономить ресурсы, поскольку GigaChat возвращает только изменения, необходимые для файла. Однако этот формат может иногда работать нестабильно.

Чтобы использовать режим `diff`, запустите Aider с параметром:

```shell
aider --edit-format diff
```

**Примечание:** Рекомендуем использовать режим `whole` для повышения стабильности работы.

