# 🤖 Ollama AI Entegrasyonu ## Genel Bakış Phishing Test Yönetim Paneli, **Ollama AI** entegrasyonu ile otomatik mail şablonları oluşturabilir. Bu özellik, gerçekçi ve özelleştirilebilir phishing test maillerini dakikalar içinde üretmenizi sağlar. ## 🚀 Özellikler ### 1. **AI ile Mail Şablonu Oluşturma** - Şirket adı, senaryo ve hedef bilgilerine göre otomatik mail oluşturma - HTML formatında profesyonel mail içeriği - Özelleştirilebilir placeholder'lar (`{{company_name}}`, `{{employee_name}}`, `{{tracking_url}}`) - Otomatik konu satırı (subject) oluşturma ### 2. **Test Mail Gönderimi** - Oluşturulan şablonları test etme - Placeholder'ları doldurarak gerçek görünüm - Herhangi bir mail adresine test gönderimi ### 3. **Ollama Yönetimi** - Ollama sunucu bağlantı testi - Mevcut modelleri listeleme - Model seçimi ve yönetimi ## 📋 Gereksinimler ### 1. Ollama Kurulumu #### Linux ```bash curl -fsSL https://ollama.com/install.sh | sh ``` #### macOS ```bash brew install ollama ``` #### Windows [Ollama Windows İndirme](https://ollama.com/download/windows) ### 2. Model İndirme Önerilen modeller: ```bash # Llama 3.2 (Önerilen - hızlı ve etkili) ollama pull llama3.2 # Alternatifler: ollama pull mistral # Hızlı, compact ollama pull gemma # Google'ın modeli ollama pull llama2 # Eski ama stabil ``` ### 3. Ollama Servisini Başlatma ```bash # Servis olarak başlat ollama serve # Veya systemd ile (Linux) systemctl start ollama systemctl enable ollama ``` ## ⚙️ Yapılandırma ### 1. Panel Ayarları 1. **Ayarlar** sayfasına gidin 2. **🤖 Ollama AI Ayarları** bölümünde: - **Ollama Server URL**: `http://localhost:11434` (varsayılan) - **Model**: `llama3.2` (veya tercih ettiğiniz model) 3. **Bağlantıyı Test Et** butonuna tıklayın 4. Mevcut modelleri görün 5. **Kaydet** butonuna tıklayın ### 2. Ortam Değişkenleri (Opsiyonel) `.env` dosyasında varsayılan değerleri ayarlayabilirsiniz: ```bash OLLAMA_URL=http://localhost:11434 OLLAMA_MODEL=llama3.2 ``` ## 🎯 Kullanım ### AI ile Şablon Oluşturma 1. **Mail Şablonları** sayfasına gidin 2. **AI ile Oluştur** butonuna tıklayın 3. Formu doldurun: - **Şablon Adı**: Şablona verilecek isim - **Template Type**: Şablon tipi (örn: `bank`, `hr`, `it_support`) - **Şirket Adı**: Hedef şirket (örn: "Acme Corporation") - **Senaryo**: Mail senaryosu (örn: "Şifre sıfırlama maili") - **Çalışan Bilgisi** (opsiyonel): Hedef çalışan hakkında bilgi - **Ek Talimatlar** (opsiyonel): AI'ya özel talimatlar 4. **Oluştur** butonuna tıklayın 5. AI, birkaç saniye içinde profesyonel bir mail şablonu oluşturacak 6. Şablon otomatik olarak veritabanına kaydedilir ### Senaryo Örnekleri #### Banka Şablonu ``` Senaryo: "Hesap güvenlik uyarısı - şüpheli aktivite tespit edildi ve doğrulama gerekiyor" Şirket: Garanti Bankası Çalışan Bilgisi: Bireysel müşteri ``` #### İK Şablonu ``` Senaryo: "Yıllık performans değerlendirme formu doldurulması gerekiyor" Şirket: Acme Tech Çalışan Bilgisi: Yazılım geliştirici Ek Talimat: Resmi ve profesyonel dil kullan ``` #### IT Destek Şablonu ``` Senaryo: "Sistem güncellemesi için kullanıcı bilgilerinin doğrulanması" Şirket: XYZ Corporation Çalışan Bilgisi: Ofis çalışanı Ek Talimat: Teknik terimler kullan, aciliyet vurgusu yap ``` ### Test Mail Gönderme 1. Şablonlar listesinde istediğiniz şablonun yanındaki **Test Mail** butonuna tıklayın 2. Test mail adresini girin 3. Placeholder değerlerini düzenleyin: - Şirket Adı - Çalışan Adı 4. **Gönder** butonuna tıklayın 5. Test maili belirttiğiniz adrese gönderilir ## 🔧 Teknik Detaylar ### API Endpoints #### Ollama Bağlantı Testi ```http GET /api/ollama/test ``` #### Mevcut Modelleri Listeleme ```http GET /api/ollama/models ``` #### AI ile Şablon Oluşturma ```http POST /api/ollama/generate-template Content-Type: application/json { "company_name": "Acme Corp", "scenario": "Şifre sıfırlama", "employee_info": "IT personeli", "custom_prompt": "Aciliyet vurgusu yap", "template_name": "Acme Şifre Sıfırlama", "template_type": "it_support" } ``` #### Test Mail Gönderme ```http POST /api/ollama/send-test-mail Content-Type: application/json { "test_email": "test@example.com", "subject": "Test Subject", "body": "...", "company_name": "Test Company", "employee_name": "John Doe" } ``` ### Ollama Servisi Yapılandırması Backend servisi Ollama'yı otomatik olarak yapılandırır: ```javascript // backend/src/services/ollama.service.js class OllamaService { constructor() { this.serverUrl = 'http://localhost:11434'; this.model = 'llama3.2'; } } ``` ### AI Prompt Yapısı AI'ya gönderilen prompt: ``` System: Sen profesyonel bir güvenlik uzmanısın ve phishing test maileri oluşturuyorsun. User: Aşağıdaki bilgilere göre bir phishing test mail şablonu oluştur: - Şirket: [company_name] - Senaryo: [scenario] - Çalışan Bilgisi: [employee_info] - Ek Talimatlar: [custom_prompt] Yanıt JSON formatında: { "subject": "Mail konusu", "body": "Mail içeriği" } ``` ## 🛠️ Troubleshooting ### Ollama bağlantı hatası **Hata**: `Ollama sunucusuna bağlanılamadı` **Çözüm**: ```bash # Ollama servisinin çalıştığını kontrol edin curl http://localhost:11434/api/tags # Servis çalışmıyorsa başlatın ollama serve ``` ### Model bulunamadı hatası **Hata**: `Model not found` **Çözüm**: ```bash # Modeli indirin ollama pull llama3.2 # Mevcut modelleri listeleyin ollama list ``` ### Yavaş yanıt süresi **Çözüm**: - Daha küçük bir model kullanın (`mistral`, `llama3.2:1b`) - GPU kullanımını etkinleştirin (CUDA destekli sistem gerekir) - RAM ve CPU kaynaklarını artırın ### Timeout hatası **Hata**: `AI yanıt veremedi: timeout` **Çözüm**: - Backend `ollama.service.js` dosyasında timeout süresini artırın: ```javascript timeout: 180000, // 3 dakika ``` ## 📊 Performans ### Model Karşılaştırması | Model | Boyut | Hız | Kalite | RAM | |-------|-------|-----|--------|-----| | llama3.2 | 2GB | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 8GB | | mistral | 4GB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 8GB | | gemma | 2GB | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 6GB | | llama2 | 4GB | ⭐⭐⭐ | ⭐⭐⭐⭐ | 8GB | ### Yanıt Süreleri (Ortalama) - **CPU**: 30-60 saniye - **GPU (CUDA)**: 5-15 saniye - **Apple Silicon (M1/M2)**: 10-25 saniye ## 🔒 Güvenlik Notları 1. **Ollama Erişimi**: Ollama sunucusu varsayılan olarak `localhost:11434` üzerinde çalışır. Production'da bu portu dışarıya açmayın. 2. **API Rate Limiting**: Backend API'sinde rate limiting aktiftir, kötüye kullanımı önler. 3. **Model Seçimi**: Güvenilir ve test edilmiş modeller kullanın. 4. **Veri Gizliliği**: AI'ya gönderilen veriler Ollama sunucusunda işlenir, dışarıya gönderilmez (self-hosted). ## 📚 Kaynaklar - [Ollama Resmi Dokümantasyon](https://github.com/ollama/ollama) - [Ollama Model Library](https://ollama.com/library) - [Llama 3.2 Model Bilgileri](https://ollama.com/library/llama3.2) ## 🆘 Destek Sorun yaşıyorsanız: 1. Ollama servisinin çalıştığını kontrol edin 2. Model indirildiyse kontrol edin 3. Panel **Ayarlar** sayfasında bağlantı testini yapın 4. Backend loglarını kontrol edin: `backend/logs/` --- **Not**: Ollama entegrasyonu tamamen opsiyoneldir. Sistemi Ollama olmadan da kullanabilir, manuel olarak mail şablonları oluşturabilirsiniz.