Pizza Tracker
Pizza Tracker — це система моніторингу прогресу в реальному часі, яка інформує користувачів під час операцій AI Agent.
🍕 Що таке Pizza Tracker?
Натхненний відстеженням замовлень Domino's, Pizza Tracker показує прогрес у реальному часі, коли:
- Виконується Magic Search
- Запускаються інструменти AI Agent
- Обробляється аналіз настроїв (sentiment analysis)
- Збираються дані з кількох джерел (scraping multiple data sources)
🎨 Візуальний дизайн
Трекер відображається як панель у стилі терміналу з:
- Піктограмами статусу (⏳ очікує, 🔄 виконується, ✅ завершено)
- Індикаторами прогресу для тривалих операцій
- Статистикою в реальному часі (зібрані відгуки, оброблені сторінки)
- Приблизним часом до завершення
📊 Що він показує
Під час Magic Search
🔍 Finding Kununu profile... ✅
🚀 Starting scraping jobs... ✅
📊 Kununu: 156/200 reviews 🔄 78%
📊 Google: 45/50 reviews 🔄 90%
📊 Reddit: 12 discussions ✅
📊 Vacancies: 8 job posts ✅
🤖 Running sentiment analysis... ⏳
✅ Analysis complete!
Під час інструментів AI Agent
🤖 AI Agent is working...
├── search_company("BMW") ✅ Found
├── get_trust_score("BMW") 🔄 Calculating...
└── get_company_reviews("BMW") ⏳ Pending
🔧 Технічна реалізація
Компонент Frontend
// ChatWidget.jsx
<AgentStatusTracker toolCalls={toolCalls} isActive={isProcessing} />
Відповідь Backend
{
"response": "BMW has a Trust Score of 74...",
"tool_calls": [
{
"name": "search_company",
"args": { "company_name": "BMW" },
"status": "complete"
},
{
"name": "get_trust_score",
"args": { "company_name": "BMW" },
"status": "complete"
}
]
}
Оновлення WebSocket
Для тривалих операцій оновлення прогресу відбувається через WebSocket:
// Real-time updates
socket.on("scraping_progress", (data) => {
setProgress(data.reviews_collected);
setTotal(data.total_expected);
});
🎯 Переваги
Досвід користувача (User Experience)
- Зменшує тривогу – Користувачі знають, що щось відбувається
- Встановлює очікування – Показано приблизний час
- Будує довіру – Прозорість процесу
Залучення (Engagement)
- Утримання – Користувачі залишаються на сторінці
- Інтерес – Динамічні оновлення приваблюють
- Преміальний вигляд – Професійний досвід
📊 Стани прогресу
| Стан | Іконка | Значення |
|---|---|---|
| Очікує | ⏳ | Очікує на початок |
| Виконується | 🔄 | Обробляється зараз |
| Завершено | ✅ | Успішно завершено |
| Помилка | ❌ | Помилка (з повідомленням) |
🛠️ Конфігурація
Показати/Приховати
Трекер автоматично з'являється, коли інструменти використовуються:
- Показується: Коли
tool_callsмає елементи, що очікують - Приховується: Коли всі інструменти завершені
Інтервал опитування (Polling Interval)
Для завдань scraping прогрес опитується кожні 2 секунди:
const POLL_INTERVAL = 2000; // ms
Pizza Tracker створює преміальний, прозорий досвід під час операцій AI.