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

В статье покажем функции, существующие для AI-ассистента, и покажем их применение на практике

Удалить историю переписки с ассистентом.

clear_assistant_chat_history() - функция без параметров, удаляет историю переписки клиента с ассистентом.

Пример

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

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

Отправить вопрос ассистенту

ai_context_answer(replica, prompt, ai_assistant_id, use_history)

Параметры:

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

! replica

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

prompt

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

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

ai_assistant_id

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

Если не указан, то будет ассистент без предустановленных настроек

use_history

должен ли ассистент использовать историю переписки с ним для ответа на вопрос.

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

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

В данном примере воспользуемся функциями 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 вкладываем в сообщение второго блока:

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

Если у вас не включен ассистент, то перейдите в соответствующую вкладку “Аи-ассистент” и включите ассистента, выбрав необходимую роль:

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

Наш бот отработал корректно.

Видеогид

Для работы с google-таблицами

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

параметрыописание

! sheet_id

id google-таблицы

number_sheet

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

sheet_json_keys

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

start_row

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

end_row

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

start_col

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

end_col

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

Обращаем внимание!

Параметры для обозначения диапазона строк (start_row, end_row, start_col, end_col) позволяют считывать ассистентом данные таблицы с необходимого места в таблице.

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

get_info_from_table('<<id таблицы>>', 2, None, 2, 5, 'a', 'd')

Обращаем внимание!

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

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

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

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

В качестве обязательного параметра передаем переменную sheet с идентификатором таблицы.

Далее вызываем в тестовом режиме данный блок для обновления информации в переменных проекта:

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

Вложить информацию о товаре в ассистента можно следующим образом:

Результат:

Для работы с онлайн-записью

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

Функция не принимает параметров.

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

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

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

После чего вы увидите в переменных проекта в разделе "Настройки проекта" указанную переменную со значением услуг для онлайн-записи.

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

Далее переходим к настройке следующего блока:

Данный блок преследует следующие функции:

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

б) он создает запись клиента;

в) обновляет переменные проекта после записи: то есть убирает уже несвободные окошки в графике.

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

В параметры create_booking_by_name() записываются значения, собранные ботом.

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

Обращаем внимание!

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

Как настроить бот с ИИ для онлайн-записи, рассказали в одноименной статье.

Last updated