Son Dakika
RAG sorgu analizinde “Loop Engineering”: Veri çekiminden önce çalışan küçük bir çözüm.
Yapay Zeka

RAG sorgu analizinde “Loop Engineering”: Veri çekiminden önce çalışan küçük bir çözüm.

21 Temmuz 2026 · 19 dk okuma · 2 görüntülenme · Algoritmacı

Sigorta Poliçelerinde Bilgiye Ulaşma Süreçleri

Bir kullanıcı, elli sayfadan oluşan bir sigorta poliçesiyle ilgili olarak şu soruyu yöneltiyor: “Prim nedir?”. Bu noktada devreye giren analiz sistemi, öncelikle poliçenin genel yapısını inceleyen birimden aldığı bilgilere başvuruyor:

Sistemin ilk aşamadaki yaklaşımı, “prim” kelimesini içeren tüm metinleri taramaktır. Bu tarama sonucunda, muafiyet maddelerinde geçen ifadeler, eklerdeki standart metinler ve bazı alakasız referanslar ortaya çıkıyor. Ancak, asıl prim tablosu, General Information bölümünde, sayfa 3’te yer almaktadır; ancak ilk analiz aşamasında bu bilgiye doğrudan ulaşmak mümkün olmamaktadır.

Ancak, daha gelişmiş bir sistem, farklı bir yaklaşım benimsemektedir. Bu sistemde, analiz birimi “prim” kelimesinin içindekiler tablosunda karşılık gelen bir bölüm olmadığını tespit eder ve hemen kullanıcıya tek bir soru yöneltir:

“Bu poliçede ‘Prim’ adında bir bölüm göremiyorum. Nerede aramamı önerirsiniz?”

Kullanıcı, serbest metin kullanarak cevap verir. Kullanıcı, “General Info” (kısaltma), “generale information” (yazım hatası) veya “try under coverages” (farklı bir ifadeyle sorma) gibi farklı şekillerde cevap verebilir. Ancak, bu farklılıklar sistemin işleyişini etkilemez. Analiz birimi, kullanıcının cevabını dikkate alarak tekrar çalışır, LLM (Large Language Model – Büyük Dil Modeli), kullanıcının cevabını section_hint veya benzeri bir alana yerleştirir ve analiz süreci devam eder.

Bu basit etkileşim sayesinde, belirsizlik ortadan kalkar ve bilgiye ulaşma süreci daha verimli hale gelir. Bu yaklaşım, ilk bakışta karmaşık görünse de, aslında 1940’larda ortaya çıkan “montaj hattı” üretim sistemlerine benzer bir mantıkla çalışır; her adım, belirli bir görevi yerine getirir ve sonuçlar bir araya getirilerek nihai ürün (bu durumda, istenen bilgi) elde edilir.

Daha kapsamlı bir çözüm (örneğin, olası değerlerin açıkça listelenmesi, varsayılan bir değer önerilmesi, cevapların kaydedilip gelecekte otomatik olarak uygulanabilmesi gibi özellikler), Article 6bis‘te daha detaylı bir şekilde ele alınmaktadır. Ancak, bu örnek, en temel haliyle çalışan bir sistemin nasıl çalıştığını göstermektedir: kullanıcıdan soru alınıyor, cevap veriliyor ve tek bir LLM (Büyük Dil Modeli) kullanılarak işlem tamamlanıyor.

Enterprise Document Intelligence, kurumsal seviyede RAG (Retrieval-Augmented Generation) sistemlerini dört temel üzerine inşa eder: belge ayrıştırma, soru ayrıştırma, veri erişimi ve içerik üretimi. Bu makale, özellikle üretim kalitesinin hangi noktalarda kazanıldığını gösteren “döngü mühendisliği” perspektifinden bakarak, bu dört temelden ikincisi olan “soru ayrıştırmayı” yeniden ele almaktadır. Bu bağlamda, soru ayrıştırma sürecini kodlayan 6A (tez), 6B (ayrıştırma) ve 6C (yönlendirme) makaleleri, aynı zamanda soru netleştirme döngüsünün mekanizmalarını kodlayan “6bis” makalesi de önemlidir. Bu makale, bu mekanizmanın neden “döngü mühendisliği” modelinin en küçük ölçekteki uygulaması olduğunu açıklamaktadır.

📓 Bölüm 3’te yer alan üç örnek de dağıtılan not defterinde çalışmaktadır: Soru netleştirme döngüsünü kendiniz deneyin, arXiv veri kümesi ve bir broker sözleşmesi kullanarak LLM’nin “ne eksik?” sorusunun belge profiliyle nasıl değiştiğini gözlemleyin. Kaynak kod → doc-intel/notebooks-vol1.

1. İstemden bağlama ve döngü mühendisliğine

Bu çerçeve, son on sekiz ayda iki kez değişti.

İstem mühendisliği (2023). Kullanıcı işi yapar. Doğru istemi yazmayı öğrenin, birkaç örnek ekleyin, “adım adım düşünün” ifadesini kullanın. LLM, durum bilgisiz bir kehanet makinesidir. Kalite, kelime seçimi sorunudur. Bu yaklaşım, erken dönem sinematografideki montaj tekniklerine benzer; örneğin, D.W. Griffith’in Bir Köleler Ulusu (1915) filmindeki hızlı kesmeler ve üst üste binen görüntüler, izleyicinin duygusal tepkisini yoğunlaştırmak için kullanılmıştır.

Bağlam Mühendisliği (2025 ortası). Mühendisin görevi, sistemi doğru şekilde çalıştırmaktır. Tobi Lütke ve Andrej Karpathy bu uygulamaya şu şekilde isim veriyor: “Bir sonraki adım için bağlam penceresini doğru bilgilerle doldurma sanatı.” İstek, birçok seçenekten sadece bir tanesidir. Bağlam mühendisliğinin soru ayrıştırması için nasıl kullanıldığına dair daha fazla bilgi için Madde 6quater’e bakın.

Döngü Mühendisliği (2026). Mühendisin görevi, LLM çağrıları etrafında döngüleri tasarlamaktır. LangChain bunu açık bir şekilde ifade ediyor: “Ajanların potansiyeli, onlar etrafında inşa ettiğiniz döngülerdedir.” MindStudio ise bunu şöyle tanımlıyor: “Tekrarlayan döngüler içinde çalışan yapay zeka sistemleri tasarlamak, bir hedefe ulaşılana kadar tekrar etmek”, bu da “geri bildirim boşluğunu kapatan” bir disiplindir. Bu yaklaşım, özellikle yapay zekanın karar verme süreçlerini daha şeffaf ve kontrol edilebilir hale getirmek isteyenler için büyük önem taşıyor.

Bu üç kavram birbiriyle yarışmak yerine, birbirini tamamlar. İstek mühendisliği, tek bir çağrının ne okuyacağını şekillendirirken, bağlam mühendisliği bu çağrıya hangi bilgilerin gireceğini seçer ve döngü mühendisliği ise bu çağrıyı sınırlı bir yineleme içinde kullanır.

Döngüler farklı boyutlarda olabilir. Büyük bir döngü, ajantik RAG (planla, eyleme geçir, gözlemle, yeniden planla, birçok adım) iken, küçük bir döngü tek bir soru-cevap-devam adımıdır. Bu makale, soru ayrıştırmasına odaklanan en küçük ve kullanışlı döngüyü ele almaktadır.

2. Döngü sabit bir şemayı doldurur

Döngünün başlamasından önce, hangi alanların doldurulacağını belirleyin.

Soru ayrıştırması, tüm serideki tek seferde tanımlanan ve geri alma ve oluşturma tarafından deterministik olarak kullanılan sabit bir dizi türlendirilmiş alana yazılır. 1. Bölüm şu alanlarla birlikte gelir:

Bu isimler, makale ile sınırlı değildir. docintel.question modülünde bulunur ve tüm sonraki bileşenler (bilgi erişim algılayıcıları, dağıtıcı, oluşturma şema arama) bunları okur. Bir alan eklemek, tüm işlem hattını değiştirir. Bu bir tasarım kararıdır, JSON ayarlaması değildir.

Bu döngünün tek görevi, ayrıştırıcının tek başına dolduramadığı bu alanlardan birini doldurmaktır. Yeni bir alan oluşturmaz.

İş akışı, altı adım ve bir geri dönüş oku:

Kodda, giriş bölümünde yer alan premium sorudaki iş akışına benzer şekilde:

parse_question(...) çağrıları arasındaki değişikliklere dikkat edin: sadece eksik olan alandır. ParsedQuestion‘ın diğer tüm alanları aynı kalır. Sonundaki dispatch(parsed), döngü olmasaydı da aynı şemaya karşı çalışacak aynı çağrıdır.

Her alan zorunlu değildir: bir GÖSTERİLME (TOC) yoksa, section_hint de olmaz ve bu sorun değil; başka bir alan (örneğin, pages_hint), aramayı kapsar. Mühendislik çalışması, belge profilini göz önünde bulundurarak hangi alana soru sorulacağını ve kullanıcının bağlamı için soruyu nasıl ifade edeceğimizi belirlemektir. Bu yaklaşım, örneğin, erken dönem sinema tarihine damgasını vuran, farklı anlatım tekniklerini kullanarak izleyiciyi şaşırtan Battleship Potemkin gibi filmlerin yaratıcı sürecini anlamamıza yardımcı olabilir.

3. Üç Durum, Eksik Üç Alan

Aşağıdaki her durumda, ayrıştırıcının ham sorudan tek başına dolduramadığı tek alan belirtilmektedir. Ayrıca, bu eksikliği işaret eden belge profili ve alanı tamamlayan basit soru da bulunmaktadır. Tüm durumlarda aynı şema kullanılmıştır; yeni bir alan icat edilmemiştir.

3.1 Eksik section_hint: Konu İçindekiler’de Yok

Bir sigorta analistini, daha önce hiç görmediği bir poliçeyi açarken hayal edin. Kırk yedi sayfa, dört İçindekiler girdisi, ilk bakışta dikkat çeken hiçbir şey yok. Normalde on dakika boyunca kaydırarak cevaplayacağı soruyu yazıyor:

“İlk üç aylık dönemin prim oranı nedir?”

Ayrıştırıcı, bu soruyu dosya hakkında zaten bildiği bilgilerle birlikte okuyor:

İlk çalıştırmada, parse_question(...) şu bilgileri dolduruyor:

Bu son durum, iş akışını durduruyor. Kullanıcının konsepti, herhangi bir İçindekiler etiketiyle eşleşmiyor ve ayrıştırıcı yeni bir etiket oluşturmuyor. İşlemi yarı tamamlanmış bir veri satırı ile devam ettirmek yerine, bu durumda sistem duraksıyor ve kullanıcıdan ek bilgi talep ediyor.

Kullanıcıya şu soru yöneltiliyor:

Sinema ve Eğlence Endüstrisi Analizi

“Bu politikada ‘Premium’ bölümünü göremiyorum. Nereye bakmalıyım?”

Kullanıcı, aklına gelen ilk ifadeyi yazıyor. Acele ediyorsa “Genel Bilgiler” ifadesini kullanıyor. Emin değilse “Genel olanı” yazıyor. Kesin olmak istiyorsa “Genel bilgileri deneyin” şeklinde bir ifade kullanıyor. Kullanılan kelimelerin önemi yok. İlk soruyu çözümleyen aynı LLM (Büyük Dil Modeli), zenginleştirilmiş metin üzerinde tekrar çalıştırılıyor, kullanıcının yazdığı varyantları “Genel Bilgiler” ifadesine dönüştürüyor ve bu bilgiyi ikinci aşamada section_hint alanına yazıyor. Satır üzerindeki diğer tüm alanlar, ilk çözümlemenin bıraktığı yerden devam ediyor.

Bu noktadan sonra işlem hattı tekrar deterministik bir şekilde ilerliyor. section_filter_active, section_hint‘in artık ayarlandığı için devreye giriyor. Arama işlemi, toc_df üzerinde (bu politikada 3. sayfa) yalnızca “Genel Bilgiler” bölümündeki sayfaları tarıyor. Üretim aşamasında ise, kırk yedi sayfalık gürültülü metin yerine, daha anlaşılır bir pasaj kullanılıyor. Analist, sonucu saniyeler içinde alıyor.

3.2 Eksik pages_hint: Çok konumlu konu

Farklı bir masa, farklı bir işlem hattı yüzeyi. Bir avukat asistanından, gün sonundan önce dosyalaması gereken bir sözleşmeyi incelemesini istiyor:

“Müvekkilin adı nedir?”

Belge profili, kırk yedi sayfalık bir contract (sözleşme) olduğunu doğrular. İçindekiler tablosunda numaralandırılmış maddeler listeleniyor ancak hiçbir yerde “Taraflar” başlığı bulunmuyor. İlk aşamada:

Son madde tuzak. Bir sözleşmede, müvekkilin adı üç farklı yerde bulunabilir:

Sinema ve Dizi Dünyasından Güncel Gelişmeler

İçerik arama sürecinde, sayfa ipucunun eksikliği durumunda, sistemin tüm belgeyi taraması ve “müşteri” kelimesinin geçtiği her yeri dahil etmesi gerekir. Doğru bölüm genellikle 1. sayfada bulunur. Ancak, bu durumda sinyal-gürültü oranı düşer ve içerik üretimi başlamadan önce sorunlar ortaya çıkar.

Sistem, kullanıcının sorusuna şu şekilde yanıt verir:

“Sözleşmeler genellikle birkaç yerde ‘müşterinin’ adını taşır (ön kapak, başlık, imza alanları). Hangi bölümü incelememi istersiniz?”

Müşavir, “ön kapak”, “1. sayfa” veya “ilk sayfa” gibi ifadelerle yanıt verir. Tam ifade önemli değildir. İkinci analizde, LLM (Büyük Dil Modeli), kullanıcının pages_hint: [1] alanına yazdığı varyantı dikkate alır. keywords (anahtar kelimeler) ve intent (amaç) değerleri aynı kalır. pages_hint_active özelliği etkinleşir, sistem yalnızca 1. sayfayı okur ve LLM, bu temiz içerikle sonuç üretir.

3.3 Eksik pages_hint: Uzun bir belgede içindekiler tablosu yok

Bir araştırmacı, kurum içi bir risk raporunu açar ve asistana şu soruyu yöneltir:

“Risk bölümünü özetleyin.”

Belge profili, bu belgenin research_paper (araştırma raporu) türünde olduğunu işaretler. Belgede otuz iki sayfa vardır ve toc_df (içindekiler tablosu veri çerçevesi) boş durumdadır. Görsel olarak, raporda bölüm başlıkları bulunmaktadır, ancak analiz aşamasında bu başlıklar temiz bir şekilde çıkarılamamıştır (karmaşık stil düzenlemeleri, tutarsız numaralandırma vb.). Bu durum, section_hint özelliğinin devreye girmesini engeller.

Ancak, bu durum pages_hint özelliğini etkilemez. Araştırmacı, risk tartışmasının raporda yaklaşık olarak nerede bulunduğuna dair bir fikir edinebilir ve sistemin arama alanını daraltmak için yaklaşık bir sayfa aralığı yeterlidir. Bu, analiz aşamasında sisteme sorulabilecek faydalı bir soru sağlar:

“Bu raporda temiz bir içindekiler tablosu bulunmamaktadır. Risk bölümünün hangi sayfalarda olduğunu tahmin ediyor musunuz?”

Kullanıcının verdiği iki farklı yanıt, sistemin farklı iş akışlarına yönelmesine neden olur:

Burada dikkat edilmesi gereken nokta, her iki durumda da aynı temel yapının kullanıldığı ancak çalışma setinin farklı olduğu.

Üç farklı seçenekte de ortak olan şey, döngünün (loop) dokunduğu tüm alanların (section_hint, pages_hint) zaten şemada tanımlı olmasıdır. Döngünün görevi, belgenin genel yapısına göre hangi alanı kullanacağını seçmektir. Aynı alt kodlar, aynı dağıtıcı ve aynı aktivasyon bayrakları kullanılmaktadır; bu nedenle işlem hattına yeni bir öğe eklenmemektedir.

4. Bu döngünün (loop) nereye yerleştirildiği ve neden “agentic RAG” olmadığı

Bu döngü, soru analizinin içinde yer almaktadır. İşlem hattının geri kalanı bu döngüyü görmemektedir: Arama işlemi sadece, soru analizi tarafından üretilen yüksek güvenilirlikli bir ParsedQuestion olduğunda başlar; bu, ilk analizde veya bir açıklama turu sonrasında olabilir.

Arama ve metin oluşturma (generation), tek bir arayüzle çalışır: Doldurulmuş bir ParsedQuestion. İşlem hattının bir tur gerekip gerekmeyeceği, bu aşamalara tamamen yabancıdır. Bu küçük döngü, görünüşte bir “agent”ın dönüşümü gibi görünse de aslında böyle değildir:

Bu ayrımın önemi şudur: endüstrideki döngü mühendisliği konusundaki genel yaklaşım genellikle çok aşamalı ajan tabanlı senaryoları varsayar. Tek bir belge üzerindeki işlem hattının “soru” kısmında, işe yarayan en küçük döngüdür.

5. Kapsam Dışı Konular

Bu makalede kasıtlı olarak ele alınmayan üç konu bulunmaktadır.

Her biri farklı bir döngüdür, farklı bir kapsamda çalışır, farklı bir alıcıya yöneliktir ve aynı terminolojiyi farklı ölçeklerde kullanır. Bu yaklaşım, 1960’ların sonlarında Godard’ın “Weekend” filminde kullandığı deneysel montaj tekniklerini anımsatıyor; burada farklı sahneler beklenmedik şekillerde bir araya getirilerek izleyicinin deneyimini sürekli olarak değiştirmeye yönelik bir çaba gösteriliyordu.

6. Kaynaklar ve daha fazla okuma

Döngü mühendisliği kavramı, 2026 yılında çeşitli kaynaklardan aynı anda ortaya çıktı ve bağlam mühendisliğinin terminolojisini belirlemesinin ardından aynı terim üzerinde yoğunlaştı. Bu durum, 1980’lerin başlarında punk rock hareketinin ortaya çıkışına benzer; farklı müzisyenler ve gruplar, ortak bir isyankar ruhla farklı müzikal yaklaşımları bir araya getirerek yeni ve beklenmedik sesler yarattılar.

Sektördeki temel referans noktaları:

Döngülerin üzerine inşa edildiği temel:

Kaynak: Towards-Data-Science

Paylaş