# Подключение и настройка GPT-бота

**Важно!** Информация в настроенных сценариях может противоречить друг другу, но не должна противоречить инструкции ассистента и загруженной в него базы знаний!

### **В каких мессенджерах можно использовать?**&#x20;

&#x20;\- WhatsApp Web, WhatsApp Business API, ВКонтакте (Россия и СНГ), Viber, Telegram (Личный/Массовый), Official Instagram,Facebook, Youla, Avito.&#x20;

### Добавление провайдера

Для начала добавляем новый провайдер: в разделе «Провайдеры» нажимаем «Добавить» и выбираем ChatGPT. Там вводим наименование аккаунта и key (ключ), который создаем в личном кабинете OpenAI.&#x20;

<figure><img src="https://1141222632-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvdtSkqUDuO5XM96AcLMV%2Fuploads%2FhyYPYXcktZ2Ol8URy7lu%2F%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0.png?alt=media&#x26;token=28affb58-7daa-49e6-834f-0675962b020e" alt=""><figcaption></figcaption></figure>

**Важно!** Если у вас нет личного кабинета в OpenAI, то добавлять провайдер **НЕ** нужно. Если у вас есть личный кабинет и вы все же хотите подключить своего бота, то вам **необходимо** оплатить расширенную версию на OpenAI, чтобы работа бота не тормозила, так как на заданном тарифе идет большее количество запросов (около 1000 и больше), которое увеличивается до нескольких тысяч в течение 3-4 секунд.\
\
Различие между нашим встроенным ботом и вашим:

* Не доступен выбор моделей
* Не доступна загрузка баз знаний

**Важно!** Ключ у нас не создается, его можно создать только в сервисе OpenAI . Ключ должен быть оплачен, а так же иметь подписку Plus и оплаченные токены.\
\
Как оплатить подписку Plus и токены можно узнать здесь - <https://docs.intellectdialog.com/bystryi-start/podklyuchenie-i-nastroika-chatgpt-bota/kak-oplatit-podpisku-plus-i-tokeny>

### **Настройка бота:**

<figure><img src="https://1141222632-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvdtSkqUDuO5XM96AcLMV%2Fuploads%2FrXIBsjlyxoPDHvWOoUby%2Fimage.png?alt=media&#x26;token=61a9684e-af69-4399-998c-06c0ed5278dc" alt=""><figcaption></figcaption></figure>

* Выбор языка: по умолчанию идет определение автоматически, то есть бот будет отвечать на том языке, на котором ему написал пользователь. Настроить можно так, как вам нужно.&#x20;
* **Важно!** Если пользователь написал сначала на русском языке(сообщений 10, например), а затем начал писать на английском, то бот продолжит писать на русском.
* Название можно указать любое. Рекомендуем называть так, чтобы понимать, какими знаниями обладает бот.
* Выбор GPT провайдера: если добавлен 1, то он применится по умолчанию.
* Обработка по дню и времени: позволяет настроить, когда ваш бот будет работать.
* Остановка бота после ответа оператора: позволяет установить время в минутах, когда  бот перестанет работать после ответа оператора (менеджера).
* Провайдеры добавляем те, в которых хотим, чтобы наш бот работал.
* Вернуть переменные из бота: указываем то, что хотим сохранить в переменную. «Найти в тексте» — пишем то, что необходимо найти. «Сохранить как» — выбираем нужную переменную, в которую записать данное значение. Указать можно несколько переменных.

<figure><img src="https://1141222632-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvdtSkqUDuO5XM96AcLMV%2Fuploads%2F0pgnwRuh9dnNn5gFawrE%2F%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8C%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%B8%D0%B7%20%D0%B1%D0%BE%D1%82%D0%B0.png?alt=media&#x26;token=267ae2cd-2c58-4446-a413-2c405c9e1dd5" alt=""><figcaption></figcaption></figure>

* Передать переменные с данными в бот: Выбираем переменную, которую хотим передать боту. «Описание переменной» — указываем боту, что это за переменная и что она значит. Указать можно несколько переменных.

<figure><img src="https://1141222632-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvdtSkqUDuO5XM96AcLMV%2Fuploads%2FJzMhCP59DwS0blOHccDA%2F%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%82%D1%8C%20%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20%D0%B1%D0%BE%D1%82%D1%83.png?alt=media&#x26;token=92b91a48-5218-44b6-bbd2-a225ab00394f" alt=""><figcaption></figcaption></figure>

* **Условия запуска:** можно настроить то, кому пойдут сообщения, а точнее настроить общение с разными клиентами, потенциальными/существующими/бывшими клиентами например, путем тегов клиентов или за счет переменных.

<figure><img src="https://1141222632-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvdtSkqUDuO5XM96AcLMV%2Fuploads%2F57qAT9fw3UJgiRpSqeJS%2F%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%20%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B9.png?alt=media&#x26;token=e7afdae4-007a-4f81-a220-3037d658a66f" alt=""><figcaption></figcaption></figure>

* **Продолжение диалога** - это порог процента вероятности продолжения диалога у  GPT — это внутренний механизм, который помогает модели решить, стоит ли продолжать генерировать текст (например, в диалоге) или завершить ответ. Этот порог влияет на то, как модель выбирает следующее слово или фразу в тексте на основе вероятностных оценок возможных вариантов. Если параметр задан ниже 20, то бот будет каждый раз обращаться ко всем сценариям и всей информации для подбора максимально релевантного ответа.
* **Функции работы с датами -** если включить данную функцию, то бот будет обрабатывать запросы, связанные с датами, временем или событиями и искать информацию в указанное событие при необходимости.
* **Токен интеграции** - данный раздел позволяет внедрить бота во внешние системы (если у вас какие-то системы и вы хотите чтобы бот брал оттуда информацию, то вы можете написать своему менеджеру или в поддержку IntellectDialog и коллеги вас проконсультируют подробно об этой возможности).

**Подгрузка истории сообщений:**

* **Количество сообщений** - здесь вы указывание количество сообщений которые бот будет учитывать при ответе&#x20;
* **За последнее время в минутах** - или же указываете время в минутах, например бот будет учитывать сообщения за последние 5 минут
* **Учитывать сообщения** - выбираете источники, один или несколько которые бот будет учитывать при ответе пользователю, например, до этого была отправлена рассылка и интересовать ответы, связанные с ней.

{% hint style="info" %}
Т.е. в данном разделе вы выбираете какое-то одно значение, либо бот будет учитывать определенное количество сообщений, либо же временной интервал, за какой период в минутах бот будет учитывать эти сообщения. Этот параметр напрямую влияет на количество затраченных токенов на ответ. Поэтому не рекомендуем указывать слишком большое количество сообщений или временной интервал.
{% endhint %}

### **Дополнительно:**

<figure><img src="https://1141222632-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvdtSkqUDuO5XM96AcLMV%2Fuploads%2FkJuryPzNZrtDG89Ws8Se%2Fimage.png?alt=media&#x26;token=ef98b31e-973e-4944-aac0-ae568e7e1d9c" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1141222632-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvdtSkqUDuO5XM96AcLMV%2Fuploads%2FWcZ5foqX4AxmeMyeRdlx%2Fimage.png?alt=media&#x26;token=92a6c9d6-55e4-4979-afaa-3b12d1c4011e" alt=""><figcaption></figcaption></figure>

Раздел **Дополнительно** позволяет настроить общий промт для всех ответов бота, чтобы не делать это для каждого ответа. Здесь можно прописать то, кем является бот, что ему можно говорить, а что нельзя, и так далее.&#x20;

**Важно!** Прописываем в общем промте технические данные, например чтобы бот не писал то, о чем он не знает, то есть не врал вашему клиенту. Также обратите внимание на грамотность написания слов, так как от этого зависит работа бота. Общий промт можно редактировать в процессе работы. Также важно соблюдать пунктуацию и сухость при составлении промта.<br>

**Важно! Общий промт будет учитываться при всех описанных ниже реакциях на сообщения.** Не указывайте кучу ограничений для GPT-бота, так как его работа может нарушиться. Также на OpenAI можно настроить бота, чтобы он вёл себя определённым образом в каких-то ситуациях. При этом он может попросить прикрепить фото диалога для примера, что позволит ему лучше понять то, как ему себя вест&#x438;**.**\
\
**Пример заполнения промта:**\
\
"Вы выступаете в роли виртуального ассистента фитнес-клуба 'Boom' под именем Kate. Вам следует: 1. Использовать только информацию из промпта. 2. Формировать краткие ответы, подходящие для WhatsApp, до трех предложений, без добавления деталей вне контекста. 3. Направлять пользователя к менеджеру клуба при отсутствии необходимой информации. 4. Представляться только как виртуальный ассистент, не человек, менеджер или оператор. 5. Обращаться к пользователю на 'вы'. 6. Учитывать предыдущие сообщения в чате для контекстуализации ответов. 7. Не предоставлять информацию, отсутствующую в данном контексте." "Нельзя писать: Информация о стоимости клубной карты не предоставлена в данном контексте." "Нельзя писать: Рекомендуется обратиться в фитнес-клуб напрямую для получения актуальной информации." "Вы Выполняете роль представителя фитнес-клуба "Boom"."\
\
или\
\
Вы - виртуальный ассистент Barsik для ответов на вопросы о функциях и работе компании Sintek в WhatsApp. Общайтесь вежливо, уверенно и позитивно, используя разговорный язык. Будьте естественны. Отвечайте только на вопросы, относящиеся к Sintek, включая интеграции с вотсапом, телеграмом, вконтакте, инстаграм, фейсбук, вайбер. Задавайте по одному уточняющему вопросу за раз. Если не знаете ответ, предложите подключить сотрудника отдела продаж или поддержки в чате, но не отправляйте пользователя к кому-то другому самостоятельно. Не пишите, что информация не найдена в файле, вместо этого предложите подключить сотрудника для ответа. В процессе диалога подчеркивайте преимущества и сильные стороны Sintek, демонстрируя, что это лучшее решение на рынке. Приводите конкретные примеры успешного использования Sintek клиентами и отзывы о высоком качестве сервиса. Это поможет укрепить доверие и показать, что Sintek - идеальный выбор для потребностей пользователя.

\
**Если ответ не найден:**\
\
Ваш запрос не был распознан, пожалуйста, перефразируйте его, и я буду рад помочь: могу предоставить контактную информацию и ссылки на социальные сети и мобильное приложение, информацию о графике работы, правилах клуба, информацию о занятиях, программы для детей, информацию о бассейне и других направлениях, персональные тренировки, отзывы клиентов, видеопрезентацию клуба и связать с отделом продаж.<br>

**Рекомендательная система:**

* **Top P** - Представьте, что модель выбирает следующее слово из списка возможных вариантов. **Top P** определяет, сколько из этих вариантов модель будет рассматривать. Например, если **Top P = 0.9**, модель возьмет в расчет только те варианты, которые в сумме дают 90% вероятности. Это помогает избегать совсем неожиданных и странных слов.
* **Температура** - Это как "настроение" модели. Если **Температура** высокая (например, 1.0), модель будет более "креативной", возможно, будет использовать более редкие слова или строить необычные фразы. Если **Температура** низкая (например, 0.2), модель будет выбирать более предсказуемые и простые варианты. В итоге ответы будут более стандартными и сдержанными.
* **Лимит** - Это ограничение на количество слов или символов в ответе модели. Например, если вы хотите короткий ответ, можно установить маленький лимит. Если нужен более развернутый ответ, лимит можно увеличить.
* **High Prompt** - это сложный запрос, который требует от модели глубоко подумать и выдать подробный ответ.
* **Low Prompt** - это простой запрос, на который можно ответить коротко и ясно, без лишних размышлений.
* **Prompt** - Это просто то, что вы пишете модели, например, вопрос или команда. Это тот самый текст, который запускает генерацию ответа.

**Настроить, как бот реагирует на текстовые сообщения (Добавить правило AI)**

{% hint style="info" %}
**Важно!** Чтобы бот работал корректно у вас должен быть заполнен общий промт, раздел если ответ не найден и хотя бы одно правило AI. А также дублирование информации в общем промте и конкретных реакциях на ответ пользователя может приводить к некорректным ответам бота. **Пример:**&#x20;
{% endhint %}

<figure><img src="https://1141222632-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvdtSkqUDuO5XM96AcLMV%2Fuploads%2FpFo4iSDkbiVUaVdbgDMd%2Fimage.png?alt=media&#x26;token=8636faa3-01de-4185-8007-6949c53aad60" alt=""><figcaption></figcaption></figure>

При открытии дополнительных настроек можно устанавливать теги, дополнять ответы, переключать на другие сценарии.

<figure><img src="https://1141222632-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvdtSkqUDuO5XM96AcLMV%2Fuploads%2FpYiIeh9qZA6zKJO0ck5p%2Fimage.png?alt=media&#x26;token=ed5fc69c-a42e-41d1-b68b-793c24929f2f" alt=""><figcaption></figcaption></figure>
