> For the complete documentation index, see [llms.txt](https://help.cleverapp.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.cleverapp.pro/sozdanie-bota-s-chatgpt.md).

# Создание бота с ChatGPT

Создаем бота на платформе CleverApp и делаем логическую цепочку в боте, например такую, пример ниже.&#x20;

{% hint style="info" %}
Шаблон этого бота есть на платформе CleverApp, называется "ChatGPT на CleverApp" - <https://app.cleverapp.pro/catalog>
{% endhint %}

<figure><img src="/files/Cxe332gBi6DVtehrYET7" alt=""><figcaption></figcaption></figure>

Далее делаем все по инструкции:

1\. Регистрируемся на сайте <https://platform.openai.com/docs/guides/chat>

Как это сделать в РФ можно легко найти в интернете. Вам обязательно понадобится для этой цели номер телефона другой страны, чтобы воспользоваться СМС-подтверждением.

2\. Перейти на страницу <https://platform.openai.com/docs/quickstart/build-your-application> и сгенерировать ключ.

<figure><img src="/files/bAIGV38jB73IftDCk7Fp" alt=""><figcaption></figcaption></figure>

3. Перейти в списки в своем боте на платформе CleverApp и создать глобальную переменную, в которую сохранить ключ.

<figure><img src="/files/F0EXE7MokVe3HL3pBM2o" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/U9hccviPBvO1TgypwXXc" alt=""><figcaption></figcaption></figure>

4. Настроить в боте первый блок после Старта, он даст выбор направления – что пользователю нужно сгенерировать: текст или картинку. Все кнопки в боте лучше сделать ИНЛАЙН.

<figure><img src="/files/zwVGhVUoQjdnfWYfZ6Gj" alt=""><figcaption></figcaption></figure>

### Работа с текстом

5. Второй блок позволяет отправить запрос пользователя, который обязательно сохранить в переменную, активировав соответствующую функцию в настройках блока.

<figure><img src="/files/ghHiI3GhvvgzOw6usZyZ" alt=""><figcaption><p>Пример переменной</p></figcaption></figure>

6. Переходим к блоку HTTP-запрос и настраиваем таким образом

<figure><img src="/files/OZf8qtBrFVEWICXc1D5X" alt=""><figcaption></figcaption></figure>

а) URL: <https://api.openai.com/v1/completions>

б) Method: POST

Заголовки:

Content-Type = application/json

Authorization = Bearer {{ OPENAIKEY }}

{{ OPENAIKEY }} – Это наша глобальная переменная, куда сохраняли ключ с сайта OpenAI. Указывайте свою переменную, которую создали в списках своего бота.

в) Настройка Body:

\- формат обмена данными выбрать json и вставить код, например, такой:

```
{
    "model": "text-davinci-003",
    "prompt": "{{ $prompt }}",
"max_tokens": 1000,
    "temperature": 0
  }

```

С более подробной информацией об этом Вы можете познакомиться на странице - <https://platform.openai.com/docs/api-reference/completions>

<figure><img src="/files/LkDhcQYJXwkAJvpaOBXV" alt=""><figcaption></figcaption></figure>

г) Настроить время ожидания отклика от ИИ и записать ответ в переменные. При этом текст сохранять обязательно, а количество использованных токенов по желанию.

<figure><img src="/files/0692gA4HmI473vQsk5xn" alt=""><figcaption></figcaption></figure>

7. Настроить блок «Цепочка сообщений», стоящий после блока HTTP-запрос от кнопки «Продолжить». Для вывода ответа от ChatGPT (ответ json) использовать переменные.

<figure><img src="/files/mXlAx3vP8NtoKEUTPGsC" alt=""><figcaption></figcaption></figure>

Для повторения запроса создаем соответствующую кнопку и соединяем ее с первым блоком или блоком «Сценарий» с выбором сценария, в котором работаем.

### Работа с картинкой

Вторая логическая цепочка работает аналогично. Итак, следующий шаг:

8. Сделать запрос на промо (описание будущей картинки) пользователя для генерации картинки и записать его в переменную.

<figure><img src="/files/gnufkFC1gUe7Y9zIxesW" alt=""><figcaption></figcaption></figure>

9. Внимательно оформить блок HTTP-запрос по тому же принципу, что и для текста, но с другими данными (эти данные можно посмотреть по адресу <https://platform.openai.com/docs/api-reference/images/create>

а) URL: <https://api.openai.com/v1/images/generations>

б)  Method POST

Заголовки:

Content-Type = application/json

Authorization=Bearer {{ OPENAIKEY }}

в) Body json

код:

```
{
    "prompt": "{{ $prompt2 }}",
    "n": 2,
    "size": "1024x1024"
  }

```

<figure><img src="/files/LeA5pQFVCL1GSH22q8N2" alt=""><figcaption></figcaption></figure>

г) Так как число картинок указано 2 ("n": 2), то переменных необходимо создать тоже 2.

Соотношение переменных:

data.0.url→ image

data.1.url→ image1

10. Для вывода каждой картинки настроить отдельный блок «Цепочка сообщений».

<figure><img src="/files/MNxUvDxr9Prbs45FN5Z8" alt=""><figcaption></figcaption></figure>

а) В первом блоке прописать нужную переменную и перейти через кнопку «Продолжить» к следующему.

б) Во втором блоке ставим вторую переменную:

<figure><img src="/files/7id91zpJ4epz0hkSCeGG" alt=""><figcaption></figcaption></figure>

11. От кнопок «Нет ответа от сервера» блоков HTTPобязательно поставить текстовый блок с пояснением и отправить в первый блок, чтобы пользователь мог задать вопрос еще раз.

{% hint style="info" %}
Обратите внимание, если время отклика в блоках HTTP указать слишком маленькое, бот работать не будет, т.к. не успеет получить ответ от сервера.
{% endhint %}
