Türkçe LLM Uygulamaları İçin
Black-Box Test Kütüphanesi
Türkçe'nin zengin sondan eklemeli morfolojisini anlayan, deterministik olmayan LLM yanıtlarındaki Test Oracle problemini aşan ve güvenlik açıklarını denetleyen açık kaynaklı test altyapısı.
pip install morphtr
Neden Türkçe LLM'leri İçin Özel Bir Test Çatısı?
Modern test kütüphaneleri İngilizce dil kurallarına göre tasarlanmıştır. Ancak Türkçe LLM sistemleri ve RAG mimarileri benzersiz zorluklarla karşılaşır.
Test Oracle Problemi
Büyük Dil Modelleri stokastik ve non-deterministik çıktılar üretir. "Beklenen çıktı" (Ground Truth Oracle) önceden kesin olarak bilinemediği için geleneksel assert koşulları çöker.
Beklenen çıktıya ihtiyaç duymayan Metamorphic Testing (Biçim Değiştirmeli Test) ilişkileri ile giriş-çıkış dönüşümleri üzerinden otomatik doğrulama.
Sondan Eklemeli Dil Yapısı
Türkçe; ek yığılmaları, ünlü uyumu ve serbest sözdizimi nedeniyle İngilizce için üretilen karakter veya kelime düzeyindeki pertürbasyon algoritmalarını etkisiz kılar.
Türkçe morfolojik çözümleyicilerle entegre Morfolojik Dönüşüm Motoru; iyelik, hâl, zaman ekleri ve devrik cümle pertürbasyonları üretir.
Türkçe Güvenlik & Jailbreak Boşluğu
Güvenlik filtreleri genellikle İngilizce saldırı vektörlerine göre eğitilmiştir. Türkçe kültürel deyimler, dolaylı manipülasyon ve çift anlamlı tuzaklar filtrelere takılmaz.
Yerelleştirilmiş Türkçe Adversarial veri kümesi ve Türkçe Jailbreak & Prompt Injection Saldırı Simülatörü ile savunma ölçümü.
Üç Boyutlu Black-Box Değerlendirme
MorphTR, modelin ağırlıklarına erişmeden sadece girdi ve çıktılar üzerinden uçtan uca güvenilirlik sağlar.
Metamorphic Testing (Biçim Değiştirmeli Test)
Test oracle'ı olmayan sistemlerde girdileri sistematik olarak dönüştürerek beklenen ilişkileri (Metamorphic Relations) test eder.
- Eşdeğerlik (Invariance) Testi: Cümle ögeleri yer değiştirse de yanıt anlamı korunmalı.
- Yönsel (Directional) Değişim: Soruya kısıtlayıcı ek gelirse yanıt kümesi daralmalı.
- Morfolojik Varyasyon: Hâl ve çoğul ekleri yanıt doğruluğunu bozmamalı.
Türkçe Jailbreak & Enjeksiyon Koruması
RAG ve Chatbot uygulamalarınızın Türkçe diline özgü prompt injection ve jailbreak taktiklerine karşı dayanıklılığını ölçer.
- Türkçe Rol Yapma & Jailbreak Kütüphanesi: "Büyükbaba anlatısı", "DAN" türevleri.
- Dolaylı Enjeksiyon (Indirect Injection): RAG belgeleri içine gizlenmiş Türkçe saldırılar.
- ASR (Attack Success Rate) Raporu: Sistemin güvenlik açıklarını yüzdelik puanlar.
Türkçe "LLM as a Judge" Değerlendirmesi
Türkçe rubriklerle kalibre edilmiş yargıç modelleri sayesinde RAG ve model çıktılarını insan doğruluğuna yakın puanlar.
- Bağlamsal Doğruluk (Faithfulness): RAG belgesine sadakat, halüsinasyon tespiti.
- Cevap Alakası (Answer Relevance): Kullanıcının Türkçe sorusuna doğrudan cevap verme yeteneği.
- Dilbilgisi & Anlamsal Bütünlük: Sondan eklemeli yapının akıcılık denetimi.
MorphTR Test Simülatörünü Keşfedin
Aşağıdaki önceden yapılandırılmış Türkçe test senaryolarından birini seçin veya kendi cümlenizi girerek MorphTR'ın metamorphic dönüşümlerini ve oracle değerlendirmesini canlı gözlemleyin.
Pytest Gibi Sade, Türkçe İçin Güçlü
MorphTR'ı Python test suitlerinize, CI/CD pipeline'larınıza (GitHub Actions) dakikalar içinde entegre edin.
# Türkçe Metamorphic İlişki (Invariance) Testi
from morphtr import MorphTestSuite, TurkishMorphEngine
from morphtr.relations import InvarianceRelation, MorphologicalPerturbation
from my_project import get_rag_response
def test_turkish_agglutination_invariance():
suite = MorphTestSuite(name="Mevzuat Soru-Cevap Invariance Testi")
# Orijinal Türkçe soru
source_prompt = "Kira sözleşmesinde tahliye taahhütnamesinin geçerlilik koşulları nelerdir?"
# Türkçe'nin sondan eklemeli yapısına ve sözdizimine uygun MR tanımla
mr = MorphologicalPerturbation(
strategies=["passive_to_active", "case_suffix_synonym", "word_order"],
threshold=0.88 # Anlamsal benzerlik eşiği
)
# Testi çalıştır: Girdi dönüştürülür, LLM çağrılır ve oracle'sız assert edilir
result = suite.run_relation(
prompt=source_prompt,
relation=mr,
llm_callable=get_rag_response
)
assert result.passed, f"Morfolojik varyasyon çıktıyı bozdu! Delta: {result.semantic_drift}"
print(f"Türkçe Invariance Skoru: {result.similarity_score:.2f}")
# Türkçe Jailbreak ve Prompt Injection Savunma Testi
from morphtr.security import TurkishJailbreakAuditor, AttackProfile
from my_project import turkish_chatbot_pipeline
def test_security_against_turkish_jailbreaks():
auditor = TurkishJailbreakAuditor(
categories=[
AttackProfile.GRANDMOTHER_TR, # Türkçe duygu sömürüsü ve rol yapma
AttackProfile.INDIRECT_RAG_INJECTION, # Belge içi görünmez komutlar
AttackProfile.SLANG_OBFUSCATION # Türkçe argo ve harf kaydırma
]
)
audit_report = auditor.evaluate_system(
pipeline=turkish_chatbot_pipeline,
iterations=50
)
# Saldırı Başarı Oranının (ASR) %5'in altında olduğunu doğrula
assert audit_report.attack_success_rate < 0.05, (
f"Güvenlik zafiyeti! ASR Oranı: {audit_report.attack_success_rate:.1%}"
)
print(audit_report.generate_markdown_summary())
# Türkçe LLM-as-a-Judge ile RAG Sadakat & Kalite Puanlaması
from morphtr.judge import TurkishRAGJudge
from morphtr.metrics import ContextFaithfulness, TurkishFluency, AnswerRelevance
def test_rag_faithfulness_and_hallucination():
judge = TurkishRAGJudge(
metrics=[
ContextFaithfulness(threshold=0.90),
TurkishFluency(check_vowel_harmony=True), # Ünlü uyumu & ek denetimi
AnswerRelevance(threshold=0.85)
]
)
evaluation = judge.evaluate(
query="Şirket içi veri koruma prosedürü nasıl işler?",
retrieved_context=["Tüm çalışanlar KVKK Madde 12 uyarınca yetkilendirilir..."],
model_response="Çalışanlar KVKK Madde 12 uyarınca yetkilendirilmektedir."
)
assert evaluation.all_passed
print(f"Sadakat: {evaluation.faithfulness:.2f}, Akıcılık: {evaluation.fluency:.2f}")
Mevcut Kütüphaneler vs. MorphTR
Küresel araçlar (DeepEval, Ragas, Promptfoo, Giskard) ile MorphTR'ın Türkçe özelleşmiş yeteneklerinin karşılaştırması.
| Özellik / Yetenek | MorphTR (Türkçe Odaklı) | Ragas / DeepEval | Promptfoo / Giskard |
|---|---|---|---|
| Sondan Eklemeli Dil Morfolojisi Türkçe ek türetimi, ünlü uyumu, iyelik ve durum ekleri | Tam Yerel Destek | Yok (İngilizce Odaklı) | Yok |
| Metamorphic Testing (Oracle-Free) Beklenen çıktı olmadan giriş-çıkış ilişkisel doğrulaması | Yerleşik Türkçe MR Motoru | Desteklenmiyor | Sadece Basit Pertürbasyon |
| Türkçe Jailbreak & Enjeksiyon Kütüphanesi Kültürel bağlam, Türkçe rol yapma ve argo saldırı simülasyonu | Kapsamlı TR Veri Seti | Yok | İngilizce Çeviri (Zayıf) |
| Türkçe Dilbilgisi & Kalibre Edilmiş Yargıç Türkçe rubriklerle LLM-as-a-Judge değerlendirmesi | Özel Türkçe Rubrikler | Genel Prompt (Çeviri) | Genel Prompt |
| CI/CD & Pytest Entegrasyonu Otomatik test koşumları ve JUnit / HTML raporlama | Yerel Pytest Plugin | Mevcut | Mevcut |
MorphTR Test Çalışma Akışı
Girdiden raporlamaya kadar Türkçe morfoloji tabanlı test hattının 5 adımlı mimarisi.
Kaynak İstem & Ayrıştırma
Test edilecek istem alınır; Zemberek / Türkçe NLP tokenizasyonu ile morfolojik kök ve eklerine ayrılır.
Metamorphic Dönüşüm
Invariance veya Directional bağıntılar uygulanarak anlamı korunan ya da kontrollü değişen varyantlar türetilir.
Black-Box LLM Yürütme
Orijinal ve türetilen istemler hedef LLM veya RAG boru hattına gönderilir; ham çıktılar toplanır.
Oracle Bağıntı Doğrulama
Sonuçlar arasındaki anlamsal fark ve Türkçe LLM-as-a-Judge rubrikleri ile test oracle'ı denetlenir.
Raporlama & CI/CD
JUnit XML, HTML ve JSON formatlarında ayrıntılı dayanıklılık ve güvenlik skoru üretilir.
Türkçe Doğal Dil İşleme Ekosistemine Açık Kaynak Katkı
Tezin Amacı
Bu çalışma, Türkçe Büyük Dil Modeli (LLM) ve RAG mimarilerinin üretim ortamlarında güvenilirlik, doğruluk ve güvenlik denetimini standartlaştırmayı amaçlamaktadır. Sondan eklemeli Türkçe dil yapısı gözetilerek yazılım mühendisliğinin en güçlü black-box yaklaşımlarından biri olan Metamorphic Testing ilk kez Türkçe LLM test oracle sorununa uygulanmaktadır.
Açık Kaynak & Yol Haritası
Proje tamamen açık kaynaklı (MIT Lisansı) olarak morphtr.dev ve GitHub üzerinde yayımlanacaktır. Topluluk katkılarıyla Türkçe jailbreak veri tabanı genişletilecek, akademik bildiri ve tez dökümantasyonu ile literatüre sunulacaktır.