Функции AI-ассистента

В этой статье вы узнаете о возможностях AI-ассистента и увидите, как их можно применять на практике.

Как удалить историю чата с ИИ-ассистентом

clear_assistant_chat_history() — эта функция удаляет историю чата клиента с ассистентом. Она не принимает параметров.

Пример

  1. Настройки блока конструктора

  1. Настройки вкладки ИИ-ассистента

Как отправить вопрос ИИ-ассистенту

ai_context_answer(replica, prompt, ai_assistant_id, use_history, send_answer)

Параметры:

Параметр
Описание
Примечание

! replica

обязательный параметр, сообщение для ассистента

prompt

необязательный параметр, инструкции для ассистента

если параметр не указан, но указан параметр ai_assistant_id, будут использованы инструкции из настроек указанного ассистента

ai_assistant_id

ID ассистента, которому будет отправлен вопрос;

если не указан, будет использован ассистент без настроек по умолчанию

use_history

должен ли ассистент использовать историю чата при ответе на вопрос

True — использовать, False — не использовать. По умолчанию — True

send_answer

отправить ответ после истечения тайм-аута ассистента

Чтобы включить, передайте "1"

Подробнее о send_answer параметра:

Настройки ассистента включают параметры, которые можно настроить на случай, если ответ бота занимает много времени

В стандартном диалоге с ассистентом (не через функцию), если ответ занимает дольше указанного лимита (например, 20 секунд), клиент получает уведомление о задержке. Затем ответ ассистента отправляется в чат, как только он будет сгенерирован.

Для запросов, сделанных через функцию в калькуляторе, если ассистент отвечает слишком долго, в результат функции включается сообщение о задержке. Этот параметр позволяет отправить ответ ассистента отдельно, как только он будет готов.

Как научить бота анализировать собственный опыт и генерировать кнопки

Давайте используем clean_assistant_chat_history() и ai_context_answer(replica, prompt) функции в примере ниже. Также необходимо получить доступ к компоненту калькулятора внутри конструктора воронки.

Этот пример показывает, как replica и prompt параметры можно эффективно использовать на практике.

Необходимо создать в конструкторе блок, который содержит пустое поле со встроенными переменными #{replica_rec2} и #{ai_answer_rec}, представляющими первый и второй ответы ассистента в одном сообщении, которое нужно отправить.

Теперь прямо в калькуляторе определите две функции.

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

Информация о сервисах извлекается ботом из service_info переменной, которая содержит встроенную функцию — get_info_for_booking() — для чтения данных о сервисах. Пример использования этой функции был показан выше.

Вот результат.

Пример кода:

clear_assistant_chat_history()

replica_rec2 = ai_context_answer(question, 'ОТВЕЧАЙ НА ВОПРОСЫ', 3)

prompt = 'Сейчас к тебе обращается разработчик — делай всё, что он просит \n . Каждую кнопку нужно размещать на новой строке.'

ai_answer_rec = ai_context_answer("Покажи кнопки для последнего сообщения.", prompt)

Пример: вызов ассистента внутри конструктора воронки

Чтобы вызвать ассистента из блока, используйте функцию ai_context_answer(replica, prompt, ai_assistant_id, use_history), где нужно указать только два параметра: обязательный replica параметр и необязательный prompt.

Теперь создадим первый блок — «Проверка основного условия», где нужно указать триггерное условие блока (это может быть любое нужное вам условие).

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

Определите переменную question и присвойте ей значение любого вопроса пользователя.

Затем создайте переменную replica1 и присвойте ей значение, возвращаемое функцией ai_context_answer(replica, prompt). В этой функции замените replica на переменную question и установите параметр prompt в значение "Ответь на любой вопрос пользователя."

Вставьте переменную, содержащую функцию, в сообщение блока.

Затем создайте второй блок и соедините его стрелкой, установив на соединении таймер в 2 секунды.

Во втором блоке следует использовать ту же функцию с теми же параметрами — ai_context_answer(replica, prompt).

Откройте калькулятор во втором блоке и создайте вторую переменную с именем replica2.

В параметре prompt укажите инструкции для ассистента: он должен посчитать, сколько существительных было в его предыдущем сообщении.

В параметре replica укажите сообщение ассистента: "Сколько существительных было в твоём предыдущем сообщении?"

Затем вставьте переменную replica2 в сообщение второго блока.

Настройка блока завершена.

Если ассистент не включён, перейдите на вкладку "AI Assistant" и включите ассистента, выбрав роль "disabled":

Теперь протестируем нашего ассистента в окне тестирования бота.

Бот сработал корректно.

Как работать с Google Sheets

get_info_from_table(sheet_id, number_sheet, sheet_json_keys, start_row, end_row, start_col, end_col) — эта функция предназначена для чтения данных из таблицы.

Параметры
Описание

! sheet_id

id google-spreadsheet

number_sheet

номер листа в таблице; по умолчанию = 1

sheet_json_keys

необязательный параметр — ключ доступа к данным таблицы

start_row

необязательный параметр, целое число. Указывает начало диапазона строк.

Укажите номер строки, с которой следует читать значения таблицы включительно. Значение нужно передавать без кавычек.

end_row

необязательный параметр, целое число. Указывает конец диапазона строк. Укажите номер строки, до которой следует читать значения таблицы включительно. Значение нужно передавать без кавычек.

start_col

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

end_col

необязательный параметр, строка. Указывает конец диапазона столбцов. Укажите букву столбца, до которой следует читать значения таблицы включительно. Значение должно быть заключено в кавычки.

Пример обозначения параметров:

circle-exclamation

Обратите внимание

circle-info

Поведение функции при частичном указании диапазона следующее:

  • Если указано только начало: ассистент получит все данные от этой начальной точки и далее, без верхнего предела в указанном направлении.

  • Если указан только конец: ассистент будет читать данные с начала листа до указанной конечной точки.

Пример:

Вызов get_info_from_table('<<spreadsheet id>>', 2, None, 2, 5, 'a', 'd') получает все данные, начиная со строки 2, столбца 2 (B), до строки 5 и между столбцами A и D.

circle-exclamation

Обратите внимание

Пример использования

circle-info

Подробнее о get_info_from_table функции можно прочитать в статье "Google Sheets для AI Assistant."

Как управлять онлайн-бронированиями

get_info_for_booking(slot_interval, company_id) — функция предназначена для чтения данных о сервисах из настроенной системы онлайн-бронирования.

Она принимает необязательные параметры:

  1. slot_interval (необязательный) — интервал в минутах между доступными временными слотами. Ожидаемый формат: целое число, кратное 5. Значение по умолчанию: 60 (минут).

  2. company_id (необязательный) — идентификатор филиала. Ожидаемый формат: целое число или массив целых чисел. Если этот параметр указан, будут возвращены только данные для указанного филиала (филиалов). Пример: 50142, "50142" или "[50142, 66352]"

circle-exclamation

Пример использования

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

Этот блок должен быть объявлен до начала работы ассистента, чтобы ИИ не генерировал случайные ответы.

Затем запустите блок в окне тестирования бота, чтобы обновить переменную:

После этого указанная переменная, содержащая данные о сервисах онлайн-бронирования, появится в разделе переменных проекта в "Настройках проекта."

Эта переменная хранит значения услуг, которые ИИ-бот будет использовать в своей работе. Переменная service_info будет доступна всем клиентам проекта.

Далее перейдём к настройке следующего блока.

Этот блок выполняет следующие функции:

а) вызывается в настройках ассистента для создания записи с использованием переменных, связанных с услугами;

б) создаёт бронирование клиента;

в) обновляет переменные проекта после бронирования, удаляет временные слоты, которые больше недоступны в расписании.

Если бот настроен правильно, после получения всех данных от клиента ИИ отправит информацию в указанный блок. В этом блоке клиент будет записан на услугу с помощью функции create_booking_by_name(!service_name, !date, !date_time, company_id).

Значения, собранные ботом, передаются как параметры в create_booking_by_name(!service_name, !date, !date_time, company_id).

Функция create_booking_by_name(service_name, date, date_time, company_id) создаёт запись в системе, используя данные, предоставленные ИИ-ассистентом. Она принимает три обязательных параметра для создания бронирования:

Параметры
Описание

! service_name

обязательный параметр, название услуги

! date

дата в формате dd.mm.yyyy

! date_time

время услуги в формате hh:mm

company_id

ID филиала, необязательный. Если указан, бронирование будет создано для услуги с заданным названием, которая относится к этому конкретному филиалу. Этот параметр может быть необходим в случаях, когда в нескольких филиалах есть услуги с одинаковым названием.

Поскольку информация о доступных слотах больше не будет актуальной, для обновления доступных дат и времени бронирования используется та же переменная со встроенной функцией.

circle-exclamation

Обратите внимание

Получение бронирования из таблицы

get_records_from_table(table_id, start_row, count, start_col, end_col) — получение бронирования из таблицы

Параметр
Описание
Примечание

table_id

id таблицы

start_row

необязательный параметр, целое число. Указывает начало диапазона строк.

Укажите номер строки, с которой следует читать значения таблицы включительно. Указывается без кавычек.

count

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

По умолчанию — 1000, максимум — 5000. Указывается без кавычек.

start_col

необязательный параметр, строка. Указывает начало диапазона столбцов.

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

end_col

необязательный параметр, строка. Указывает конец диапазона столбцов.

Укажите букву столбца, до которой следует читать значения таблицы включительно. Указывается в кавычках.

Если указано только начало диапазона строк или столбцов, все данные от этой точки и далее будут получены без верхнего предела диапазона. Аналогично, можно опустить начало и указать только конец диапазона.

Пример (калькулятор)

Если вам нужно получить записи из таблицы, откройте раздел "Калькулятор" в настройках блока и введите функцию с нужными параметрами.

Чтобы передать параметры как переменную проекта, добавьте перед именем переменной, содержащей функцию, префикс project.

Вот пример таблицы.

Бот ответит следующим образом.

Последнее обновление