Teknik Dokümantasyon - 6 Mart 2026
Bu sistem, ürün bilgilerinden otomatik olarak Instagram reklam posterleri üretir. OpenAI yaratıcı içerik (slogan, subtitle, specs) üretir, Gemini Nano Banana Pro görsel tasarımı yapar.
┌─────────────────────────────────────────────────────────────────────────┐
│ POSTER ÜRETİM AKIŞI │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. ÜRÜN VERİSİ │
│ ├─ Ürün adı, model, özellikler │
│ ├─ Ürün görseli (PNG, şeffaf arka plan) │
│ └─ Tenant bilgileri (marka, watermark) │
│ ↓ │
│ 2. OPENAI (GPT-4) │
│ ├─ Input: Ürün bilgileri + yaratıcı brief │
│ ├─ Output: JSON {slogan, subtitle, specs, gemini_prompt} │
│ └─ Tüm yaratıcı kararlar AI'ya bırakılır │
│ ↓ │
│ 3. GEMINI NANO BANANA PRO │
│ ├─ Input: OpenAI'nin ürettiği prompt + referans görsel │
│ ├─ Aspect Ratio: 4:5 (1152x1536 px) │
│ ├─ Output: PNG poster (watermark alanı boş) │
│ └─ Premium tipografi, glassmorphism, endüstriyel arka plan │
│ ↓ │
│ 4. PHP INTERVENTION IMAGE │
│ ├─ Poster resize (watermark boyutuna) │
│ ├─ Watermark overlay (tenant logosu + iletişim) │
│ └─ Final JPEG/PNG kaydet │
│ ↓ │
│ 5. SONUÇ │
│ └─ Instagram-ready poster (1152x1536 px, 4:5 ratio) │
│ │
└─────────────────────────────────────────────────────────────────────────┘
| Model | Sağlayıcı | Kullanım | Maliyet |
|---|---|---|---|
gpt-4 |
OpenAI | İçerik üretimi, prompt mühendisliği | ~$0.03/1K token |
nano-banana-pro-preview |
Google Gemini | Yüksek kalite görsel üretimi | $0.039/görsel |
gemini-2.5-flash-image |
Google Gemini | Hızlı görsel üretimi (alternatif) | $0.039/görsel |
| Aspect Ratio | 4:5 |
| Çözünürlük | 1152 x 1536 px |
| Format | PNG / JPEG |
| Konum | Alt 200px |
| İçerik | Logo + Telefon + Website |
| Dosya | social-w.png |
┌────────────────────────────┐ │ TOP (0-25%) │ ← Slogan + Subtitle │ Tipografi alanı │ ├────────────────────────────┤ │ │ │ MIDDLE (25-70%) │ ← Ürün HERO │ Forklift görseli │ │ │ ├────────────────────────────┤ │ SPECS (70-85%) │ ← Özellikler (subtle) │ Glassmorphism paneller │ ├────────────────────────────┤ │ EMPTY (85-100%) │ ← WATERMARK İÇİN BOŞ │ 200px tamamen boş │ └────────────────────────────┘
Bu prompt OpenAI'ye gönderilir. AI hem içerik hem de Gemini için prompt üretir.
Sen dünyaca ünlü bir reklam ajansının yaratıcı direktörüsün.
GÖREV: Instagram reklam posteri için Gemini AI prompt'u hazırla.
ÜRÜN:
- Marka: {MARKA}
- Model: {MODEL}
- Tip: {TIP}
- Özellikler: {OZELLIKLER}
TÜM YARATICI KARARLAR SENİN:
- Slogan, subtitle, badge, specs gösterilsin mi, tipografi, renk, layout, efektler... HEPSİ SENİN
ZORUNLU KURALLAR (SADECE 3 TANE):
1. ⛔ TÜM METİNLER TÜRKÇE OLMALI - İngilizce kelime YASAK
2. ⛔ Referans görseldeki forklift AYNEN kullanılmalı - rengi, şekli, detayları DEĞİŞMEMELİ
3. ⛔ Alt 200 piksel TAMAMEN BOŞ (watermark için)
Bunlar dışında TAMAMEN ÖZGÜRSÜN. Premium, yaratıcı, dikkat çekici bir reklam tasarla.
JSON formatında döndür:
{
"creative_concept": "Konsept açıklaması (Türkçe)",
"gemini_prompt": "Detaylı İngilizce Gemini prompt"
}
OpenAI'nin ürettiği prompt Gemini'ye gönderilir. Örnek başarılı prompt:
Create an Instagram advertisement poster featuring the IXTIF CPD20FVL 2.0 Ton Li-Ion Forklift. CRITICAL - PRODUCT IMAGE: The forklift must be depicted EXACTLY as in the reference image: red and black color, same shape and details. Do NOT change the forklift colors or design. Copy it faithfully. CONTENT (ALL TURKISH - NO ENGLISH): - Slogan: "Güçlü Performans, Akıllı Çözümler" (bold, premium typography) - Subtitle: "İş Gücünüzü Artırın" (elegant supporting text) - Badge/Specs: "2.0 Ton Kapasite" | "80V/205Ah Li-Ion" | "Çift Tahrikli Motor" (subtle, minimal) DESIGN: Use modern and bold typography. The layout should be sleek, with dynamic graphic elements that emphasize the forklift power and efficiency. Premium, eye-catching design that conveys innovation and reliability. MANDATORY: - Bottom 200 pixels must be COMPLETELY EMPTY for watermark - No logo or brand name - All text in TURKISH only Aspect ratio: 4:5 (1152x1536 pixels)
use Modules\AI\App\Services\GeminiService;
$gemini = app(GeminiService::class);
// Nano Banana Pro kullan (yüksek kalite)
$gemini->useNanoBananaPro();
// Poster üret
$result = $gemini->generateImage($prompt, [
'aspect_ratio' => '4:5',
'reference_image' => '/path/to/product.png',
'save_path' => '/path/to/output/poster.png'
]);
if ($result['success']) {
echo "Poster oluşturuldu: " . $result['saved_path'];
echo "Süre: " . $result['time_ms'] . "ms";
}
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
$manager = new ImageManager(new Driver());
// Poster ve watermark yükle
$poster = $manager->read('/path/to/poster.png');
$watermark = $manager->read('/path/to/watermark.png');
// Watermark boyutuna resize
$poster->resize($watermark->width(), $watermark->height());
// Watermark overlay
$poster->place($watermark, 'top-left', 0, 0);
// Kaydet
$poster->save('/path/to/final-poster.png');
use Modules\AI\App\Services\OpenAIService;
use Modules\AI\App\Services\GeminiService;
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
// 1. ÜRÜN VERİSİ
$product = [
'brand' => 'İXTİF',
'model' => 'CPD20FVL',
'type' => '2.0 Ton Li-Ion Forklift',
'features' => '80V/205Ah Li-Ion, çift tahrikli motor, entegre şarj',
'image_path' => '/path/to/product.png',
];
// 2. OPENAI - İçerik üret
$openai = app(OpenAIService::class);
$contentPrompt = "... OpenAI prompt (yukarıdaki) ...";
$response = $openai->ask($contentPrompt, false, ['max_tokens' => 2000]);
$content = json_decode($response, true);
// 3. GEMINI - Poster üret
$gemini = app(GeminiService::class);
$gemini->useNanoBananaPro();
$result = $gemini->generateImage($content['gemini_prompt'], [
'aspect_ratio' => '4:5',
'reference_image' => $product['image_path'],
'save_path' => '/tmp/poster-raw.png'
]);
// 4. WATERMARK - Overlay ekle
$manager = new ImageManager(new Driver());
$poster = $manager->read('/tmp/poster-raw.png');
$watermark = $manager->read('/path/to/watermark.png');
$poster->resize($watermark->width(), $watermark->height());
$poster->place($watermark, 'top-left', 0, 0);
$poster->save('/path/to/final-poster.png');
echo "✅ Poster hazır!";
Modules/AI/
├── App/
│ └── Services/
│ └── GeminiService.php ← Ana görsel üretim servisi
├── config/
│ └── config.php ← Model konfigürasyonları
└── Providers/
└── AIServiceProvider.php
Modules/SocialMedia/ ← (Opsiyonel) Tam modül
├── App/
│ └── Services/
│ ├── PosterGeneratorService.php ← Poster üretim servisi
│ ├── TextGeneratorService.php ← OpenAI içerik servisi
│ └── WatermarkService.php ← Watermark overlay
└── config/
└── tenants/ ← Tenant bazlı ayarlar
├── ixtif.php
└── muzibu.php
public/
├── social-w.png ← Watermark template
└── posters/ ← Üretilen posterler
└── {tenant}/
└── {date}/
└── poster-{id}.png
| Metod | Açıklama |
|---|---|
useNanoBananaPro() |
Yüksek kalite model seç (nano-banana-pro-preview) |
useNanoBanana2() |
Hızlı model seç (gemini-2.5-flash-image) |
generateImage($prompt, $options) |
Görsel üret (aspect_ratio, reference_image, save_path) |
ask($prompt) |
Text generation (slogan üretimi için) |
getUsageStats() |
Kullanım istatistikleri ve bütçe durumu |
• Rate limiting (günlük/saatlik/dakikalık)
• Circuit breaker (10 ardışık hata = 1dk bekleme)
• Loop detection (25 aynı istek = engel)
• Cost tracking & budget warning
| Slogan | "Güçlü Performans, Akıllı Çözümler" |
| Subtitle | "İş Gücünüzü Artırın" |
| Specs | Glassmorphism paneller |
| Arka Plan | Endüstriyel, dramatik |
| Üretim Süresi | ~23 saniye |
# Google Gemini API GEMINI_API_KEY=your-api-key-here # OpenAI API OPENAI_API_KEY=your-openai-key-here
'gemini' => [
'api_key' => env('GEMINI_API_KEY', ''),
'base_url' => 'https://generativelanguage.googleapis.com/v1beta',
'model' => 'gemini-2.5-flash',
'image_model' => 'gemini-2.5-flash-image',
'image_models' => [
'nano_banana_2' => 'gemini-2.5-flash-image',
'nano_banana_pro' => 'nano-banana-pro-preview',
],
'supported_aspect_ratios' => [
'1:1', '2:3', '3:2', '3:4', '4:3',
'4:5', '5:4', '9:16', '16:9', '21:9',
],
'image_timeout' => 180,
],