Appearance
Architektura Modułu MarketerAI - Przegląd
Spis Treści
Przegląd Modułu
MarketerAI to zaawansowany moduł konwersacyjny oparty na LLM (Large Language Models), który umożliwia interakcję użytkowników z systemem poprzez naturalny język. Moduł zapewnia:
- Inteligentną konwersację z AI agentami
- Wykonywanie akcji poprzez funkcje (tools)
- Hierarchiczną strukturę agentów (agent → subagent)
- Streaming odpowiedzi w czasie rzeczywistym
- Potwierdzanie akcji wymagających zgody użytkownika
- Wielowątkową konwersację (parent threads + subthreads)
- Integrację z bazą wiedzy (knowledge base)
Struktura Dokumentacji
Dokumentacja modułu MarketerAI została podzielona na następujące pliki:
1. MarketerAI_Architecture_Overview.md (ten plik)
Wysokopoziomowy przegląd architektury i struktury dokumentacji.
2. MarketerAI_Models.md
Szczegółowy opis modeli danych:
- Agent
- ChatThread
- ChatMessage
- ChatFunction
- UserMessage
- Relacje między modelami
3. MarketerAI_Services.md
Opis głównych serwisów:
- ChatService
- OpenAiService
- RuntimeChatFunctionsService
- SubagentThreadService
4. MarketerAI_Repositories.md
Repozytoria zarządzające danymi:
- ChatMessageRepository
- ChatFunctionRepository
5. MarketerAI_ChatFunctions.md
System funkcji (tools) dla AI:
- Abstrakcyjna klasa ChatFunction
- Kategorie funkcji
- Przykłady implementacji
- Walidacja i potwierdzenia
6. MarketerAI_Flow.md
Szczegółowy przepływ informacji:
- Od zapytania użytkownika do odpowiedzi AI
- Obsługa streamingu
- Mechanizm subagentów
- System potwierdzeń
7. MarketerAI_Events.md
System eventów i komunikacji real-time:
- Broadcasting events
- WebSocket integration
- Wszystkie typy eventów
8. MarketerAI_Job.md
Job ChatStream - szczegóły implementacji:
- Obsługa kolejki
- Scenariusze wykonania
- Error handling
Architektura Wysokopoziomowa
Główne Komponenty
1. Kontrolery (Controllers)
SembotChatController- główny endpoint API dla konwersacji
2. Jobs (Asynchroniczne Zadania)
ChatStream- główny job obsługujący streaming konwersacji
3. Serwisy (Services)
ChatService- orkiestracja logiki konwersacjiOpenAiService- komunikacja z API dostawców AIRuntimeChatFunctionsService- zarządzanie funkcjami runtimeSubagentThreadService- zarządzanie subagentami
4. Repozytoria (Repositories)
ChatMessageRepository- operacje na wiadomościachChatFunctionRepository- zarządzanie funkcjami
5. Modele (Models)
Agent- definicja agenta AIChatThread- wątek konwersacjiChatMessage- pojedyncza wiadomośćChatFunction- definicja funkcji/narzędzia
6. Funkcje (ChatFunctions)
- Abstrakcyjna klasa
ChatFunction - Implementacje specyficzne dla domeny (GoogleAds, Products, Analytics, itp.)
7. Eventy (Events)
- System broadcasting do komunikacji real-time z frontendem
- 17 różnych typów eventów
Technologie
Backend
- Laravel 10+ - framework aplikacyjny
- PHP 8.2+ - język programowania
- MySQL - baza danych (z recursive CTE)
- Redis - queue & cache
- Laravel Queue - przetwarzanie asynchroniczne
- Laravel Broadcasting - WebSocket events
AI/LLM Integration
- OpenAI API (GPT-4o, GPT-4o-mini, o1, o3-mini, GPT-5)
- Groq API - alternatywny dostawca
- OpenRouter API - agregator modeli
WebSocket
- Laravel Echo - client-side
- Pusher/Laravel Reverb - broadcasting backend
Monitoring
- OpenTelemetry - distributed tracing
- Laravel Telescope - debugging
Kluczowe Wzorce Projektowe
1. Repository Pattern
Separacja logiki dostępu do danych od logiki biznesowej.
2. Service Layer Pattern
Centralizacja logiki biznesowej w dedykowanych serwisach.
3. Strategy Pattern
Różne strategie dla różnych dostawców AI (OpenAI, Groq, OpenRouter).
4. Observer Pattern
System eventów Laravel do broadcasting.
5. Chain of Responsibility
Przepływ przez agenta → subagenta → funkcje.
6. Factory Pattern
Dynamiczne tworzenie instancji funkcji ChatFunction.
7. Template Method Pattern
Abstrakcyjna klasa ChatFunction z metodą handle().
Flow Diagram - Uproszczony
Najważniejsze Cechy
1. Streaming Odpowiedzi
Odpowiedzi AI są streamowane chunk po chunku do użytkownika przez WebSocket.
2. Hierarchia Agentów
Agent może delegować zadania do subagentów (specjalistycznych agentów).
3. System Potwierdzeń
Akcje wrażliwe (np. zmiana danych) wymagają potwierdzenia użytkownika.
4. Wielowątkowość
Subagenty tworzą sub-threads, pozwalając na izolację kontekstu.
5. Funkcje Runtime
Niektóre funkcje (np. searchKnowledgeBase) są dostępne dla wszystkich agentów bez konfiguracji w bazie.
6. Walidacja Argumentów
Każda funkcja ma własne reguły walidacji (Laravel Validation).
7. Baza Wiedzy
Integracja z systemem knowledge base przez Qdrant (vector search).
8. Multi-Provider Support
Obsługa wielu dostawców LLM (OpenAI, Groq, OpenRouter).
Kolejne Kroki
Aby poznać szczegóły implementacji, zapoznaj się z pozostałymi plikami dokumentacji:
- MarketerAI_Models.md - Zrozum strukturę danych
- MarketerAI_Services.md - Poznaj główne serwisy
- MarketerAI_Flow.md - Zobacz szczegółowy przepływ danych
- MarketerAI_ChatFunctions.md - Dowiedz się jak tworzyć nowe funkcje
- MarketerAI_Events.md - Zrozum komunikację real-time
- MarketerAI_Job.md - Poznaj szczegóły implementacji job'a
Diagram Związków Między Komponentami
Data utworzenia: 2025-11-26
Wersja: 1.0
Autor: Dokumentacja wygenerowana automatycznie