Use Case 12: Copilot + Custom Data lookup
Optional track — не потрібен для завершення базового, просунутого рівня або capstone. Проходьте після Use Case 13 або якщо ваш проєкт використовує Copilot.
Необхідні права та доступ
| Модуль / налаштування | Навіщо |
|---|---|
| Scenario Builder | Основний bot (routing) + Copilot bot |
| Fast Line Pro | Categorizer для каталогу |
| Custom Data | Модель products і seed-дані |
| Settings → Bots | Другий bot для Copilot (або process sections) |
| Runs / Chat preview | Self-check lookup found / not found |
Бізнес-контекст
Клієнт пише вільним текстом («хочу воїна з Півночі»). Copilot-бот класифікує запит, шукає запис у Custom Data і повертає результат. Основний клієнтський bot лише маршрутизує (кнопка «Каталог»), а AI-heavy логіка живе в Copilot.
Очікуваний результат
- Окремий Copilot bot (або process-секція) з categorizer
- Custom Data
products: поля name, category, faction, price - Categorizer → filters → lookup у CD → MessageKeyboard з результатом
- Edges found / not found / error — усі оброблені
- Розуміння: categorizer у Copilot, не в основному client bot
Архітектура
[Основний training bot]
MessageKeyboard «Каталог» → routing до Copilot (call / process)
[Copilot bot]
WaitForInput (запит) → action_fastline_pro (categorizer)
→ Router (valid category/faction)
→ custom_modules__get / filter
├─ found → MessageKeyboard (назва, ціна)
├─ not_found → «Не знайдено» + опційно handoff
└─ error → повідомлення про помилку
| Тип бота | Роль |
|---|---|
| Основний | Клієнт пише в канал; кнопки меню |
| Copilot | AI + CD lookup |
| Macro (Use Case 8) | Ініціатор — оператор, не клієнт |
Покрокова реалізація
Крок 0. Custom Data — модель products
- Custom Data → створіть модель
products. - Поля:
name,category,faction,price. - Імпортуйте seed з products-training.csv або додайте 5–10 рядків вручну.
| Поле | Приклад |
|---|---|
| name | Geralt of Rivia |
| category | warrior |
| faction | north |
| price | 120 |
Alias моделі products має точно збігатися з module_name у action lookup.
Крок 1. Copilot bot і categorizer
- Settings → Bots → створіть bot «Training Copilot» (або використайте process sections за докою Copilot).
- Fast Line Pro → Chat-bot «Training Catalog Categorizer».
- Prompt: секція Use Case 12 (каталог products) з categorizer-training.txt.
Вихід categorizer — JSON, наприклад: {"faction":"north","category":"warrior"}.
Перевірте в Fast Line Pro окремо перед сценарієм.
Крок 2. WaitForInput — запит клієнта
| Параметр | Значення |
|---|---|
| messageText | «Опишіть, кого шукаєте (клас, фракція)» |
| outputVariable | catalog_query |
Edges: → action_fastline_pro.
Крок 3. Action — categorizer
| node_params | Значення |
|---|---|
agent_name |
Training Catalog Categorizer |
user_input |
{{catalog_query}} |
save_response |
catalog_filters |
Edges: основний → parse / Router; fallback → «Уточніть запит».
Крок 4. Lookup у Custom Data
Використайте custom_modules__get або filter action з параметрами за вашим інстансом:
| node_params (приклад) | Значення |
|---|---|
module_name |
products |
| filters | category, faction з categorizer |
Edges (обов'язково):
| Edge | Куди |
|---|---|
| success / found | MessageKeyboard: {{name}} — {{price}} |
| not found | «За вашим запитом нічого не знайдено» |
| error | «Помилка пошуку. Спробуйте пізніше.» |
Крок 5. Routing з основного bot
У основному training bot (capstone):
| Кнопка | Дія |
|---|---|
| «Каталог» | Виклик Copilot process / call_node за Copilot overview |
Основний bot не містить categorizer — лише маршрутизацію.
Troubleshooting
| Симптом | Що перевірити |
|---|---|
| «Де categorizer?» | У Copilot bot, не в client bot |
| Lookup порожній | module_name = alias CD; filters відповідають seed CSV |
| JSON categorizer не парситься | Prompt — один рядок JSON; перевірте Fast Line Pro |
| Copilot не викликається | Routing з основного bot; ім'я process / bot у call |
Self-check (Runs)
Самостійне завдання
Додайте edge handoff на оператора, якщо not found двічі поспіль (лічильник у state або constants).
Довідкові посилання
Пов'язаний optional: AI-агент з пошуком у каталозі — lookup у тому ж bot без Copilot.