Close-up of AI-assisted coding with menu options for debugging and problem-solving.

Kastamonu’da bölgesel hayat dışı sigorta acentesi, günde gelen ~~~~140 hasar dosyasını (PDF, fotoğraf, ekspertiz raporu, fatura) manuel okuyup hasar departmanına özet hazırlama yükünü Azure AI ile azaltmaya karar verdi. 3 aylık POC sonucu üretime alındı. Bu yazı sahadaki teknik notlar.

İhtiyaç

  • Hasar dosyası genelde 8-25 PDF + foto karışımı
  • Ekspertiz raporundan tutar, hasar tipi, plaka, tarih çıkarma
  • Fatura’dan tutar + KDV + tarih
  • Foto’dan hasar tipini tahmin (ön hasar, yan hasar, total)
  • Önceki benzer hasar dosyaları ile karşılaştır (şüpheli pattern)
  • Yöneticiye 1 sayfalık özet

Mimari

[Müşteri yükleme portalı]
       ↓
[Azure Blob Storage (gelen evrak)]
       ↓
[Azure Function (trigger)]
       ↓
   ┌───┴────────────────────┐
   ↓                        ↓
[Document Intelligence]   [Computer Vision]
   - Custom model            - Hasar tipi sınıflandırma
   - Ekspertiz form          - Foto kalitesi check
   - Fatura layout           ↓
   ↓                    ┌────┘
[Çıkan structured data] ─┴→ [Azure SQL]
   ↓
[OpenAI GPT-4o (özet + risk değerlendirme)]
   ↓
[AI Search (RAG: önceki dosyalarla benzerlik)]
   ↓
[Hasar Yönetici Dashboard (Power BI)]

Document Intelligence (Custom Form Model)

3 model eğitildi:

Model Eğitim verisi Doğruluk
Ekspertiz raporu ~~150 örnek %92 alan ekstraksiyon
Fatura Built-in invoice model + 80 fine-tune %96
Ruhsat / sigorta poliçesi ~~80 örnek %88
// Document Intelligence çağrı (C#)
using Azure;
using Azure.AI.DocumentIntelligence;

var endpoint = new Uri(config["DocIntelligence:Endpoint"]);
var credential = new AzureKeyCredential(config["DocIntelligence:Key"]);
var client = new DocumentIntelligenceClient(endpoint, credential);

var content = await BinaryData.FromStreamAsync(blobStream);
var operation = await client.AnalyzeDocumentAsync(
    WaitUntil.Completed,
    "ekspertiz-rapor-v3",  // custom model id
    content);

var result = operation.Value;
var fields = result.Documents[0].Fields;

var hasarTutari = fields["HasarTutari"]?.ValueCurrency?.Amount;
var plaka = fields["Plaka"]?.ValueString;
var hasarTipi = fields["HasarTipi"]?.ValueString;
var tarih = fields["Tarih"]?.ValueDate;

Computer Vision (Foto Sınıflandırma)

var visionClient = new ImageAnalysisClient(endpoint, credential);

var result = await visionClient.AnalyzeAsync(
    BinaryData.FromBytes(photoBytes),
    VisualFeatures.Tags | VisualFeatures.Caption | VisualFeatures.Objects);

// "front bumper", "side panel", "broken glass" gibi tag'ler
var detectedDamage = result.Tags.Values
    .Where(t => damageKeywords.Contains(t.Name) && t.Confidence > 0.7)
    .Select(t => t.Name)
    .ToList();

// Caption: "A red car with damaged front bumper" (LLM'e geçer)

OpenAI (Özet + Risk Skoru)

var openAIClient = new AzureOpenAIClient(endpoint, credential);
var chat = openAIClient.GetChatClient("gpt-4o");

var systemPrompt = @"
Sen Türk sigorta sektöründe hasar uzmanısın. 
Sana verilen yapılandırılmış hasar bilgilerini analiz edip:
1. 4-6 cümlelik özet hazırla
2. Risk skoru (0-100) ver:
   - Tutar makul mi?
   - Foto ile rapor uyumlu mu?
   - Önceki benzer hasarlar normal pattern içinde mi?
3. Önerilen aksiyon: ONAY / DETAY_İSTE / EKSPERTiZ_TEKRAR / DOLANDIRICILIK_ŞÜPHESİ
JSON formatında dön.
";

var userPrompt = $@"
Ekspertiz: {JsonSerializer.Serialize(ekspertizData)}
Foto analizi: {string.Join(',', detectedDamage)}
Geçmiş benzer hasar (RAG): {ragResults}
";

var response = await chat.CompleteChatAsync(
    new ChatMessage[] {
        new SystemChatMessage(systemPrompt),
        new UserChatMessage(userPrompt)
    },
    new ChatCompletionOptions { Temperature = 0.2f });

var summary = JsonSerializer.Deserialize(response.Value.Content[0].Text);

AI Search (RAG: Benzer Hasar Bulma)

Index: hasar-arsivi
Veri: son 4 yılın ~~85K hasar dosyası özeti
Field'lar:
  - id, plaka, hasar_tipi, tutar, tarih, ekspertiz_metni
  - vector_embedding (text-embedding-3-large, 3072 dim)

Query (vector + filter):
  POST /indexes/hasar-arsivi/docs/search
  {
    "vectorQueries": [{
      "kind": "vector",
      "vector": [...],  // current case embedding
      "fields": "vector_embedding",
      "k": 10
    }],
    "filter": "hasar_tipi eq 'ön çarpışma' and tutar ge 50000",
    "top": 10
  }

Sonuç: 10 benzer geçmiş dosya → LLM'e context

Sonuçlar (3 Ay POC + 2 Ay Üretim)

Metrik Önce Sonra
Hasar dosyası işleme süresi ~~2.5 saat (manuel) ~~12 dk (AI özet + uzman onay)
Aylık işlenen dosya ~~2.800 ~~4.200 (aynı ekip)
Dolandırıcılık tespit oranı %~~1.2 %~~3.8 (RAG benzerlik analizi)
Müşteri ortalama bekleme ~~6 gün ~~2 gün
Eksik evrak tespit (ilk gün) %~~40 %~~85

Maliyet

Servis Aylık (USD)
Document Intelligence (~~140 dosya/gün × 18 sayfa) ~~$580
Computer Vision (~~140 × 8 foto) ~~$95
OpenAI GPT-4o (~~140 dosya × ~~2K input + 800 output token) ~~$420
AI Search (B1 tier + vector) ~~$280
Storage + Function ~~$60
Toplam ~~$1.435

Yıllık ~$17K, ROI ekspertiz başına 2 saat × $25/saat × ~~4.200 dosya = ~~$210K kazanç.

Sahada Düşülen Üç Tuzak

  1. Custom model’siz pre-trained kullanmak: Türk ekspertiz formları çok çeşitli, generic model %~~60’da kalır. Custom train ile %~~92’ye çıkıyor.
  2. LLM çıktısını uzman onayı olmadan kullanmak: Hallucination + hatalı tutar = ciddi risk. AI öneri verir, insan karar verir prensibi.
  3. Token maliyetini hesaplamamak: GPT-4o on binlerce dosyada hızla pahalı olur. RAG context’i kısa tut, gereksiz alan göndermeyiz.

CloudSpark olarak Azure AI Foundry, Document Intelligence custom model, OpenAI integration, AI Search (RAG, vector) ve Computer Vision tabanlı saha çözümleri için danışmanlık veriyoruz.

🇹🇷 Türkçe🇬🇧 English🇩🇪 Deutsch🇫🇷 Français🇸🇦 العربية🇷🇺 Русский🇪🇸 Español