RAG (Retrieval Augmented Generation), LLM'leri özel bilgi tabanlarıyla güçlendiren bir AI mimarisidir. Kurumsal veriler üzerinde doğru ve güncel yanıtlar üretmek için kullanılır.
RAG Nedir?
- Retrieval + Generation kombinasyonu
- LLM'e context sağlama
- Hallucination azaltma
- Güncel bilgi kullanımı
- Domain-specific knowledge
RAG Pipeline
- Indexing: Dökümanları chunk'la, embed et, vector DB'ye kaydet
- Retrieval: Sorguya benzer chunk'ları bul
- Augmentation: Context olarak prompt'a ekle
- Generation: LLM ile yanıt üret
Basit RAG Implementasyonu
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains import RetrievalQA
# 1. Dökümanları yükle ve chunk'la
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
docs = text_splitter.split_documents(documents)
# 2. Vector store oluştur
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(docs, embeddings)
# 3. RAG chain
llm = ChatOpenAI(model="gpt-4-turbo")
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
retriever=vectorstore.as_retriever(search_kwargs={"k": 5}),
return_source_documents=True
)
# 4. Soru sor
result = qa_chain({"query": "Şirketin iade politikası nedir?"})
print(result["result"])
Kurumsal Kullanım Alanları
- Internal knowledge base Q&A
- Customer support bot
- Legal document analysis
- Technical documentation
- HR policy assistant
- Sales enablement
RAG Optimizasyonu
- Chunking: Semantic chunking, overlap
- Embedding: Domain-tuned models
- Retrieval: Hybrid search (keyword + semantic)
- Reranking: Cross-encoder ile sıralama
- Prompt: Few-shot examples
Değerlendirme Metrikleri
- Faithfulness (kaynaklara bağlılık)
- Answer relevancy
- Context precision/recall
- Groundedness
Araçlar
- LangChain, LlamaIndex
- Pinecone, Weaviate, Chroma
- OpenAI, Anthropic, Cohere
- Ragas (evaluation)
RAG, kurumsal AI'ın temel mimarisidir. LLM gücünü özel verilerinizle birleştirin.