Retrieval-Augmented Generation (RAG)

Agentic RAG: Dinamik Sorgu Çözümü İçin Otonom Alım Ajanlarının Uygulanması

Alım-Güçlendirilmiş Üretim (RAG), Büyük Dil Modellerini (LLM'ler) özel verilerde temellendirmek için standart mimari haline geldi. Ancak geleneksel RAG hatları sıklıkla kritik bir sınırlamadan muzdarip: statik olmalarıdır. Basit bir gömme araması ve ardından bağlam enjeksiyonu, kullanıcı sorgusu belirsiz olduğunda, çok adımlı akıl yürütme gerektirdiğinde veya yalnızca anlamsal arama yerine araç kombinasyonu talep ettiğinde başarısız olur. İşte Agentic RAG devreye girer.

Agentic RAG, genellikle bir ajan olarak hareket eden bir LLM tarafından desteklenen, otonom bir akıl yürütme katmanı sunar; bu ajan, bilgilerin nasıl alınacağına karar verir. Top-k vektörlerini körü körüne almak yerine, ajan eylemlerini planlar, araç çağrıları gerçekleştirir, sonuçları değerlendirir ve kullanıcı sorusunu yanıtlamak için yeterli kanıt elde edene kadar yinelemeye devam eder.

Doğrusal Hattlardan Otonom Döngülere

Geleneksel bir RAG sisteminde akış doğrusaldır: Kullanıcı Sorgusu -> Gömme -> Vektör Araması -> LLM Tamamlama. İlk arama başarısız olursa, sistem başarısız olur. Buna karşılık, bir Agentic RAG sistemi bir döngü içinde çalışır. Ajan, kullanabileceği bir dizi "araç" (çağırabileceği işlevler) ve bir hedef verilir. Ajan, hangi aracı hangi parametrelerle kullanacağına karar vermek için akıl yürütme yeteneklerini kullanır.

Kullanıcının "Rakibimizin son güncellememizi yayınladığı anda hisse senedi fiyatı neydi?" diye sorduğunu varsayalım. Statik bir RAG sistemi, açık talimatlar olmadan "son güncelleme"yi belirli bir tarihle ilişkilendirmekte zorlanabilir. Bir ajan ise bu isteği şu şekilde parçalara ayırabilir:

  1. "Son güncelleme"nin tarihini iç belgelerden belirler.
  2. "Rakibi" bağlamdan belirler.
  3. Belirli tarihteki hisse senedi fiyatı için bir finans API'sine veya veritabanına sorgu gönderir.
  4. Nihai cevabı sentezler.

LangChain ve ReAct Deseni ile Uygulama

LangChain gibi çerçeveler sayesinde bir Agentic RAG sistemi kurmak günümüzde önemli ölçüde daha kolaydır. Temel kavram, LLM'nin problemi akıl yürütme ve eylem alma arasında değiştiği ReAct (Reasoning and Acting - Akıl Yürütme ve Eylem) desenine dayanır.

Aşağıda, bir ajan için araçları tanımlama ve sarmalama konusunda pratik bir örnek bulunmaktadır. Burada, vektör veritabanında arama yapmak ve canlı hava durumu verilerini almak için iki araç tanımlıyoruz; bu da agentic alımın hibrit doğasını göstermektedir.

from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI

# Ajan için özel araçları tanımlayın
@tool
def search_knowledge_base(query: str) -> str:
    """İlgili belgeler için iç vektör veritabanını arayın."""
    # FAISS veya Pinecone'a bağlanma mantığı buraya gelir
    return f"'{query}' için arama sonuçları..."

@tool
def get_stock_price(ticker: str, date: str) -> str:
    """Belirli bir sembol ve tarih için hisse senedi fiyat verilerini alın."""
    # Yahoo Finance API veya SQL DB'ye bağlanma mantığı buraya gelir
    return f"{ticker}, {date} tarihinde 150,00 $ idi"

# LLM'yi başlatın
llm = ChatOpenAI(model="gpt-4", temperature=0)

# Araçları birleştirin
tools = [search_knowledge_base, get_stock_price]

# Ajanı oluşturun
agent = create_openai_tools_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# Sorguyu çalıştırın
response = agent_executor.invoke({
    "input": "V2.0'yı yayınladığımız gün AAPL'un fiyatı neydi?"
})
print(response['output'])

Temel Faydalar ve Zorluklar

Agentic RAG'ın temel faydası dayanıklılıktır. İlk alım adımı yetersiz bağlam sağlarsa, ajan takip sorguları yapabilir, farklı anahtar kelimeler deneyebilir veya hatta ilgili bilgi bulunmadığına karar verebilir. Bu, ajan yanıt vermeden önce bilgileri doğruladığı için halüsinasyonları azaltır.

Bununla birlikte, bunun bir maliyeti vardır. Akıl yürütme ve karar verme için gerekli olan çoklu LLM çağrıları nedeniyle agentic sistemler daha fazla hesaplama gücü gerektirir ve daha yavaştır. Ayrıca, ajanın iç düşünce sürecini ("düşünce zinciri") döngülerde sıkışıp kalmadığından veya kötü araç seçimleri yapmadığından emin olmak için izlemek gerektiğinden hata ayıklama karmaşık olabilir.

Sonuç

Daha gelişmiş AI uygulamalarına doğru ilerledikçe, statik RAG hatları dinamik alım yapmaya yetenekli otonom ajanların yerini alacaktır. Geliştiriciler için bu, odak noktasını yalnızca vektör indekslerini ayarlamaktan sağlam araç tanımları tasarlamaya ve ajan akıl yürütme yollarını değerlendirmeye kaydırmak anlamına gelir. Karmaşıklık getirse de, Agentic RAG'ın çok adımlı ve belirsiz sorguları ele alma yeteneği, kurumsal AI'nın bir sonraki nesli için vazgeçilmez bir araç haline getirmektedir.

Share: