---
title: "rag-critic İnşası: LangGraph'ta Olgusal Dayanaklandırma ve Çekişmeli Halüsinasyon Denetimi"
url: https://blog.edumints.com/rag-critic-insasi-langgraph-ta-olgusal-dayanaklandirma-ve-cekismeli
category: "LLM"
date: 2026-10-29T09:05:14.177Z
publisher: Edumints Blog
lang: tr-TR
source_name: "dev.to"
source_url: https://dev.to/samjanjua6/building-rag-critic-factual-grounding-adversarial-hallucination-auditing-in-langgraph-24hf
---

# rag-critic İnşası: LangGraph'ta Olgusal Dayanaklandırma ve Çekişmeli Halüsinasyon Denetimi

Üretim ortamında çalışan **Retrieval-Augmented Generation (RAG)** boru hatları geliştirirken karşılaşılan en büyük başarısızlık noktası, veri getirme gecikmesi (retrieval latency) veya vektör indeks boyutu değil; **sessiz halüsinasyonlardır**. Büyük Dil Modelleri (LLM'ler), getirilen referans metin parçaları (chunks) tarafından hiçbir şekilde desteklenmeyen ancak son derece akıcı ve ikna edici görünen iddialar üretebilir. Çok ajanlı (multi-agent) sistemlerde ve kritik iş akışlarında, dayanağı olmayan bir taslağı kabul etmek sonraki karar alma süreçlerini tamamen bozabilir.

Döngüsel çok ajanlı граflarda bu sorunu çözmek için geliştirilen ve PyPI üzerinde yayınlanan **rag-critic**, özellikle **LangGraph** mimarileri için tasarlanmış hafif sıklet, çekişmeli (adversarial) bir halüsinasyon denetçisi ve kaynak doğrulama motorudur.

## 🔍 Mimari Darboğaz

Standart RAG mimarileri, yanıtları **LLM-as-a-judge** (Yargıç olarak LLM) yaklaşımıyla bütüncül bir paragraf düzeyinde değerlendirir. Bu yaklaşımın üç temel kusuru vardır:

- **Kaba Ölçekli Geri Bildirim (Coarse-Grained Feedback):** Bir ajana sadece "bu yanıt hatalı görünüyor" demek, hangi cümlenin halüsinasyon olduğunu belirtmez ve hatayı lokalize etmeyi engeller.
- **Yüksek Gecikme (High Latency):** Tam değerlendirmeler için büyük sınır (frontier) modelleri yeniden sorgulamak her adımda 3–5 saniye ek gecikme yaratır.
- **Determinizm Eksikliği (Lack of Determinism):** Bir çıkarım (entailment) matrisi olmadan, güven skorları model çalıştırmaları arasında tutarsızlık gösterir ve sapar.

## 📦 Proje Bağlantıları ve Açık Kaynak Depoları

- **PyPI Paketi:** pypi.org/project/rag-critic
- **GitHub Deposu:** github.com/samjanjua6/rag-critic
- **Yazar Mühendislik Portfolyosu:** https://shaheerulhassan.com

## 💻 Hızlı Başlangıç ve Python Kullanımı

Paketi doğrudan PyPI üzerinden kurabilirsiniz:

```bash
pip install rag-critic
```

Tekil bir yanıtı değerlendirmek ve iddia (claim) bazında doğrulama yapmak için temel kullanım:

```python
from rag_critic import RAGCritic

critic = RAGCritic()

# Taslak yanıtı getirilen kaynak parçalarına (chunks) karşı değerlendirin
result = critic.evaluate(
    draft_response="Python was released in 1991 by Guido van Rossum. It was originally named Monty.",
    retrieved_chunks=[
        "Python is an interpreted programming language released in 1991 by Guido van Rossum."
    ]
)

print(f"Status: {result.status}")                    # REVISE / APPROVED
print(f"Grounding Score: {result.grounding_score:.2f}")  # ör. 0.50
print(f"Hallucination Index: {result.hallucination_index:.2f}")

# İddia düzeyinde (claim-level) doğrulamayı inceleyin
for claim in result.claims:
    print(f"[{claim.status.value}] {claim.text}")
# [SUPPORTED] Python was released in 1991 by Guido van Rossum.
# [UNGROUNDED] It was originally named Monty.
```

**LangGraph** içerisinde çekişmeli bir doğrulama kontrol noktası ve dinamik yönlendirici olarak entegrasyonu:

```python
from langgraph.graph import StateGraph, END
from rag_critic import create_critic_node, critic_router

builder = StateGraph(MyRAGState)

# Standart üretici (generator) ve getirici (retriever) düğümlerini ekleyin
builder.add_node("retrieve", retrieve_docs)
builder.add_node("generate", generate_draft)

# rag-critic'i çekişmeli doğrulama kontrol noktası olarak ekleyin
builder.add_node("critic", create_critic_node())

builder.add_edge("retrieve", "generate")
builder.add_edge("generate", "critic")

# Halüsinasyon eşiklerine dayalı dinamik döngüsel yönlendirme
builder.add_conditional_edges(
    "critic",
    critic_router,
    {
        "approved": END,          # Çıktı doğrulandı; kullanıcıya dön
        "rewrite": "generate",    # Küçük boşluklar; yeniden yazıcıyı yönlendir
        "re_retrieve": "retrieve" # Ağır halüsinasyon; aramayı genişlet
    }
)
```

## 💡 Mühendislik ve Öğrenme Çıkarımları

Üretim ortamında **Agent Güvenilirliği** ve **RAG Değerlendirme** süreçlerini tasarlarken bu mimariden çıkarılabilecek kritik pratik dersler şunlardır:

- **İddia Düzeyinde Ayrıştırma (Claim-Level Decomposition):** Yanıtı cümle veya iddia bazında `SUPPORTED` (Desteklenen) ve `UNGROUNDED` (Dayanaksız) olarak ayırmak, tek bir dayanaksız ifade yüzünden tüm yanıtı sıfırdan üretme maliyetini ortadan kaldırır.
- **Hedefe Yönelik Döngüsel Yönlendirme:** Hatanın boyutuna göre akışı dinamik olarak yönlendirmek (`rewrite` ile sadece metni düzeltmek veya `re_retrieve` ile kaynak aramasını genişletmek), ajanların körü körüne döngüye girmesini önler.

---

**Kaynak:** dev.to (https://dev.to/samjanjua6/building-rag-critic-factual-grounding-adversarial-hallucination-auditing-in-langgraph-24hf)
**Yayıncı:** [Edumints Blog](https://blog.edumints.com) · Alıntılarken bu URL'ye bağlantı verin: https://blog.edumints.com/rag-critic-insasi-langgraph-ta-olgusal-dayanaklandirma-ve-cekismeli
