🤖 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)
Credit-aware generation: Her görsel üretiminden önce credit bakiyesi kontrol edilir
HD vs Standard: HD (1024x1024) = 1 credit, Standard = 0.5 credit
Automatic usage: Blog, Product, Portfolio AI otomatik görsel üretir
Manual generation: Admin panelinden manuel ürün görsel isteyebilir
Revised prompt tracking: DALL-E'nin revize ettiği prompt kaydedilir
MediaLibraryItem creation: Üretilen görseller MediaLibraryItem modelinde saklanır
Tenant disk force config: Queue job'unda tenant context null olabilir → disk config'i force eder
Generation source tracking: 'ai_generated' işareti ile AI tarafından üretilen görseller tespit edilir
OCR integration: PDF'deki görsellerin OCR metni AI prompt'una eklenir
Generation history: Üretim geçmişi (son 10 görsel) görüntülenebilir
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
Context-aware: Genel, teknik, ticari, medical vb. context seçilebilir
HTML preservation: HTML tag'leri korunabilir
Chunk-based: Uzun içerik parçalar halinde çeviriliyor
Streaming translation: Real-time çeviri feedbackı
Multi-language: Tüm dil kombinasyonları destekleniyor
Temperature control: 0.3 (çok düşük) → tutarlı, deterministik çeviri
Ç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:
Multi-tenant aware: Tüm servislerde tenant() kontrol et
Queue job'larda context: tenant() null dönebilir → manual tenant_id geçir
Fallback gerekli: Hiçbir zaman AI provider fail'inde crash yapma
Credit checks: Ağır işlemlerde credit bakiyesi kontrol et
Streaming support: Large content için streaming kullan
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
🤖 AI Module Detaylı İnceleme - 2025-12-02
Sistem: Multi-Tenant Laravel 11 | Providers: DeepSeek, OpenAI, Claude | Database: Central + Tenant DBs