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

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

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

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2F0bS5AUCmHwnuSJ4U2Y3Q%2FChatGPT6.jpg?alt=media&#x26;token=980721e0-89b2-4923-a960-5a457e4440c3" 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="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FzzpDCue0htP6WS6PwGb7%2FChatGPT.jpg?alt=media&#x26;token=089141ce-2c03-4c07-ad38-487adaddf1a1" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FduZLJPQ6UEMHom6Hacsa%2FChatGPT2.jpg?alt=media&#x26;token=63d9fefa-6c72-4871-b88e-ff571978fa17" alt=""><figcaption></figcaption></figure>

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FnwmiukRW0swTHhknt4DS%2FChatGPT4.jpg?alt=media&#x26;token=db042185-15a7-4f99-98b3-1380b2e09d3f" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FiECaPDzFFqyUYG5e35zv%2FChatGPT8.jpg?alt=media&#x26;token=e5458604-1417-4c7e-8b60-ab6742c78fbf" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2F4p6qfK8kvvXafNSZvVlH%2FChatGPT10.jpg?alt=media&#x26;token=2f0636fd-feca-44e1-90f9-6f49a35aba40" alt=""><figcaption><p>Пример переменной</p></figcaption></figure>

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

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FWUGX7aSoYRShFKxpjKLW%2FChatGPT12.jpg?alt=media&#x26;token=4b716cf1-be40-4f19-ab80-676878e83f46" 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="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FMWdi0WcJHOiGedAQ3Wzg%2FChatGPT14.jpg?alt=media&#x26;token=dd64cde6-438e-4ea4-bfae-a231ecc5330b" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FqVfSHfl7yXn48AkbNSY2%2FChatGPT16.jpg?alt=media&#x26;token=986ee042-7ee6-4008-94bb-487d168476f3" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FnbZaqIFXAujx8tCiUzjf%2FChatGPT18.jpg?alt=media&#x26;token=fae7ea87-bccb-4f5b-8218-0c3e1e898b24" alt=""><figcaption></figcaption></figure>

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

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

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

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

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FaiVgnbu1Vv7roYqzG40t%2FChatGPT20.jpg?alt=media&#x26;token=99ef0727-2a1a-4000-851c-884f7cfab95f" 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="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FT8vFNsIbmqTnTuWGJWzo%2FChatGPT22.jpg?alt=media&#x26;token=3dfd8dc4-4286-43f6-ba54-e6e7792f4393" alt=""><figcaption></figcaption></figure>

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

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

data.0.url→ image

data.1.url→ image1

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

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FNmXHR2XpSl1Ukj9QNpyI%2FChatGPT26.jpg?alt=media&#x26;token=7dddf36c-b069-49d4-b623-0409af91f443" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="https://142807269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXgURoHjOREu7lpbgVXmo%2Fuploads%2FGyv8sL7Kz0335nWXYZCC%2FChatGPT28.jpg?alt=media&#x26;token=25886a8d-0cbf-4d59-abef-c6c6f0858bb6" alt=""><figcaption></figcaption></figure>

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

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