Skip to content

Architektura Modułu MarketerAI - Przegląd ​

Spis Treści ​

  1. Przegląd Modułu
  2. Struktura Dokumentacji
  3. Architektura Wysokopoziomowa
  4. Główne Komponenty
  5. Technologie

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 konwersacji
  • OpenAiService - komunikacja z API dostawców AI
  • RuntimeChatFunctionsService - zarządzanie funkcjami runtime
  • SubagentThreadService - zarządzanie subagentami

4. Repozytoria (Repositories) ​

  • ChatMessageRepository - operacje na wiadomościach
  • ChatFunctionRepository - zarządzanie funkcjami

5. Modele (Models) ​

  • Agent - definicja agenta AI
  • ChatThread - wątek konwersacji
  • ChatMessage - 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:

  1. MarketerAI_Models.md - Zrozum strukturę danych
  2. MarketerAI_Services.md - Poznaj główne serwisy
  3. MarketerAI_Flow.md - Zobacz szczegółowy przepływ danych
  4. MarketerAI_ChatFunctions.md - Dowiedz się jak tworzyć nowe funkcje
  5. MarketerAI_Events.md - Zrozum komunikację real-time
  6. 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