AI-сервис Gemini и такие инструменты, как Google AI Studio и Gemini API, доступны только в определённых регионах, установленных Google. Перед началом работы убедитесь, что ваш регион поддерживается.
Интеграция с Gemini решает две задачи:
1) Автоматическое выставление значений в полях данных на основании проверки сообщения пользователя сервисом Gemini. Доступно заполнение кастомных полей обращения и пользователя типов «Список» и «Чекбокс», а также стандартного поля «Группа»;
2) Отправка собственных запросов в адрес Gemini для анализа: к примеру, можно переслать сообщение пользователя, чтобы затем использовать полученный от Gemini ответ в работе.
Мы не взимаем дополнительной платы за подключение или использование интеграции с Gemini, но вам потребуется доступ к Gemini API. В рамках бесплатной подписки free tier действуют достаточно жесткие лимиты на использование: конкретные цифры зависят от выбранной модели, но, скорее всего, этот вариант подойдет только для тестирования или для решения точечных задач в малом бизнесе. Коммерческое использование даже в небольших компаниях почти наверняка потребует подписки по системе pay-as-you-go — с оплатой по мере использования в адрес Google.
Тарификация в Gemini привязана к объему текста запроса и ответа. Расчет ведется в токенах, каждый токен соответствует примерно 4 символам текста на латинице или 1–2 символам на кириллице, включая пробелы и знаки препинания. Например, слово «Gemini» расходует один токен. Стоимость определяется суммой токенов, используемых для обработки запроса и формирования ответа.
В рамках работы с Gemini API действуют следующие ограничения:
Квоты — функциональные ограничения, которые можно изменить в настройках проекта в учетной записи Google Cloud;
Системные лимиты — технические ограничения, обусловленные особенностями архитектуры Google Cloud. Изменение лимитов невозможно.
Подробнее про принципы тарификации и выставление счетов за использование Gemini API можно узнать здесь.
Содержание
Подключение интеграции
Google Cloud Platform (GCP) — это облачная платформа от Google, предлагающая широкий спектр сервисов для хранения данных, вычислений, машинного обучения и других задач. В GCP ресурсы (виртуальные машины, базы данных, инструменты искусственного интеллекта и др.) организованы в рамках GCP-проектов — изолированных логических контейнеров. Эти проекты позволяют группировать ресурсы, настраивать права доступа, управлять доступом к различным API и облачным сервисам Google и т. д.
Работа с Gemini API требует активного GCP-проекта, чтобы обеспечивать управление ресурсами и доступ к необходимым инструментам.
Шаг 1: Авторизуйтесь в учетной записи Google Cloud. Убедитесь, что в вашей учетной записи Google Cloud есть активный GCP-проект или создайте новый GCP-проект. Как это сделать, показываем в видеоинструкции:

Шаг 2: Авторизуйтесь в консоли Google AI Studio. Создайте API-ключ (Get API key → Create API key → Search Google Cloud projects → Create API key in existing project) и скопируйте его.

Используйте ссылку Set up Billing в описании API-ключа, чтобы привязать Google Billing Account к GCP-проекту, в рамках которого был создан ключ, и тем самым активировать для Gemini API опцию подписки pay-as-you-go:

Шаг 3: В аккаунте администратора в Омнидеске перейдите по пути: раздел «Настройки» → подраздел «Интеграции» → интеграция «Gemini». Задайте название подключаемой интеграции, выберите модель по умолчанию и пропишите API-ключ из консоли Google AI Studio, который вы получили на втором шаге.

Языковая модель — это алгоритм, который анализирует текст, понимает его контекст, обрабатывает и генерирует новые тексты. Чем языковая модель сложнее, тем она эффективнее — но в то же время тарифицируется по более комплексной схеме, а значит — дороже.
При подключении интеграции вы можете выбрать, к какой модели будет посылаться запрос по умолчанию. В рамках интеграции доступны:
Gemini 1.5 Flash
Gemini 1.5 Flash-8B
Gemini 1.5 Pro
Языковую модель по умолчанию в настройках интеграции можно сменить в любой момент.
Использование Gemini в правилах
После подключения интеграции с Gemini в правилах автоматизации в Омнидеске появляются новые условия и действия, которые помогут настроить работу по нужным вам сценариям.
Прежде чем приступить к настройкам, рекомендуем ознакомиться со статьей об общей логике правил автоматизации в Омнидеске или посмотреть краткое видеоруководство по правилам
Действия
Чтобы избежать дублирования запросов и, как следствие, нецелесообразного расхода токенов, каждое действие из категории «— интеграция с AI» может быть указано в рамках одного правила только один раз.
1) Автоматически определить «Группа»
Доступно в правилах для входящих и измененных обращений и отправляет стандартный запрос в адрес Gemini для анализа сообщения. На основе ответа Gemini автоматически определяется наиболее подходящее значение стандартного поля «Группа», которое затем выставляется в параметрах обращения:
в правилах для входящих обращений для анализа отправляется текст первого сообщения в обращении;
в правилах для измененных обращений для анализа отправляется текст последнего сообщения пользователя в обращении.
Пример работы правила:

2) Автоматически определить «Список / Чекбокс»
Доступно в правилах для входящих и измененных обращений и отправляет стандартный запрос в адрес Gemini для анализа сообщения. На основе ответа Gemini автоматически определяется наиболее подходящее значение кастомного поля обращения / пользователя типов «Список» и «Чекбокс», которое затем выставляется в параметрах обращения.
в правилах для входящих для анализа отправляется текст первого сообщения в обращении;
в правилах для измененных для анализа отправляется текст последнего сообщения пользователя в обращении.
Пример работы правила:

3) Отправить текстовый запрос в адрес AI
Доступно для использования во всех типах правил и отправляет в адрес Gemini написанный вами текстовый запрос + содержание сообщения пользователя или сотрудника, которое надо проанализировать. Вы можете указать нужное вам сообщение с помощью переменных:
[case_description] — первое сообщение в обращении;
[last_message] — последнее сообщение в обращении.
Полученный от Gemini ответ фиксируется Омнидеском только на время выполнения правила через переменную [ai_response_by_text_request]. Эту переменную можно использовать, чтобы через правило ответ AI:
отправить пользователю;
добавить в заметку;
записать в поле обращения типа «текстовое поле» или «текстовая область».
Пример текстового запроса:
Переведи на русский язык: [case_description]
Пример работы правила:

4) Отправить кастомный запрос в адрес AI
Доступно во всех типах правил и отправляет в адрес Gemini написанный вами кастомный запрос в формате JSON + содержание сообщения пользователя или сотрудника, которое надо проанализировать. Вы можете указать нужное вам сообщение с помощью переменных:
[case_description] — первое сообщение в обращении;
[last_message] — последнее сообщение в обращении.
Чтобы передавать в запросе только часть сообщения, можете через вертикальную черту указать лимит по знакам, например [case_description|limit1000] или [last_message|limit1000].
Полученный от Gemini ответ фиксируется Омнидеском только на время выполнения правила через переменную [ai_response_by_custom_request]. Эту переменную можно использовать, чтобы через правило ответ AI:
отправить пользователю;
добавить в заметку;
записать в поле обращения типа «текстовое поле» или «текстовая область».
В кастомных запросах можно использовать следующие дополнительные параметры, регламентирующие генерацию ответа от Gemini:
responseMimeType — тип содержимого, который Gemini возвращает в ответе на запрос; так как интеграция предполагает обработку текста, необходимо указывать значение "text/plain", чтобы избежать получение ответов в нежелательном формате, например в JSON;
maxOutputTokens — максимальная длина ответа в токенах; указание данного параметра помогает контролировать длину генерируемых ответов и тем самым оптимизировать затраты;
temperature — параметр с диапазоном значений от 0,1 до 2, который определяет степень случайности при генерации ответа. Его эффект особенно заметен при использовании topP и topK, так как вместе эти параметры влияют на степень разнообразия и креативности в ответах. Низкие значения (ближе к 0,1) делают ответы более детерминированными и точными, что подходит для задач, требующих строгой логики или точных данных. Высокие значения (ближе к 2) добавляют больше случайности и креативности, что делает ответы более разнообразными и творческими;
topP (метод nucleus sampling, или выборка ядра) — параметр, который ограничивает выбор вариаций ответов, учитывая только те, чья суммарная вероятность входит в заданный процент (P). Например, при topP = 0.9 учитываются только те варианты, которые вместе покрывают 90% вероятности. Это позволяет добиться баланса между случайностью и целенаправленностью, исключая маловероятные, но всё ещё допустимые варианты;
topK — параметр, который ограничивает выбор вариаций ответов, учитывая только K наиболее вероятных вариантов. Например, при topK = 50 выбор будет происходить только среди 50 вариантов с наивысшей вероятностью. Это помогает сосредоточиться на наиболее релевантных вариантах, исключая остальные.
Оба параметра используются для управления качеством и разнообразием генерации: topP делает выбор более гибким, фокусируясь на суммарной вероятности, а topK жёстче ограничивает выбор конкретным числом вариантов.
Подробнее про дополнительные параметры, область и способы их применения читайте тут.
Пример текста кастомного запроса:
{ "contents": [ { "role": "user", "parts": [ { "text": "Ты выступаешь в роли аналитика текста. Определи два ключевых словосочетания в: [last_message]. Возвращай в своем ответе только сами словосочетания и никак не комментируй." } ] } ], "generationConfig": { "responseMimeType": "text/plain", "maxOutputTokens": 100 } }
Пример работы правила:

Условия
1) Изменения выполнены — интеграцией с AI-сервисом
Доступно в правилах для измененных обращений как опция в условии «Изменения выполнены». С помощью этого условия можно отслеживать изменения в полях обращения, которые произошли вследствие выполнения действий из категории «— интеграция с AI», доступных в правилах для входящих обращений.

а) Если в правиле есть условие «Изменения выполнены — интеграцией с AI-сервисом» + условие по отслеживанию изменения значения в одном из полей данных, то между этими условиями работает логический оператор «И» — то есть правило сработает, только если указанное изменение было выполнено AI-сервисом.
Если же изменение поля было выполнено сотрудником, пользователем или другим правилом без участия AI, то правило НЕ сработает.
Поясним на конкретном примере. У вас есть правило для измененных обращений, в условиях которого указано, что оно должно срабатывать при смене значения кастомного поля «Категория обращения», если эти изменения выполнены AI.

Также у вас есть два правила для входящих обращений, которые выполняют изменение поля «Категория обращения». Но одно из них делает это через запрос в адрес Gemini, который в ответ подбирает нужное значение для этого поля, а второе изменяет значение поля через стандартное действие «Изменить [название кастомного поля]».
В первом случае ваше правило для измененных сработает, а во втором — нет.

б) Чтобы избежать зацикливания, вместе с условием «Изменения выполнены — интеграцией с AI-сервисом» нельзя одновременно использовать действие из категории «— интеграция с AI». Также надо обязательно выбрать одно из условий из категории «— изменения в обращении», чтобы правило отслеживало конкретные изменения, а не любое изменение в обращении.

в) При выборе условия «Изменения выполнены — кем угодно» нет возможности выбрать АI-действия.
2) Символов в содержании / последнем ответе пользователя
Доступно во всех типах правил и позволяет отслеживать размер сообщения пользователя. Это нужно, чтобы учесть ситуации, когда правила, выполняющие запросы в адрес Gemini, НЕ должны срабатывать. Например, нет смысла отправлять в адрес Gemini сообщение из чата, которое точно не содержит ничего полезного («Здравствуйте», «Есть вопрос» и т. д.).
Вы можете выбрать подсчет символов как только для текста, так и с учетом тегов html.
В правилах для входящих обращений условие проверяет размер первого сообщения пользователя, поэтому оно называется «Символов в содержании — более / менее / равно»:

В правилах для измененных и текущих обращений условие проверяет последнее сообщение пользователя, поэтому оно называется «Символов в последнем ответе пользователя — более / менее / равно»:

Чтобы уменьшить ваши затраты и одновременно предотвратить потенциальные ошибки со стороны AI, в запросе в адрес Gemini вместо переменных [case_description] и [last_message] мы всегда передаем чистый текст без html-тегов
Особенности записи истории действий в обращении
Процесс полного выполнения правила автоматизации, включающего действия из категории «— интеграция с AI», занимает время. Продолжительность зависит от нескольких факторов:
количества действий в правиле;
объема передаваемых данных;
скорость ответа сторонних сервисов;
числа обращений, в которых одновременно отрабатывает правило.
Операции — отправка запросов в адрес Gemini, получение ответов от Gemini, внесение изменений в соответствующие обращения — выполняются в фоновом режиме. Поэтому история AI-действий фиксируется в обращении также поэтапно, по мере выполнения самих действий.

В записях в истории обращения о выполнении AI-действий мы отображаем статус выполнения запроса, пока он в процессе, а после успешного выполнения — количество потраченных токенов.
Отключение и удаление интеграции
Если в аккаунте более одной активной интеграции с AI, при отключении / удалении интеграции администратору мы предложим выбрать:
а) заменить отключаемую интеграцию с AI в правилах на одну из оставшихся:

Не забудьте актуализировать текст запроса в адрес AI в ваших правилах, так как при замене отключаемой интеграции (к примеру, с сервисом «Gemini») на другую (к примеру, с сервисом «OpenAI») тело запроса в действии «Отправить кастомный запрос в адрес AI» очищается.
б) удалить все действия правил, связанных с отключаемой интеграцией AI:

Расскажите нам, как вы используете интеграцию с AI в работе. Если это может быть полезно ещё кому-нибудь, мы обязательно напишем об этом :)