# Добавление функций

[**Функции**](https://doc.nextbot.ru/functional/functions) - это инструменты ИИ-агента, которые позволяют ему взаимодействовать с внешним миром: отсылать уведомления, двигать карточки в crm, узнавать цены и остатки товаров на складе и т.д.

Использование функций позволяет сделать из ИИ-агента не просто "болталку" в чате, а полноценный и полезный инструмент бизнеса.

{% hint style="info" %}
Подробнее про функции можно узнать [в статье](https://doc.nextbot.ru/functional/functions)
{% endhint %}

После того, как ИИ-агент настроен и консультирует клиентов, вы можете добавить ему новые обязанности:

* **Уведомления:** сообщает вам о сложных запросах или внештатных ситуациях.
* **Заполнение заказов:** ИИ-агент самостоятельно записывает данные клиента и отсылает уведомление в группу телеграмм.

### Функция уведомления менеджера о внештатной ситуации.

#### Поскольку иногда в общении клиента и ИИ-агента возникают сложности, требующие вмешательства реального человека, добавим ему возможность позвать нас на помощь в сложной ситуации.

1. **Перейдём на страницу** [**функции**](https://app.nextbot.ru/functionsGPT)**:**
2. **Нажмём "Создать функцию с базовыми настройками"**<br>

   <figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FitxymFo1MgclSSIJNX0p%2Fimage.png?alt=media&#x26;token=c8c95c6c-015f-4655-b731-35ba96fc2924" alt=""><figcaption></figcaption></figure>
3. Получим функцию с названием по умолчанию "save\_user\_data"

   <figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FRWHCDGQcdz81BzifCrJH%2Fimage.png?alt=media&#x26;token=c233056f-a246-4e30-9b8d-797b404b7677" alt=""><figcaption></figcaption></figure>
4. **Нажмем на название функции**, что бы её настроить
5. **Придумаем и заполним имя функции.**\
   Имя должно быть заполнено на английском языке <mark style="background-color:red;">**(не латинскими буквами, а именно на английском языке)**</mark><mark style="background-color:red;">.</mark>\
   Функция вызовется в нужном вам случае, только если нейросеть поймёт её смысл и логику, исходя из имени функции.\
   В нашем случае, так как мы создаём функцию вызова менеджера для помощи, выберем имя: **call\_for\_help** (с англ. - запросить помощь)\
   Плохим примером было бы назвать эту функцию как "zapros\_menedgera", "function\_pomogite" или "pomogite".<br>
6. **Кратко заполняем инструкцию**: "Запросить помощь" - в инструкции мы объясняем что делает эта функция, в нашем случае хватит очень краткого объяснения, так как поведение этой функции вполне ясно из её названия и контекста использования.
7. **Добавляем всего один параметр**: Имя параметра "query", инструкция для параметра "Причина обращения." В это поле ИИ-агент будет записывать по какой причине он вызывает помощь.<br>

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FfXtnTy3RaSFib2hHFKSv%2F%7BB2D861FB-DD19-415D-A7BB-8CAC88C6DEB3%7D.png?alt=media&#x26;token=fa1b135e-edcd-4154-a381-2f8eaed783d5" alt=""><figcaption></figcaption></figure>

8. К этой функции добавим **сценарий поведения Поставить на паузу**, в случае если функция выполнилась. Чтобы ИИ-агент в этом диалоге больше ничего не отвечал.

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FwBDSMNNfeXdqjsd8whry%2F%7B73E0D1D1-0E7F-4BF5-A307-1B9C9575AFB6%7D.png?alt=media&#x26;token=c2f99844-13e4-43c5-a3aa-04cc5126eb77" alt=""><figcaption></figcaption></figure>

9. **Не забудьте всё сохранить**

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2Fq938lvklC4KGvPQ88GVB%2Fimage.png?alt=media&#x26;token=3c37079d-c948-472a-9880-9b886f34885f" alt=""><figcaption></figcaption></figure>

10. **Далее возвращаемся на страницу редактирования агента, и добавляем в инструкцию сценарий при котором нужно запустить функцию:**\
    \&#xNAN;*Если у тебя возникли сложности с ответом, или ты не знаешь ответа, а также клиент просит позвать живого человека вызови функцию: call\_for\_help.*<br>

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FwA8gvGXIoKXJ5bQvk58k%2F%7BC2890B49-FDAB-4935-8EBD-0303EB01CC6D%7D.png?alt=media&#x26;token=dae2232b-e910-4d8a-b717-6fb58f1f2cdc" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Важно помнить, что текст функций и промптов нужно подбирать индивидуально для каждого ИИ-агента.**
{% endhint %}

#### Пробуем что получилось:

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FG4LbYkh39LDsWMxes0N2%2F%7B55C4DA3F-6830-4991-8874-39D6B8F0EAAD%7D.png?alt=media&#x26;token=bdf4dff1-8bb6-44b9-8382-f882fcb8fcaf" alt=""><figcaption></figcaption></figure>

Отлично! ИИ-агент вызывал подмогу и диалог перешел в режим Пауза, согласно нашим инструкциям.

### Далее добавим вторую функцию, которая уведомляет нас о новом заказе.

**Имя функции:**\
send\_order\_details (Отправить детали заказа)

**Описание:**\
Функция отправляет менеджеру данные о заказе для оформления и доставки. Включает информацию о заказе, адресе доставки, имени клиента и его контактном номере.

**Аргументы:**

1. **order** Описание: Детали заказа пользователя, включая наименование товара и его количество в формате: название - кг.\
   Пример:\
   Стейк Рибай - 3кг\
   Филе Миньон - 0.8кг\
   Говяжий фарш - 5кг
2. **delivery\_address** Описание: Адрес доставки.
3. **client\_name** Описание: Имя клиента.
4. **phone\_number** Описание: Номер телефона для связи с курьером.

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FDxPonXXeXnfKnsZqlADV%2F%7B6E581154-D33C-4FC9-B5F6-79D1C514F2BA%7D.png?alt=media&#x26;token=c1de5cb5-e981-4c89-8476-ea7c1a2b6f1f" alt=""><figcaption></figcaption></figure>

Сохраняем функцию!

**Далее пробуем:**\
\
Видно что ИИ-агент сам понял что оформления заказа ему нужно уточнить такие вопросы. Но мне не нравится что вываливает все вопросы кучей. Давайте попросим задавать по одному:

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FDAbdkolryX5haiRPIoOO%2F%7B26C38294-435B-4ADC-9140-641BB2912523%7D.png?alt=media&#x26;token=0bc2cb19-3f7f-48ec-8fd9-bfa5db6b2dbf" alt=""><figcaption></figcaption></figure>

**Доработаем инструкцию:**

*Для того что-бы заполнить карточку заказа необходимо **ШАГ ЗА ШАГОМ** уточнить у клиента:*

* *желаемый товар и его количество, не забывай про дополнительные продажи (предложи кетчуп, специи);*
* *адрес доставки;*
* *имя клиента;*
* *телефон после получения всех данных вызови функцию send\_order\_details, для информирования о новом заказе.*

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2Fr7GU3jKUXA7aeFln7WXu%2F%7B17148C35-92EE-4A89-AFE7-1E6398F9A39D%7D.png?alt=media&#x26;token=dc4c0b65-e34f-464f-a340-ed44e216f5fa" alt=""><figcaption></figcaption></figure>

### **Тестируем что получилось:**

**Квалификатор (ИИ-агент):**\
Здравствуйте, чем могу вам помочь?

**Пользователь:**\
Привет, хочу сделать заказ.

**Квалификатор (ИИ-агент):**\
Здравствуйте! Отлично, что вы решили заказать у нас! Давайте начнем. Какой товар и в каком количестве вас интересует? Мы можем также предложить кетчупы и специи для вашего заказа.

**Пользователь:**\
Что-нибудь для стейка.

**Квалификатор (бот):**\
Отличный выбор! Для приготовления стейка у нас есть несколько вариантов:

* Стейк Рибай (2000 руб./кг): мраморная говядина с потрясающим вкусом.
* Филе Миньон (2500 руб./кг): нежное и мягчайшее мясо, идеальное для гурманов.
* Томагавк (3000 руб./кг): эффектный стейк с реберной костью, который украсит любой ужин.

Какой вариант вам интересен и сколько килограммов хотите? Также могу предложить приправы для стейков или кетчуп.

**Пользователь:**\
Давай Рибай, пару кило.

**Квалификатор (ИИ-агент):**\
Отличный выбор! Записываю 2 кг стейка Рибай.

Хотите добавить специи для стейков (идеальная смесь специй за 300 руб.) или кетчуп (150 руб.) для полного удовольствия? 😊

**Пользователь:**\
Хорошо.

**Квалификатор (ИИ-агентт):**\
Добавляем специи для стейков за 300 руб. к заказу! Также напомню, что на первый заказ у нас действует скидка 10%.

Теперь уточним адрес доставки, чтобы ваш заказ прибыл вовремя. Куда доставить ваш Рибай и специи? 😊

**Пользователь:**\
Аа, ну тогда давай ещё 3 кило фарша.

**Квалификатор (ИИ-агент):**\
Прекрасно! Добавляем ещё 3 кг говяжьего фарша к вашему заказу. Напоминаю, что скидка 10% на первый заказ будет распространяться на весь ваш заказ.

Итак, ваш заказ:

* Стейк Рибай — 2 кг
* Говяжий фарш — 3 кг
* Специи для стейков

Теперь уточним адрес доставки. Куда доставить заказ? 😊

**Пользователь:**\
На Ленина 71-23.

**Квалификатор (ИИ-агентт):**\
Отлично! Доставим ваш заказ по адресу: Ленина, 71, кв. 23.

Осталось только уточнить ваше имя и номер телефона, чтобы курьер смог с вами связаться. 😊

**Пользователь:**\
Дмитрий, 89219702847.

**Квалификатор (ИИ-агент):**\
Дмитрий, ваш заказ оформлен! Мы доставим:

* Стейк Рибай — 2 кг
* Говяжий фарш — 3 кг
* Специи для стейков

Адрес доставки: Ленина, 71, кв. 23.\
Телефон для связи: 89219702847.

Ожидайте наш звонок для подтверждения. Спасибо, что выбрали "Мясной стиль"! 😊

**Результат выполнения функции:**\
![](https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FqbwefoIpWfHCSgzhWLPz%2Fimage.png?alt=media\&token=2b1f091c-7a8d-47f8-a273-23f824aaf68b)

**Отлично! ИИ-агент не только болтает в чате но и выполняет полезную работу.**

Далее мы добавим ИИ-агента в телеграмм. Создадим группу для курьеров и менеджеров и будем отправлять заявки туда.
