🤖Modules/AI - Detaylı Sistem İncelemesi

📅 Tarih: 2025-12-02 | 🎯 Tenant: Multi-Tenant (tuufi.com, ixtif.com, muzibu.com) | 📊 Boyut: 240+ servis, 25+ model, 50+ controller

🏗️Sistem Mimarisi & Yapısı

Temel Tasarım İlkeleri

🎯 Module-Agnostic GLOBAL Sistem

AI Modules, tüm modüller için GLOBAL AI Content Generation desteği sağlar:

  • Herhangi bir modül AI özellikleri kullanabilir (Blog, Shop, Portfolio vb.)
  • Standart Interface: AIContentGeneratable contract ile tutarlı implementasyon
  • Trait Sistemi: HasAIContentGeneration trait ile plug-and-play entegrasyon
  • Multi-Provider: DeepSeek, Claude, OpenAI destek
  • Credit Management: Otomatik kredi takibi ve hesaplama
  • Queue Support: Asenkron işlemler için AIContentGenerationJob

📦 Services (240+)

  • AIService (Ana servis)
  • AIImageGenerationService
  • AdvancedSeoIntegrationService
  • AITranslationService
  • ContentGeneratorService
  • AssistantTypeResolver
  • FlowExecutor (Workflow)
  • ve daha pek çok...

🎮 Controllers (50+)

  • AIChatController
  • AIFeaturesController
  • AIImageController
  • TranslationController
  • AnalyticsController
  • BulkOperationController
  • WorkflowController
  • ve daha pek çok...

📊 Models (25)

  • AIConversation
  • AIFeature
  • AICreditUsage
  • Flow (Workflow)
  • AITenantProfile
  • AIProvider
  • Prompt
  • ve daha pek çok...

💼 Jobs (15+)

  • AIContentGenerationJob
  • TranslateContentJob
  • FileAnalysisJob
  • BulkOperationJob
  • TranslationChunkJob
  • ProcessBulkOperation
  • ve daha pek çok...

🔄Workflow Sistemi (AI Chat & Shop Assistant)

Workflow Mimarisi

💡 Bilgi: Chat Assistant ve Shop Assistant workflow-based mimarisinde çalışırlar. Node-based visual editor ile akışlar tasarlanabilir.

📋 Flow Executor - Temel Çalışma Mekanizması

FlowExecutor, workflow tanımını okur ve adım adım node'ları çalıştırır:

1. Flow Yükleme Flow tanımından başlangıç node'unu bulur (start_node)
2. Paralel Grup Tespiti Flow'daki paralel node gruplarını keşfeder (performans için)
3. Node Çalıştırma Her node'u NodeExecutor ile çalıştırır ve sonuçları context'e ekler
4. Paralel Çalıştırma Eğer paralel grup varsa ParallelNodeExecutor ile aynı anda çalıştırır
5. Edge (Bağlantı) Takibi edges dizisinde next node'u belirler (from → to veya source → target)
6. Bitiriş End node'a ulaşıncaya veya circular reference'a kadar devam eder

Node Türleri

├── AIResponseNode (AI yanıt üretir) ├── WelcomeNode (Hoşgeldin mesajı) ├── MessageSaverNode (Konuşma kayıt eder) ├── CategoryDetectionNode (Kullanıcı intentini tespit eder) ├── ProductSearchNode (Ürün arama) ├── StockSorterNode (Stok sıralama) ├── MeilisearchSettingsNode (Arama ayarları) ├── ContextBuilderNode (Context oluşturma) └── EndNode (Akış sonu)

Shop Assistant Workflow Örneği

Tipik Shop Assistant Akışı:
Welcome Node → Category Detection → Product Search → Stock Sorter → AI Response → Message Saver → End
🎯 Avantajlar:
  • Visual editor ile kolay tasarım (no-code)
  • Paralel işlem desteği (verimlilik)
  • Tenant-aware context (multi-tenant)
  • Streaming support (real-time yanıtlar)
  • Hata yönetimi ve fallback mekanizması

🛒Shop Assistant - E-ticaret AI Chatbot

Temel Özellikler

🔍 Smart Product Search

  • Meilisearch entegrasyonu: Hızlı ve akıllı ürün araması
  • Fallback database arama: Meilisearch yoksa LIKE sorgusu
  • Category filtresi: Kategori bazında arama
  • Tenant-aware: Her tenant'ın kendi ürünleri
  • Multilingual: Ürün başlıkları ve açıklamaları çevirili

📞 Telefon Numarası Tespiti & Telegram Bildirimleri

Chat'te telefon numarası toplandığında otomatik Telegram'a bildirim gönderir:

🔄 İş Akışı: 1. User: "Beni ara: 0212 123 45 67" 2. PhoneNumberDetectionService: Numarayı tespit eder 3. TelegramNotificationService: Admine bildirim gönderir 4. Bildirim içeriği: - Telefon numarası (formatlanmış) - Konuşma özeti - Admin panele direkt link

AssistantTypeResolver - Modul Tespiti

🎯 Intent Tabanlı Modül Seçimi

Kullanıcı mesajından intent tespit ederek doğru arama servisi seçer:

  • ShopSearchService: Ürün araması, fiyat, stok sorguları
  • MusicSearchService: Şarkı, sanatçı, albüm (Muzibu)
  • ContentSearchService: Blog yazıları, makaleler
  • BookingSearchService: Rezervasyon, randevu
  • GenericSearchService: Varsayılan (fallback)
⚠️ Dikkat: ShopSearchService sadece Tenant 2 ve 3 için özel arama kullanır (Tenant2ProductSearchService). Diğer tenant'lar generic database araması yapar.

📝AI Blog Writer - Blog AI & SEO Entegrasyonu

Blog Yazısı Üretim Süreci

🚀 Modern Blog Content Generation

AIContentGeneratorService, makine öğrenmesi ile optimize edilmiş blog içeriği üretir:

  • Template-based prompting: Kalite kontrollü content
  • SEO-aware: Advanced SEO Integration ile optimize
  • Unlimited token: Ultra-long content desteği
  • Editorial brief extraction: Prompt'tan terim haritası çeker
  • Pattern-based content: Mevcut blog stili analiz eder
  • PDF entegrasyonu: PDF'den içerik extract edip AI'ye geçer

SEO Entegrasyonu - AdvancedSeoIntegrationService

📊 15+ SEO Metrik Analizi

SEO Analiz Ağırlıkları: - Content Quality (18%) - İçerik kalitesi, uzunluk - Title Optimization (15%) - Başlık etiket optimizasyonu - Meta Description (12%) - Meta açıklama - Heading Structure (13%) - H1-H6 hiyerarşisi - Keyword Density (10%) - Anahtar kelime yoğunluğu - Internal Links (8%) - İç bağlantılar - Image Optimization (6%) - Alt tag'ler, boyutlar - Mobile Optimization (6%) - Mobil uyumlu - Schema Markup (7%) - Yapılandırılmış veriler - URL Structure (5%) - Temiz URL'ler

Content Optimization Templates

Content Type Min Word Count Max Keyword Density Min Headings Recommended Images
Blog Post 800 kelime 2.5% 3+ 2+
Product Page 300 kelime 3.0% 2+ 5+
Landing Page 600 kelime 2.0% 4+ 3+
Category Page 400 kelime 2.8% 3+ 4+
✅ SEO Özellikleri:
  • Real-time SEO scoring (0-100)
  • Competitive analysis ve benchmarking
  • Automated improvement suggestions
  • Keyword density analysis
  • Schema.org markup recommendations

🖼️AI Image Generation - DALL-E 3 Entegrasyonu

11 Altın Kural (Sistem Tasarımından Çıkarılan)

  1. Credit-aware generation: Her görsel üretiminden önce credit bakiyesi kontrol edilir
  2. HD vs Standard: HD (1024x1024) = 1 credit, Standard = 0.5 credit
  3. Automatic usage: Blog, Product, Portfolio AI otomatik görsel üretir
  4. Manual generation: Admin panelinden manuel ürün görsel isteyebilir
  5. Revised prompt tracking: DALL-E'nin revize ettiği prompt kaydedilir
  6. MediaLibraryItem creation: Üretilen görseller MediaLibraryItem modelinde saklanır
  7. Tenant disk force config: Queue job'unda tenant context null olabilir → disk config'i force eder
  8. Generation source tracking: 'ai_generated' işareti ile AI tarafından üretilen görseller tespit edilir
  9. OCR integration: PDF'deki görsellerin OCR metni AI prompt'una eklenir
  10. Generation history: Üretim geçmişi (son 10 görsel) görüntülenebilir
  11. Silent error handling: Görsel üretimi başarısız olsa da sistem çalışmaya devam eder (fallback)

Görsel Üretim Akışı

Manual (Admin Panel):
Admin → Prompt gir → generate() → DALL-E API → MediaLibraryItem oluştur → Credit düş
Automatic (Blog/Product/Portfolio):
Content created → generateForBlog/Product/Portfolio() → generateAutomatic() → DALL-E API → MediaLibraryItem oluştur → Credit düş

Metodlar

🔧 Temel Metodlar

  • generate(prompt, options): Basit görsel üretimi
  • generateWithRevision(prompt, options): DALL-E'nin revize prompt'unu döndür
  • generateForBlog(title, content): Blog başlığından otomatik
  • generateForProduct(name, category): Ürün isminden otomatik
  • generateForPortfolio(name, desc): Portfolio projesinden otomatik
  • getHistory(limit): Üretim geçmişini göster
⚠️ Tenant Context Sorunu: Queue job'unda tenant() fonksiyonu null dönebilir. Çözüm: MediaLibraryItem oluşturmadan önce tenant disk config'i force edilir.

🌐Çoklu Dil Çevirisi - AI Translation Service

Çevirinin Temel Mekanizması

🚀 Ultra Assertive Translation

AITranslationService, çeviriyi garantiye almak için özel tasarlanmıştır:

translateText(text, fromLang, toLang, options): 1. Boş metin kontrolü (skip) 2. Aynı dil kontrolü (skip) 3. Fast HTML modu seçeneği (opsiyonel) 4. Ultra Assertive Prompt oluşturma - Çeviri MUTLAKA yapılacak (zero refusal) - Context (genel, teknik, ticari vb.) - Preserve HTML seçeneği 5. AI Service çağrısı 6. Response parsing ve validation 7. Fallback: Eğer boş gelirse orijinal text dön

Çevirinin Özellikleri

Çevirinin Kullanıldığı Yerler

✅ Shop Assistant - Ürün açıklamalarını dile çevirir ✅ Blog Writer - Blog başlıklarını çevirir ✅ GlobalAIMonitoringService - Log metinlerini çevirir ✅ SmartProfileBuilder - Tenant profil bilgisini çevirir ✅ ContentBuilder - Sayfa içeriğini çevirir ✅ Bulk operations - Toplu çeviriler (100+ sayfa)
⚠️ Dikkat: Çeviri very resource-intensive işlemdir. Bulk çeviriler için job queue'da çalışır.

📢Telegram Entegrasyonu - Real-time Bildirimler

Telefon Numarası Toplaması & Alerting

🔔 Real-time Telegram Notifications

AI chatbot'ta telefon numarası toplandığında Telegram'a instant alert gönderilir:

  • PhoneNumberDetectionService: Regex ile telefon numarası tespit eder
  • TelegramNotificationService: Telegram Bot API'yi çağırır
  • HTML formatting: Telegram mesajları HTML format'da (daha okunabilir)
  • Conversation summary: Konuşmanın özetini ekler
  • Admin panel link: Doğrudan admin panel'e erişim linki

Telegram Mesajı Örneği

📞 YENİ TELEFON NUMARASI TOPLANDI! Telefon: +90 212 123 45 67, +90 531 234 56 78 Konuşma ID: conv_abc123def456 Mesaj Sayısı: 12 Tenant: 2 (ixtif.com) İlk Mesaj: "Merhaba, depo lift alabilir misiniz..." Admin Panel: https://ixtif.com/admin/conversations/conv_abc123def456 ━━━━━━━━━━━━━━━━━━━━ Konuşma Özeti: - Müşteri: Depo liftine ilgi duyuyor - Kampanya: Black Friday specials - İhtiyaç: 2 adet forklift...

Konfigürasyon (Config)

.env dosyası: TELEGRAM_BOT_TOKEN=123456:ABCDEF... TELEGRAM_CHAT_ID=987654321 config/services.php: 'telegram-bot-api' => [ 'token' => env('TELEGRAM_BOT_TOKEN'), 'chat_id' => env('TELEGRAM_CHAT_ID'), ] Test: TelegramNotificationService->testConnection()
✅ Avantajlar:
  • Instant notifications (< 1 saniye)
  • Konuşma konteksti hemen görülür
  • Admin linki sayesinde quick action
  • Multi-tenant support (tenant ID gösterilir)
  • Test connection komutu var

📋Universal Input System V3 - Dynamic Form Processing

Ne Nedir?

🎯 AI-Powered Form Builder & Processing

Herhangi bir prompt'dan otomatik form oluşturan sistem. Blog Writer, Shop Assistant gibi kompleks formları dinamik şekilde oluşturur:

  • Config-based: 24KB+ configuration file
  • Input groups: Related inputs gruplama (advanced organization)
  • Smart defaults: Önceki değerleri hatırlar
  • Dynamic options: Veritabanından dinamik dropdown'lar
  • Validation rules: Otomatik validation
  • Performance monitoring: Response time, memory tracking
  • Caching system: Form structure, defaults, options cache'lenir

Konfigürasyon Sistem

Dosya: Modules/AI/config/universal-input-system.php (24.4 KB) Temel Bölümler: - performance (max submissions, timeouts, memory limits) - cache (TTL, tags, auto-clear, warming) - database (soft deletes, audit, indexes, pooling) - ai (provider config, rate limiting) - validation (max length, rules, custom) - ui (themes, layout, fields, icons) - features (form types, input groups)

Performance Özellikleri

Setting Değer Açıklama
Max concurrent submissions 10 Aynı anda işlenebilecek form
Request timeout 30 sec Form işlem timeout'u
Memory limit 256 MB Form processing memory
Max input size 1 MB Tek field max boyutu
Cache warming Disabled Popular forms pre-cache
✅ Avantajlar:
  • No-code form building
  • AI integration (smart defaults, validation)
  • Multi-tenant support (tenant-aware)
  • Extensive caching (performance)
  • Audit trail (compliance)

💰Credit Management & Pricing

Credit Yapısı

💳 Flexible Credit System

  • AICreditPackage: Satın alınabilir paketler
  • AICreditPurchase: Satın alma geçmişi
  • AICreditUsage: Detaylı credit tüketim log'u
  • ModelBasedCreditService: Model-specific credit pricing
  • AICreditService: Credit balance management
  • CreditWarningService: Low balance alerts

Credit Maliyetleri

Image Generation: - HD (1024x1024): 1 credit - Standard: 0.5 credit Content Generation: - Simple: 3 credits - Moderate: 5 credits - Complex: 10 credits - Template-based: 2 credits - PDF enhanced: 8 credits (was 15 - 47% savings) Translation: - Per 1000 chars: 1 credit
⚠️ Dikkat: PDF enhanced content generation maliyeti 15'ten 8'e düşürüldü (%47 tasarruf).

🗄️Veritabanı Yapısı & Modeller

Tablolar (30+)

CENTRAL & TENANT MIGRATIONS: Central (tuufi_4ekim): ├── ai_providers - AI provider tanımları ├── ai_provider_models - Provider modeleri ├── ai_credit_packages - Credit paketleri ├── ai_credit_purchases - Satın alma kayıtları ├── ai_credit_usages - Credit tüketim detayları ├── ai_model_credit_rates - Model fiyatlandırması └── ai_conversations - Merkezi konuşma kaydı Tenant (her tenant'ın kendi DB'si): ├── ai_features - AI özellikleri ├── ai_feature_categories - Kategori gruplaması ├── ai_feature_inputs - Form input tanımları ├── ai_feature_prompts - Feature-specific promptlar ├── ai_input_groups - Input grouplaması ├── ai_input_options - Dropdown options ├── ai_prompts - Prompt library ├── ai_messages - Chat mesajları ├── ai_flows - Workflow tanımları ├── ai_tenant_profiles - Tenant AI profile ├── ai_profile_questions - Profil soruları ├── ai_profile_sectors - Sektor bilgisi ├── ai_dynamic_data_sources - Dinamik data kaynakları ├── ai_module_integrations - Modül integrasyonları ├── ai_context_rules - Context engine rules ├── ai_bulk_operations - Toplu işlemler ├── ai_translation_mappings - Çeviri eşlemeleri ├── ai_usage_analytics - Analytics data ├── ai_prompt_cache - Prompt caching └── ai_tenant_debug_logs - Debug logu

🔌AI Providers & Service Selection

Desteklenen Providerlar

Provider Service Class Models Status
DeepSeek DeepSeekService deepseek-chat ✅ Aktif
OpenAI OpenAIService gpt-4, gpt-3.5 ✅ Aktif
Anthropic ClaudeService claude-3-sonnet ✅ Aktif
DALL-E 3 DallE3Provider dall-e-3 ✅ Image gen

Silent Fallback Sistemi

🔄 Automatic Failover

Eğer primary provider fail olursa otomatik fallback provider'a geçer:

SilentFallbackService -> Tries: 1. Primary provider (config'de belirtilen) 2. Fallback provider (automatic) 3. Cloud fallback (if available) Örnek: DeepSeek fail → Otomatik OpenAI'ya geçer
✅ Avantajlar:
  • Sistem asla down olmaz (provider faili durumunda)
  • User deneyimi kesintisiz
  • Automatic provider selection
  • Model-based credit calculation

Performance & Optimizasyonlar

Sistem Optimizasyonları

🚀 Cache & Query Optimization

  • Tenant-aware caching: Her tenant'ın kendi cache'i
  • Prompt caching: Sık kullanılan promptlar cache'lenir
  • Analytics caching: 5 minute TTL
  • Settings global cache: Site settings global cache'de (2 query limit)
  • Database indexes: shop_products_optimized_idx vb.
  • Smart chunking: Uzun metinler parçalara bölünür
  • Parallel execution: Workflow'da paralel node'lar aynı anda çalışır
  • Queue optimization: Ağır işlemler background queue'da
✅ Başarı Metrikleri (2025-11-30):
  • Currency N+1 fixed (1,440 query → 0)
  • Settings global cache (700+ query → 2)
  • CPU Load: 18.44 → 7.09 (%61 azalma)
  • Horizon Process: 112 → 38 (%66 azalma)
  • Site Hızı: 45s → 2-3s (15-22x hızlanma)

⚠️Önemli Notlar & Best Practices

🚨 KRİTİK KURALLAR:
  1. Multi-tenant aware: Tüm servislerde tenant() kontrol et
  2. Queue job'larda context: tenant() null dönebilir → manual tenant_id geçir
  3. Fallback gerekli: Hiçbir zaman AI provider fail'inde crash yapma
  4. Credit checks: Ağır işlemlerde credit bakiyesi kontrol et
  5. Streaming support: Large content için streaming kullan
  6. Error logging: Tüm AI işlemlerinde hata log'la

📚 Best Practices

  • Use cache wisely: Cache invalidation carefully
  • Prompt engineering: System message'ı özelleştir
  • Context building: ContextEngine ile detaylı context oluştur
  • Testing: AITestPanel ile prompt'ları test et
  • Monitoring: GlobalAIMonitoringService ile oversight
  • Analytics: ConversationAnalyticsController ile metrikler izle