Функції AI-асистента
У цій статті ви дізнаєтеся про можливості AI-асистента та побачите, як їх можна застосувати на практиці.
Як видалити історію чату з AI-асистентом
clear_assistant_chat_history() — ця функція видаляє історію чату клієнта з асистентом. Вона не приймає параметрів.
Приклад
Налаштування блоку конструктора

Налаштування вкладки 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
необов’язковий параметр, рядок. Визначає кінець діапазону стовпців. Вкажіть літеру стовпця, до якого слід читати значення таблиці включно. Значення має бути взяте в лапки.
Приклад запису параметрів:


Зверніть увагу
Параметри для вказання діапазону рядків і стовпців (start_row, end_row, start_col, end_col) дають змогу асистенту читати дані таблиці, починаючи з потрібного місця всередині таблиці.
Поведінка функції під час часткового задання діапазону така:
Якщо задано лише початок: асистент отримає усі дані від цієї початкової точки далі, без верхньої межі у вказаному напрямку.
Якщо задано лише кінець: асистент читатиме дані від початку аркуша до вказаної кінцевої точки.
Приклад:
Виклик get_info_from_table('<<spreadsheet id>>', 2, None, 2, 5, 'a', 'd') отримує всі дані, починаючи з рядка 2, стовпця 2 (B), до рядка 5 і між стовпцями A та D.
Зверніть увагу
Щоб оптимізувати продуктивність і надійність, ми рекомендуємо кешувати всі дані з вашої Google-таблиці у змінні проєкту під час роботи з нею.
Основні переваги:
Покращена продуктивність: значно пришвидшує час відповіді чат-бота завдяки доступу до локальних змінних замість запиту до зовнішньої таблиці для кожного звернення.
Підвищена надійність: мінімізує помилки, пов’язані із затримкою мережі, квотами API або дозволами на доступ до таблиці.
Узгодженість даних: зберігання даних у налаштуваннях проєкту забезпечує одночасний і узгоджений доступ для всіх користувачів до одного й того самого набору даних, запобігаючи розбіжностям під час оновлень.
Приклад використання
Ви можете прочитати більше про get_info_from_table функцію в статті "Google Sheets для AI Assistant."
Як керувати онлайн-бронюванням
get_info_for_booking(slot_interval, company_id) — функція призначена для зчитування даних про послуги з налаштованої системи онлайн-бронювання.
Вона приймає необов’язкові параметри:
slot_interval (необов’язковий) — інтервал у хвилинах між доступними часовими слотами. Очікуваний формат: ціле число, кратне 5. Значення за замовчуванням: 60 (хвилин).
company_id необов’язковий) — ідентифікатор філії. Очікуваний формат: ціле число або масив цілих чисел. Якщо цей параметр задано, буде повернуто лише дані для вказаної філії (філій). Приклад: 50142, "50142" або "[50142, 66352]"
Не рекомендується задавати дуже мале значення (наприклад, менше 30), оскільки асистент згенерує забагато часових слотів.
Приклад використання
Спочатку потрібно підготувати блок, який оновлює інформацію про всі послуги після того, як налаштування філії буде задано в розділі "Послуги".
Цей блок потрібно оголосити до початку роботи асистента, щоб 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
ідентифікатор філії, необов’язково. Якщо вказано, бронювання буде створено для послуги з указаною назвою, що належить саме цій філії. Цей параметр може бути потрібен у випадках, коли в кількох філіях є послуги з однаковою назвою.
Оскільки інформація про доступні слоти більше не буде актуальною, для оновлення доступних дат і часу бронювання використовується та сама змінна з вбудованою функцією.

Зверніть увагу
Якщо в розкладі, персоналі або послугах є будь-які зміни, запустіть блок, який містить змінну проєкту з вбудованою функцією, у тестовому режимі (див. рис. Блок 1).
Отримання бронювання з таблиці
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