✨ New Features: - 🤖 AI-powered mail template generation with Ollama - 📧 Test mail sending with preview - 🔧 Ollama server and model management - 🎨 Beautiful AI generation dialog in Templates page - ⚙️ Ollama settings panel with connection test Backend: - Add ollama.service.js - Ollama API integration - Add ollama.controller.js - Template generation endpoint - Add ollama.routes.js - /api/ollama/* routes - Support for multiple Ollama models (llama3.2, mistral, gemma) - JSON-formatted AI responses with subject + HTML body - Configurable server URL and model selection Frontend: - Settings: Ollama configuration panel - Server URL input - Model selection - Connection test with model listing - Templates: AI generation dialog - Company name, scenario, employee info inputs - Custom prompt for AI instructions - Auto-save to database - Test mail sending functionality Documentation: - OLLAMA_SETUP.md - Comprehensive setup guide - Installation instructions - Model recommendations - Usage examples - Troubleshooting Tech Stack: - Ollama API integration (REST) - Axios HTTP client - React dialogs with MUI - Self-hosted AI (privacy-friendly) - Zero external API dependencies Example Usage: Company: Garanti Bankası Scenario: Account security warning → AI generates professional phishing test mail in seconds!
7.5 KiB
🤖 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
curl -fsSL https://ollama.com/install.sh | sh
macOS
brew install ollama
Windows
2. Model İndirme
Önerilen modeller:
# 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
# Servis olarak başlat
ollama serve
# Veya systemd ile (Linux)
systemctl start ollama
systemctl enable ollama
⚙️ Yapılandırma
1. Panel Ayarları
- Ayarlar sayfasına gidin
- 🤖 Ollama AI Ayarları bölümünde:
- Ollama Server URL:
http://localhost:11434(varsayılan) - Model:
llama3.2(veya tercih ettiğiniz model)
- Ollama Server URL:
- Bağlantıyı Test Et butonuna tıklayın
- Mevcut modelleri görün
- Kaydet butonuna tıklayın
2. Ortam Değişkenleri (Opsiyonel)
.env dosyasında varsayılan değerleri ayarlayabilirsiniz:
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=llama3.2
🎯 Kullanım
AI ile Şablon Oluşturma
- Mail Şablonları sayfasına gidin
- AI ile Oluştur butonuna tıklayın
- 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
- Oluştur butonuna tıklayın
- AI, birkaç saniye içinde profesyonel bir mail şablonu oluşturacak
- Ş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
- Şablonlar listesinde istediğiniz şablonun yanındaki Test Mail butonuna tıklayın
- Test mail adresini girin
- Placeholder değerlerini düzenleyin:
- Şirket Adı
- Çalışan Adı
- Gönder butonuna tıklayın
- Test maili belirttiğiniz adrese gönderilir
🔧 Teknik Detaylar
API Endpoints
Ollama Bağlantı Testi
GET /api/ollama/test
Mevcut Modelleri Listeleme
GET /api/ollama/models
AI ile Şablon Oluşturma
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
POST /api/ollama/send-test-mail
Content-Type: application/json
{
"test_email": "test@example.com",
"subject": "Test Subject",
"body": "<html>...</html>",
"company_name": "Test Company",
"employee_name": "John Doe"
}
Ollama Servisi Yapılandırması
Backend servisi Ollama'yı otomatik olarak yapılandırır:
// 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": "<html>Mail içeriği</html>"
}
🛠️ Troubleshooting
Ollama bağlantı hatası
Hata: Ollama sunucusuna bağlanılamadı
Çözüm:
# 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:
# 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.jsdosyasında timeout süresini artırın: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ı
-
Ollama Erişimi: Ollama sunucusu varsayılan olarak
localhost:11434üzerinde çalışır. Production'da bu portu dışarıya açmayın. -
API Rate Limiting: Backend API'sinde rate limiting aktiftir, kötüye kullanımı önler.
-
Model Seçimi: Güvenilir ve test edilmiş modeller kullanın.
-
Veri Gizliliği: AI'ya gönderilen veriler Ollama sunucusunda işlenir, dışarıya gönderilmez (self-hosted).
📚 Kaynaklar
🆘 Destek
Sorun yaşıyorsanız:
- Ollama servisinin çalıştığını kontrol edin
- Model indirildiyse kontrol edin
- Panel Ayarlar sayfasında bağlantı testini yapın
- Backend loglarını kontrol edin:
backend/logs/
Not: Ollama entegrasyonu tamamen opsiyoneldir. Sistemi Ollama olmadan da kullanabilir, manuel olarak mail şablonları oluşturabilirsiniz.