Update prompts.py
Browse files- prompts.py +38 -1
prompts.py
CHANGED
|
@@ -4,6 +4,8 @@ Trek Bisiklet Chatbot Sistem Promptları
|
|
| 4 |
Kategorize edilmiş ve optimize edilmiş prompt konfigürasyonu
|
| 5 |
"""
|
| 6 |
|
|
|
|
|
|
|
| 7 |
SYSTEM_PROMPTS = [
|
| 8 |
# 1. TEMEL KİMLİK VE ROL
|
| 9 |
{
|
|
@@ -107,18 +109,53 @@ SYSTEM_PROMPTS = [
|
|
| 107 |
{
|
| 108 |
"role": "system",
|
| 109 |
"category": "ekim_kampanya",
|
|
|
|
|
|
|
| 110 |
"content": "EKİM KAMPANYASI (1-31 Ekim 2025):\nTrek Bicycle Turkey, Ekim ayı boyunca seçili bisiklet modellerinde vade farksız 8 taksit imkanı sunmaktadır.\n\nKAPSAMDAKİ MODELLER:\n✅ MADONE Serisi (Tüm varyantlar): SLR 9, SLR 7, SL 7, SL 6, SL 5\n✅ MARLIN Serisi (Tüm varyantlar): Marlin 9, 8, 7, 6, 5, 4\n✅ FX Serisi (Tüm varyantlar): FX Sport 6, Sport 5, FX 3 Disc, FX 2 Disc, FX 1 Disc\n✅ TÜM ELEKTRİKLİ BİSİKLETLER: Rail, Powerfly, Fuel EXe, Domane+, FX+, DS+, Verve+, Townie+, Allant+\n\nKAMPANYA KOŞULLARI:\n• Minimum alışveriş: 10.000 TL\n• Tüm kredi kartları geçerli (Visa, Mastercard, Amex)\n• Vade farkı YOK - Peşin fiyatına 8 taksit\n• Online ve mağaza alışverişlerinde geçerli\n• Ücretsiz kargo dahil\n• Ücretsiz ilk servis dahil\n• İndirimli ürünlerle birleştirilebilir\n• Eski bisiklet takası ile birleştirilebilir\n\nKAPSAM DIŞI MODELLER:\n❌ Émonda, Domane (elektriksiz), Fuel EX (elektriksiz), Top Fuel, Slash, Remedy, Supercaliber, X-Caliber, Roscoe, Procaliber, Dual Sport (elektriksiz), District, Checkpoint, Verve (elektriksiz)\n\nÖNEMLİ NOTLAR:\n• Émonda isteyen müşteriye → Madone önerin (kampanyada)\n• Fuel EX isteyen müşteriye → Marlin 9 veya Rail (e-MTB) önerin\n• X-Caliber isteyen müşteriye → Marlin serisi önerin\n• Checkpoint isteyen müşteriye → FX serisi önerin\n\nÖRNEK CEVAPLAR:\n'Evet! Ekim ayında Madone, Marlin, FX serileri ve tüm elektrikli bisikletlerde vade farksız 8 taksit kampanyamız var!'\n'Madone SL 6 kampanyaya dahil! Vade farksız 8 taksit ile alabilirsiniz.'\n'Maalesef Fuel EX kampanyada değil, ancak Marlin 9 veya elektrikli Rail modellerimiz kampanyada!'\n'Tüm elektrikli bisikletlerimiz kampanya kapsamında - Rail, Powerfly, Domane+ ve daha fazlası!'"
|
| 111 |
}
|
| 112 |
]
|
| 113 |
|
|
|
|
| 114 |
def get_system_prompts():
|
| 115 |
"""Sistem promptlarını döndür"""
|
| 116 |
return SYSTEM_PROMPTS
|
| 117 |
|
|
|
|
| 118 |
def get_prompts_by_category(category):
|
| 119 |
"""Belirli kategorideki promptları döndür"""
|
| 120 |
return [prompt for prompt in SYSTEM_PROMPTS if prompt.get("category") == category]
|
| 121 |
|
|
|
|
| 122 |
def get_prompt_content_only():
|
| 123 |
"""Sadece content kısmını döndür (eski format uyumluluğu için)"""
|
| 124 |
-
return [{"role": prompt["role"], "content": prompt["content"]} for prompt in SYSTEM_PROMPTS]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
Kategorize edilmiş ve optimize edilmiş prompt konfigürasyonu
|
| 5 |
"""
|
| 6 |
|
| 7 |
+
from datetime import datetime
|
| 8 |
+
|
| 9 |
SYSTEM_PROMPTS = [
|
| 10 |
# 1. TEMEL KİMLİK VE ROL
|
| 11 |
{
|
|
|
|
| 109 |
{
|
| 110 |
"role": "system",
|
| 111 |
"category": "ekim_kampanya",
|
| 112 |
+
"start_date": "2025-10-01",
|
| 113 |
+
"end_date": "2025-10-31",
|
| 114 |
"content": "EKİM KAMPANYASI (1-31 Ekim 2025):\nTrek Bicycle Turkey, Ekim ayı boyunca seçili bisiklet modellerinde vade farksız 8 taksit imkanı sunmaktadır.\n\nKAPSAMDAKİ MODELLER:\n✅ MADONE Serisi (Tüm varyantlar): SLR 9, SLR 7, SL 7, SL 6, SL 5\n✅ MARLIN Serisi (Tüm varyantlar): Marlin 9, 8, 7, 6, 5, 4\n✅ FX Serisi (Tüm varyantlar): FX Sport 6, Sport 5, FX 3 Disc, FX 2 Disc, FX 1 Disc\n✅ TÜM ELEKTRİKLİ BİSİKLETLER: Rail, Powerfly, Fuel EXe, Domane+, FX+, DS+, Verve+, Townie+, Allant+\n\nKAMPANYA KOŞULLARI:\n• Minimum alışveriş: 10.000 TL\n• Tüm kredi kartları geçerli (Visa, Mastercard, Amex)\n• Vade farkı YOK - Peşin fiyatına 8 taksit\n• Online ve mağaza alışverişlerinde geçerli\n• Ücretsiz kargo dahil\n• Ücretsiz ilk servis dahil\n• İndirimli ürünlerle birleştirilebilir\n• Eski bisiklet takası ile birleştirilebilir\n\nKAPSAM DIŞI MODELLER:\n❌ Émonda, Domane (elektriksiz), Fuel EX (elektriksiz), Top Fuel, Slash, Remedy, Supercaliber, X-Caliber, Roscoe, Procaliber, Dual Sport (elektriksiz), District, Checkpoint, Verve (elektriksiz)\n\nÖNEMLİ NOTLAR:\n• Émonda isteyen müşteriye → Madone önerin (kampanyada)\n• Fuel EX isteyen müşteriye → Marlin 9 veya Rail (e-MTB) önerin\n• X-Caliber isteyen müşteriye → Marlin serisi önerin\n• Checkpoint isteyen müşteriye → FX serisi önerin\n\nÖRNEK CEVAPLAR:\n'Evet! Ekim ayında Madone, Marlin, FX serileri ve tüm elektrikli bisikletlerde vade farksız 8 taksit kampanyamız var!'\n'Madone SL 6 kampanyaya dahil! Vade farksız 8 taksit ile alabilirsiniz.'\n'Maalesef Fuel EX kampanyada değil, ancak Marlin 9 veya elektrikli Rail modellerimiz kampanyada!'\n'Tüm elektrikli bisikletlerimiz kampanya kapsamında - Rail, Powerfly, Domane+ ve daha fazlası!'"
|
| 115 |
}
|
| 116 |
]
|
| 117 |
|
| 118 |
+
|
| 119 |
def get_system_prompts():
|
| 120 |
"""Sistem promptlarını döndür"""
|
| 121 |
return SYSTEM_PROMPTS
|
| 122 |
|
| 123 |
+
|
| 124 |
def get_prompts_by_category(category):
|
| 125 |
"""Belirli kategorideki promptları döndür"""
|
| 126 |
return [prompt for prompt in SYSTEM_PROMPTS if prompt.get("category") == category]
|
| 127 |
|
| 128 |
+
|
| 129 |
def get_prompt_content_only():
|
| 130 |
"""Sadece content kısmını döndür (eski format uyumluluğu için)"""
|
| 131 |
+
return [{"role": prompt["role"], "content": prompt["content"]} for prompt in SYSTEM_PROMPTS]
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
def get_active_prompts():
|
| 135 |
+
"""Tarihe göre aktif promptları döndür - süresi geçmiş kampanyaları filtrele"""
|
| 136 |
+
today = datetime.now().date()
|
| 137 |
+
active_prompts = []
|
| 138 |
+
|
| 139 |
+
for prompt in SYSTEM_PROMPTS:
|
| 140 |
+
# Tarih alanları varsa kontrol et
|
| 141 |
+
start_date = prompt.get("start_date")
|
| 142 |
+
end_date = prompt.get("end_date")
|
| 143 |
+
|
| 144 |
+
if start_date and end_date:
|
| 145 |
+
# Tarih stringlerini date objesine çevir
|
| 146 |
+
start = datetime.strptime(start_date, "%Y-%m-%d").date()
|
| 147 |
+
end = datetime.strptime(end_date, "%Y-%m-%d").date()
|
| 148 |
+
|
| 149 |
+
# Sadece aktif tarih aralığındaysa ekle
|
| 150 |
+
if start <= today <= end:
|
| 151 |
+
active_prompts.append({"role": prompt["role"], "content": prompt["content"]})
|
| 152 |
+
else:
|
| 153 |
+
# Tarih alanı yoksa her zaman ekle
|
| 154 |
+
active_prompts.append({"role": prompt["role"], "content": prompt["content"]})
|
| 155 |
+
|
| 156 |
+
return active_prompts
|
| 157 |
+
|
| 158 |
+
|
| 159 |
+
def get_active_prompt_content_only():
|
| 160 |
+
"""Aktif promptların sadece content kısmını döndür (API çağrıları için)"""
|
| 161 |
+
return get_active_prompts()
|