# Приклад інтеграції розширеного чату **Дата:** 2025-11-23 --- ## 🎯 Швидкий старт ### 1. Імпорт компонента ```tsx import { MicroDaoOrchestratorChatEnhanced } from '@/components/microdao/MicroDaoOrchestratorChatEnhanced'; ``` ### 2. Базове використання ```tsx function MyPage() { return (

Моя сторінка мікроДАО

); } ``` --- ## 📋 Приклади інтеграції ### Приклад 1: Фіксований чат (завжди видимий) ```tsx // src/pages/MicroDaoCabinetPage.tsx import React from 'react'; import { MicroDaoOrchestratorChatEnhanced } from '@/components/microdao/MicroDaoOrchestratorChatEnhanced'; export function MicroDaoCabinetPage() { const microDao = { id: 'helion', name: 'Helion Energy Union', orchestrator_agent_id: 'helion', }; return (
{/* Header */}

{microDao.name}

{/* Content Grid */}
{/* Main Content (2 columns) */}
{/* Ваш основний контент */}

Огляд

{/* ... */}
{/* Sidebar - Chat (1 column) */}
); } ``` --- ### Приклад 2: Модальне вікно ```tsx // src/pages/MicroDaoCabinetPage.tsx import React, { useState } from 'react'; import { MessageCircle } from 'lucide-react'; import { MicroDaoOrchestratorChatEnhanced } from '@/components/microdao/MicroDaoOrchestratorChatEnhanced'; export function MicroDaoCabinetPage() { const [showChat, setShowChat] = useState(false); return (
{/* Кнопка відкриття чату */} {/* Модальне вікно з чатом */} {showChat && (
setShowChat(false)} />
)} {/* Основний контент сторінки */}

Кабінет мікроДАО

{/* ... */}
); } ``` --- ### Приклад 3: Floating чат (знизу справа) ```tsx // src/pages/MicroDaoCabinetPage.tsx import React, { useState } from 'react'; import { MessageCircle, Minimize2 } from 'lucide-react'; import { MicroDaoOrchestratorChatEnhanced } from '@/components/microdao/MicroDaoOrchestratorChatEnhanced'; export function MicroDaoCabinetPage() { const [showChat, setShowChat] = useState(false); const [isMinimized, setIsMinimized] = useState(false); return (
{/* Основний контент */}

Кабінет мікроДАО

{/* ... */}
{/* Floating Chat Widget */} {!showChat ? ( // Кнопка відкриття ) : ( // Чат вікно
{/* Заголовок з кнопками */}
Чат з агентом
{/* Чат контент */} {!isMinimized && ( setShowChat(false)} /> )}
)}
); } ``` --- ### Приклад 4: Tabs з кількома агентами ```tsx // src/pages/MultiAgentChat.tsx import React, { useState } from 'react'; import { MicroDaoOrchestratorChatEnhanced } from '@/components/microdao/MicroDaoOrchestratorChatEnhanced'; const AGENTS = [ { id: 'helion', name: 'Helion', icon: '⚡' }, { id: 'greenfood', name: 'GREENFOOD', icon: '🌱' }, { id: 'yaromir', name: 'Yaromir', icon: '🧙' }, { id: 'daarwizz', name: 'DAARWIZZ', icon: '✨' }, ]; export function MultiAgentChat() { const [activeAgent, setActiveAgent] = useState('helion'); return (
{/* Tabs */}
{AGENTS.map((agent) => ( ))}
{/* Chat Content */}
{AGENTS.map((agent) => (
))}
); } ``` --- ### Приклад 5: З пропсами оркестратора ```tsx // src/pages/MicroDaoCabinetPage.tsx import React from 'react'; import { MicroDaoOrchestratorChatEnhanced } from '@/components/microdao/MicroDaoOrchestratorChatEnhanced'; export function MicroDaoCabinetPage() { const orchestrator = { id: 'helion', name: 'Helion Energy Union', description: 'AI-агент для управління енергетичною екосистемою', avatar: '/avatars/helion.png', }; return (
); } ``` --- ## 🔧 Використання Wrapper компонента ### Перемикання між базовим та розширеним чатом ```tsx // src/pages/MicroDaoCabinetPage.tsx import React, { useState } from 'react'; import { Settings } from 'lucide-react'; import { MicroDaoOrchestratorChatWrapper } from '@/components/microdao/MicroDaoOrchestratorChatWrapper'; export function MicroDaoCabinetPage() { const [useEnhanced, setUseEnhanced] = useState(false); return (
{/* Toggle для вибору версії */}
{/* Чат */}
); } ``` --- ## 🎨 Кастомізація стилів ### Зміна розмірів чату ```tsx
``` ### Зміна висоти вікна повідомлень ```css /* У вашому CSS файлі */ .messages-container { height: 600px; /* Замість стандартних 400px */ } ``` Або безпосередньо у компоненті: ```tsx // src/components/microdao/MicroDaoOrchestratorChatEnhanced.tsx // Знайти рядок:
// Змінити на:
``` --- ## 🔌 Backend інтеграція ### Підключення до реального API ```tsx // src/config/api.ts export const API_CONFIG = { routerUrl: import.meta.env.VITE_NODE1_URL || 'http://144.76.224.179:9102', apiUrl: import.meta.env.VITE_API_URL || 'http://144.76.224.179:8899', }; // Використання import { API_CONFIG } from '@/config/api'; import { MicroDaoOrchestratorChatEnhanced } from '@/components/microdao/MicroDaoOrchestratorChatEnhanced'; // Компонент автоматично використовує API_CONFIG ``` --- ## 📱 Responsive версія ### Адаптивний layout для мобільних ```tsx export function MobileResponsiveChatPage() { const [showChat, setShowChat] = useState(false); return (
{/* Desktop - Sidebar */}
{/* Mobile - Full Screen Modal */}
{showChat && (
setShowChat(false)} />
)}
{/* Main Content */}
{/* Ваш контент */}
); } ``` --- ## ✅ Чекліст інтеграції Перед запуском перевірте: - [ ] Імпортовано компонент `MicroDaoOrchestratorChatEnhanced` - [ ] Передано `orchestratorAgentId` або `orchestrator` prop - [ ] Налаштовано `VITE_NODE1_URL` у `.env` - [ ] Перевірено responsive версію - [ ] Протестовано базовий чат - [ ] Протестовано мультимодальні функції - [ ] Перевірено базу знань - [ ] Налаштовано системний промпт - [ ] (Опційно) Підключено Telegram бота --- ## 🐛 Troubleshooting ### Проблема: Чат не відображається **Рішення:** ```tsx // Перевірте, чи передано orchestratorAgentId ``` ### Проблема: Голосовий ввід не працює **Рішення:** - Переконайтеся, що браузер підтримує Web Speech API (Chrome, Edge) - Дайте дозвіл на використання мікрофону - Використовуйте HTTPS (локально можна HTTP) ### Проблема: Файли не завантажуються **Рішення:** - Перевірте розмір файлу (макс. 50 МБ) - Перевірте тип файлу (PDF, DOC, DOCX, TXT, MD, JSON) - Перевірте підключення до Backend API --- ## 📞 Підтримка Якщо виникли питання або проблеми: 1. Перевірте документацію у `ORCHESTRATOR-CHAT-ENHANCED.md` 2. Перегляньте приклади вище 3. Перевірте логи браузера (F12 → Console) 4. Перевірте логи Router (`docker logs dagi-router`)