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

У цій статті ви дізнаєтеся про можливості AI-асистента та побачите, як їх можна застосувати на практиці.

Як видалити історію чату з AI-асистентом

clear_assistant_chat_history() — ця функція видаляє історію чату клієнта з асистентом. Вона не приймає параметрів.

Приклад

  1. Налаштування блоку конструктора

  1. Налаштування вкладки AI Assistant

Як надіслати запит AI-асистенту

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

Параметри:

Параметр
Опис
Примітка

! replica

обов’язковий параметр, повідомлення для асистента

prompt

необов’язковий параметр, інструкції для асистента

якщо параметр не вказано, але задано параметр ai_assistant_id, будуть використані інструкції з налаштувань указаного асистента

ai_assistant_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

ідентифікатор Google-таблиці

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

Приклад використання

Спочатку потрібно підготувати блок, який оновлює інформацію про всі послуги після того, як налаштування філії буде задано в розділі "Послуги".

Цей блок потрібно оголосити до початку роботи асистента, щоб AI не генерував випадкові відповіді.

Далі запустіть блок у вікні тестування бота, щоб оновити змінну:

Після цього вказана змінна, що містить дані сервісу онлайн-бронювання, з’явиться в розділі змінних проєкту в "Налаштуваннях проєкту."

Ця змінна зберігає значення послуг, які AI-бот використовуватиме у своїй роботі. Змінна service_info буде доступна всім клієнтам проєкту.

Далі перейдемо до налаштування наступного блока.

Цей блок виконує такі функції:

а) він викликається в налаштуваннях асистента для створення запису з використанням змінних, пов’язаних із послугами;

b) він створює бронювання для клієнта;

c) оновлює змінні проєкту після бронювання, видаляє часові слоти, які більше недоступні в розкладі.

Якщо бот налаштовано правильно, після отримання всіх даних від клієнта AI надішле інформацію до вказаного блока. У цьому блоці клієнта буде записано на послугу за допомогою функції 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) створює бронювання в системі, використовуючи дані, надані AI-асистентом. Вона приймає три обов’язкові параметри для створення бронювання:

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

! service_name

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

! date

дата у форматі dd.mm.yyyy

! date_time

час послуги у форматі hh:mm

company_id

ідентифікатор філії, необов’язково. Якщо вказано, бронювання буде створено для послуги з указаною назвою, що належить саме цій філії. Цей параметр може бути потрібен у випадках, коли в кількох філіях є послуги з однаковою назвою.

Оскільки інформація про доступні слоти більше не буде актуальною, для оновлення доступних дат і часу бронювання використовується та сама змінна з вбудованою функцією.

circle-exclamation

Зверніть увагу

Отримання бронювання з таблиці

get_records_from_table(table_id, start_row, count, start_col, end_col) — отримання бронювання з таблиці

Параметр
Опис
Примітка

table_id

ідентифікатор таблиці

start_row

необов’язковий параметр, ціле число. Визначає початок діапазону рядків.

Вкажіть номер рядка, з якого слід читати значення таблиці включно. Вказується без лапок.

count

необов’язковий параметр, ціле число. Визначає кількість рядків для отримання.

За замовчуванням — 1000, максимум — 5000. Вказується без лапок.

start_col

необов’язковий параметр, рядок. Визначає початок діапазону стовпців.

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

end_col

необов’язковий параметр, рядок. Визначає кінець діапазону стовпців.

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

Якщо вказано лише початок діапазону рядків або стовпців, усі дані від цієї точки далі будуть отримані без верхньої межі діапазону. Аналогічно можна опустити початок і вказати лише кінець діапазону.

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

Якщо вам потрібно отримати записи з таблиці, відкрийте розділ "Калькулятор" у налаштуваннях блока та введіть функцію з потрібними параметрами.

Щоб передати параметри як змінну проєкту, додайте перед назвою змінної, що містить функцію, префікс project.

Ось приклад таблиці.

Бот відповість так:

Last updated