Table of Contents

Gerçek dünya senaryoları

Bu sayfayı neden okuyorsunuz? Bu sayfa Intentum'un canlıda nasıl kullanıldığını somut örneklerle anlatır: dolandırıcılık/kötüye kullanım niyet tespiti ve AI karar yedeklemesi. "Gerçek projede nasıl uygularım?" sorusuna yanıt arıyorsanız doğru yerdesiniz.

Intentum canlıda: dolandırıcılık/kötüye kullanım tespiti ve AI karar yedeklemesi.


Use case 1: Dolandırıcılık / Kötüye kullanım niyet tespiti

Sorun (klasik yaklaşım)

Klasik sistemler şöyle çalışır:

IF too_many_failures AND unusual_ip AND velocity_high
THEN block_user

Sorunlar:

  • False positive (yanlış alarm)
  • Akış değişince kurallar çöker
  • AI sinyalleri senaryoya sığmaz
  • "Şüpheli ama masum" durumlar patlar

Intentum’un sorduğu soru

Bu kullanıcı gerçekten dolandırıcılık mı peşinde, yoksa sadece başarısız bir girişim mi yaşıyor?

Cevap evet-hayır değil.

1. Gözlemlenen davranış uzayı

var space = new BehaviorSpace()
    .Observe("user", "login.failed")
    .Observe("user", "login.failed")
    .Observe("user", "ip.changed")
    .Observe("user", "login.retry")
    .Observe("user", "captcha.passed");

Not: Sıra kritik değil; tekrarlar bilgi taşır; "başarılı" event’ler de sinyal.

2. Niyet çıkarımı

var intentModel = new LlmIntentModel(
    new MockEmbeddingProvider(),
    new SimpleAverageSimilarityEngine());
var intent = intentModel.Infer(space);

Model şunu yapar:

  • "başarısız giriş" → negatif sinyal
  • "captcha geçti" → pozitif sinyal
  • "ip değişti" → riski artırır ama tek başına kanıt değil

3. Risk niyetine göre doğrula

Özel niyet modeli (örn. SuspiciousAccess, AccountRecovery) kullanıyorsanız:

// intent.Name == "SuspiciousAccess"
// intent.Confidence.Score yaklaşık 0.4–0.7 aralığında

Anlamı: "Bu kullanıcı muhtemelen riskli, ama kesin dolandırıcı değil."

BDD’de test geçer ya kalır. Intentum’da test kararı besler.

4. Farklı davranış, aynı niyet

var space2 = new BehaviorSpace()
    .Observe("user", "login.failed")
    .Observe("user", "password.reset")
    .Observe("user", "login.success")
    .Observe("user", "device.verified");

Sonuç (uygun modelle): niyet adı "AccountRecovery", güven ~0.8.

Akış değişti, niyet değişti; sistem kırılmadı.

5. Karar katmanı (kritik)

Intentum bloklamaz; kararı besler.

if (intent.Name == "SuspiciousAccess" && intent.Confidence.Score > 0.65)
{
    StepUpAuth();
}
else if (intent.Confidence.Score < 0.4)
{
    Allow();
}
else
{
    Monitor();
}

Niyet doğruluğu ≠ aksiyon doğruluğu. Bu ayrımı net tutuyorsun.

6. Neden BDD ile zor?

BDD’de şunlar için ayrı senaryolar gerekir:

  • yeni IP’den iki kez başarısız giriş
  • captcha’lı üç deneme
  • farklı cihazdan şifre sıfırlama
  • sıfırlamadan sonra tekrar giriş
  • IP değişiminden sonra captcha başarısı

Kombinasyon patlaması. Bakımı zor. AI sinyalleri sabit senaryoya sığmaz.

Intentum’da: tek model, geniş davranış uzayı, güvene dayalı karar.

7. Özet

Bu örnek Intentum’un test çerçevesi değil; karar öncesi bir anlam katmanı olduğunu gösteriyor.


Use case 2: AI karar yedeklemesi ve doğrulama

Model kendinden emin… ama yanlış.

Sorun (gerçek dünya)

Bir LLM/ML modeli:

  • bazen yanlış anlar
  • bazen halüsinasyon görür
  • bazen aşırı kendinden emin olur

Klasik sistem: "Model cevap verdi → kabul et."

BDD ile test: sabit prompt, beklenen string, en ufak sapma = fail. AI gerçeğiyle uyuşmaz.

Intentum’un sorduğu soru

Model bu kararı verirken ne yapmaya çalışıyordu? Bu davranış beklenen niyetle tutarlı mı?

Bu soru modelden bağımsız. GPT, Claude, yerel LLM — aynı mantık.

Senaryo: AI destekli karar motoru

Örnek: Bir AI kullanıcı taleplerini şöyle sınıflandırıyor:

  • İade
  • Teknik destek
  • Hesap sorunu
  • Kötüye kullanım girişimi

1. Gözlemlenen AI davranış uzayı

Burada "davranış" modelin davranışı, kullanıcının değil.

var space = new BehaviorSpace()
    .Observe("llm", "high_confidence")
    .Observe("llm", "short_reasoning")
    .Observe("llm", "no_followup_question")
    .Observe("user", "rephrased_request")
    .Observe("llm", "changed_answer");

Bu sinyaller şunu anlatıyor: model hızlı karar verdi, zayıf açıklama yaptı, kullanıcı memnun olmadı, model geri adım attı.

2. AI niyetini çıkar

var intent = intentModel.Infer(space);

Sonuç (uygun modelle): niyet adı örn. "PrematureClassification", güven 0.78.

Anlamı: "Model hızlı cevap vermeye çalışmış, dikkatli sınıflandırmaya değil."

BDD bunu yakalayamaz.

3. Niyete dayalı yedekleme

if (intent.Name == "PrematureClassification" && intent.Confidence.Score > 0.7)
{
    RouteToHuman();
    ReduceModelTrust();
}

Önemli: Modelin "yanlış" olduğunu söylemiyorsun; niyetine göre hareket ediyorsun. Güveni ayarlıyorsun. Bu, canlıda kullanılabilecek AI davranışı.

4. Farklı davranış, sağlıklı niyet

var space2 = new BehaviorSpace()
    .Observe("llm", "asked_clarifying_question")
    .Observe("user", "provided_details")
    .Observe("llm", "reasoning_explicit")
    .Observe("llm", "moderate_confidence");

Sonuç: niyet "CarefulUnderstanding", güven ~0.85.

Karar: AllowAutoDecision();

5. Kritik fark

BDD / unit test sorar: "Çıktı doğru mu?"

Intentum sorar: "Bu çıktı nasıl ve neden üretildi?"

AI sistemlerinde neden çoğu zaman ham çıktıdan daha değerli.

6. Intentum burada ne sağlıyor?

  • Model sürümü değişimi
  • Prompt değişimi
  • Sağlayıcı değişimi
  • Temperature / sampling değişimi

Niyet hizalı kaldığı sürece hiçbiri testleri kırmak zorunda değil.

7. AI mühendisleri için mesaj

"Bunu canlıda zor yoldan çözdük." — Intentum tam bu boşluk için.

Intentum’un gerçek yeri

Intentum:

  • değildir: test çerçevesi, prompt aracı, AI sarmalayıcı

Intentum:

  • AI akıl yürütme doğrulama katmanı
  • karar güven motoru
  • niyet odaklı güvenlik ağı

Kullanım senaryosu 3: Zincirli intent (Kural → LLM fallback)

Önce kuralları dene; kural eşleşmezse veya güven eşiğin altındaysa LLM çağır. Maliyet ve gecikmeyi azaltır; yüksek güvenli kural eşleşmelerini deterministik ve açıklanabilir tutar.

Fikir

  1. Birincil model — RuleBasedIntentModel: örn. "login.failed >= 2 ve password.reset ve login.success" → AccountRecovery (0.85).
  2. Fallback model — Hiç kural eşleşmezse veya birincil güven eşiğin altındaysa LlmIntentModel.
  3. ChainedIntentModelChainedIntentModel(primary, fallback, confidenceThreshold: 0.7).

Kod

var rules = new List<Func<BehaviorSpace, RuleMatch?>>
{
    space =>
    {
        var loginFails = space.Events.Count(e => e.Action == "login.failed");
        var hasReset = space.Events.Any(e => e.Action == "password.reset");
        var hasSuccess = space.Events.Any(e => e.Action == "login.success");
        if (loginFails >= 2 && hasReset && hasSuccess)
            return new RuleMatch("AccountRecovery", 0.85, "login.failed>=2 and password.reset and login.success");
        return null;
    }
};

var primary = new RuleBasedIntentModel(rules);
var fallback = new LlmIntentModel(embeddingProvider, new SimpleAverageSimilarityEngine());
var chained = new ChainedIntentModel(primary, fallback, confidenceThreshold: 0.7);

var intent = chained.Infer(space);
// intent.Reasoning: "Primary: ..." veya "Fallback: LLM (primary confidence below 0.7)"

Açıklanabilirlik

Her intent Reasoning içerir (hangi kural eşleşti veya fallback kullanıldı). Log, debug ve "neden bu karar?" için kullanılır.

Çalışan örnek: examples/chained-intent.


Çalıştırılabilir örnekler

Bu senaryolar için minimal çalıştırılabilir projeler:

Web örneği (dolandırıcılık + greenwashing + explain): samples/Intentum.Sample.Blazor — tam UI ve HTTP API: intent infer/explain, greenwashing tespiti (çok dilli, opsiyonel görsel, Scope 3/blockchain mock), analytics ve son analizlerle Dashboard. Bkz. Greenwashing tespiti (how-to) ve Kurulum – Web örneği.

Konsol örneklerini nasıl çalıştıracağınız için repodaki examples README sayfasına bakın.

Ödeme, destek, ESG gibi daha fazla akış için Senaryolar ve Kitle ve kullanım alanları sayfalarına bakın.

Sonraki adım: Bu sayfayı bitirdiyseniz → Senaryolar veya Greenwashing tespiti (how-to).