Интеграция с OpenAI решает две задачи:
1) Автоматическое выставление значений в полях данных на основании проверки сообщения пользователя сервисом OpenAI. Доступно заполнение кастомных полей обращения и пользователя типов «Список» и «Чекбокс», а также стандартного поля «Группа»;
2) Отправка собственных запросов в адрес OpenAI для анализа: к примеру, можно переслать сообщение пользователя, чтобы затем использовать полученный от OpenAI ответ в работе.
Мы не взимаем дополнительной платы за подключение или использование интеграции. При этом для работы интеграции вам надо будет отдельно оплачивать услуги OpenAI.
Тарификация в OpenAI привязана к объему текста запроса и ответа. Расчет ведется в токенах, каждый токен соответствует примерно 4 символам текста на латинице или 1–2 символам на кириллице, включая пробелы и знаки препинания. Например, слово «ChatGPT» расходует два токена. Стоимость определяется суммой токенов, используемых для обработки запроса и формирования ответа.
В своем аккаунте OpenAI вы можете контролировать использование токенов с помощью инструментов для управления бюджетом.
Содержание
Подключение интеграции
Шаг 1: Авторизуйтесь в своем аккаунте OpenAI. Если у вас еще нет аккаунта, создайте его.
Шаг 2: Создайте API-ключ (Settings → Organization → API keys → Create new secret key → Create secret key) и скопируйте его.

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

Языковая модель — это алгоритм, который анализирует текст, понимает его контекст, обрабатывает и генерирует новые тексты. Чем языковая модель сложнее, тем она эффективнее — но в то же время требует больше вычислительных ресурсов, а значит — дороже.
При подключении интеграции вы можете выбрать, к какой модели будет посылаться запрос по умолчанию. Самая дешевая из доступных в рамках интеграции (gpt-3.5-turbo) подойдет для простых задач и при этом позволит сэкономить. Но если вам нужно заполнять зависимые поля или использовать полученную от AI информацию для подготовки ответа клиенту, то имеет смысл выбирать более дорогую версию — так будет меньше досадных ошибок, и AI будет по-настоящему помогать, а не выполнять роль виртуального стажера, за которым все надо перепроверять.
При этом учтите, что при формировании кастомного запроса в адрес AI вы всегда можете указать языковую модель, отличную от установленной по умолчанию. То есть если в основном у вас простые задачи, можно указать при настройке интеграции языковую модель подешевле, и только в конкретных правилах автоматизации, которые вы настроите для выполнения задач посложнее, обращаться к более дорогой версии — и наоборот.
Также в любой момент можно сменить языковую модель по умолчанию в настройках интеграции.
Использование OpenAI в правилах
После подключения интеграции с OpenAI в правилах автоматизации в Омнидеске появляются новые условия и действия, которые помогут настроить работу интеграции по нужным вам сценариям.
Прежде чем приступить к настройкам, рекомендуем ознакомиться со статьей об общей логике правил автоматизации в Омнидеске или посмотреть краткое видеоруководство по правилам
Действия
Чтобы избежать дублирования запросов и, как следствие, нецелесообразного расхода токенов, каждое действие из категории «— интеграция с AI» может быть указано в рамках одного правила только один раз.
1) Автоматически определить «Группа»
Доступно в правилах для входящих и измененных обращений и отправляет стандартный запрос в адрес OpenAI для анализа сообщения. На основе ответа OpenAI автоматически определяется наиболее подходящее значение стандартного поля «Группа», которое затем выставляется в параметрах обращения:
в правилах для входящих обращений для анализа отправляется текст первого сообщения в обращении;
в правилах для измененных обращений для анализа отправляется текст последнего сообщения пользователя в обращении.
Пример работы правила:

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

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

4) Отправить кастомный запрос в адрес AI
Доступно во всех типах правил и отправляет в адрес OpenAI написанный вами кастомный запрос в формате JSON + содержание сообщения пользователя или сотрудника, которое надо проанализировать. Вы можете указать нужное вам сообщение с помощью переменных:
[case_description] — первое сообщение в обращении;
[last_message] — последнее сообщение в обращении.
Чтобы передавать в запросе только часть сообщения, можете через вертикальную черту указать лимит по знакам, например [case_description|limit1000] или [last_message|limit1000].
Полученный от OpenAI ответ фиксируется Омнидеском только на время выполнения правила через переменную [ai_response_by_custom_request]. Эту переменную можно использовать, чтобы через правило ответ AI:
отправить пользователю;
добавить в заметку;
записать в поле обращения типа «текстовое поле» или «текстовая область».
В кастомных запросах можно использовать следующие дополнительные параметры, регламентирующие генерацию ответа от OpenAI:
temperature — уровень креативности модели, значение от 0,1 до 1. Для точных ответов обычно рекомендуется значение 0,3−0,5, при этом, если хотите, чтобы ответы были полезными, но не занудными, можете попробовать повысить значение до 0,7−0,8;
frequency_penalty — степень ограничения повторов, значение от −2 до 2. Если заметили, что в ответах используется ограниченный набор слов или нужно повысить уникальность, повысьте это значение. Для инструкций или технической документации можно попробовать отрицательные значения;
presence_penalty — стимулирование использования новых слов и идей, значение от −2 до 2. Чем выше значение — тем свободнее будет «мыслить» AI. Отрицательные значения подойдут, если вам нужны повторяемость и стабильность результата;
max_tokens — максимальная длина генерируемого ответа в токенах. Значение зависит от используемой модели: для GPT-3.5 Turbo и GPT-4 Turbo лимит — 4096 токенов. Если в запросе не указан этот параметр, то модель будет генерировать текст, пока не достигнет своего лимита или не встретит «стоп-токен» (например, конец предложения).
Также в тексте запроса вы можете указать языковую модель, если хотите, чтобы была использована отличная от выбранной при подключении интеграции. Модель AI-сервиса, указанная непосредственно в теле кастомного запроса, имеет приоритет над моделью, заданной в настройках интеграции.
Пример текста кастомного запроса:
{ "model": "gpt-4", "messages": [ { "role": "system", "content": "Ты выступаешь как аналитик текста. Твоя задача — определить два ключевых словосочетания в сообщении пользователя, которое будет передано в content от user. Не добавляй в свой ответ ничего кроме двух ключевых словосочетаний." }, { "role": "user", "content": "[last_message]" } ], "temperature": 0.6, "frequency_penalty": 0, "presence_penalty": 0.1, "max_tokens": 100 }
Пример работы правила:

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

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

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

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

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

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

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

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

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

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