Baştan Sona RAG Zinciri Oluşturma
Hepsini birbirine bağlayın: yükleyici -> bölücü -> gömüntüler -> vektör deposu -> getirici -> istem -> model.
Baştan Sona RAG Zinciri Oluşturma, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Proje Hedefi
Yükleyicileri, bölücüleri, vektör depolarını ve LCEL'i eksiksiz, üretim ortamına uygun bir RAG zincirinde birleştirin.
Step 1: Load and Chunk
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
loader = PyPDFLoader('handbook.pdf')
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=100)
chunks = splitter.split_documents(docs)
print(f'{len(chunks)} chunks loaded')Step 2: Embed and Store
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
embeddings = OpenAIEmbeddings(model='text-embedding-3-small')
store = Chroma.from_documents(
chunks,
embeddings,
persist_directory='./handbook_db'
)Step 3: Set Up Retriever
retriever = store.as_retriever(
search_type='similarity',
search_kwargs={'k': 4}
)Step 4: Define the Prompt
from langchain.prompts import ChatPromptTemplate
rag_prompt = ChatPromptTemplate.from_template('''
You are a helpful assistant. Use the context below to answer.
If the answer is not in the context, say you do not know.
Cite sources like [1], [2].
Context:
{context}
Question: {question}
Answer:
''')Step 5: Format Documents Helper
def format_docs(docs):
return '\n\n'.join(
f'[{i+1}] (source: {d.metadata.get("source", "?")}, page {d.metadata.get("page", "?")})\n{d.page_content}'
for i, d in enumerate(docs)
)
from types import SimpleNamespace
docs = [
SimpleNamespace(metadata={'source': 'handbook.pdf', 'page': 3}, page_content='Vacation policy details.'),
SimpleNamespace(metadata={'source': 'handbook.pdf', 'page': 5}, page_content='Sick leave details.'),
]
print(format_docs(docs))
Step 6: Assemble the LCEL Chain
from langchain_core.runnables import RunnablePassthrough
from langchain.schema.output_parser import StrOutputParser
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model='gpt-4o-mini', temperature=0)
rag_chain = (
{'context': retriever | format_docs, 'question': RunnablePassthrough()}
| rag_prompt
| model
| StrOutputParser()
)Step 7: Invoke
answer = rag_chain.invoke('What is our refund policy?')
print(answer)Step 8: Stream the Answer
for chunk in rag_chain.stream('What is our refund policy?'):
print(chunk, end='', flush=True)9. Adım: Kaynakları Ayrı Döndürme
Bazen çıktıda hem yanıtı hem de getirilen belgeleri AND birlikte istersiniz:
from langchain_core.runnables import RunnableParallel
rag_with_sources = RunnableParallel(
context=retriever,
answer=rag_chain
)
result = rag_with_sources.invoke('What is our refund policy?')
print(result['answer'])
for doc in result['context']:
print(doc.metadata)10. Adım: Konuşmalı RAG
Geçmişi dikkate alan getirmeyi ekleyin — takip sorularını getirme işleminden önce bağımsız bir biçime yeniden yazın:
from langchain.chains import create_history_aware_retriever
# 'And what about XL sizes?' -> 'What is the refund policy for XL sizes?'11. Adım: Zinciri Değerlendirme
LangSmith tüm zincir çağrılarını kaydeder. Gerçek kullanımdan veri kümeleri oluşturabilir ve değerlendirmeler çalıştırabilirsiniz.
Üretim Ortamı Hususları
- Model sürümlerini sabitleyin
- max_tokens değerini ayarlayın
- Belirteç kullanımını izlemeyi ekleyin
- Geri dönüş modeliyle yeniden denemeleri uygulayın
- Gömme sonuçlarını önbelleğe alın (OpenAI'de zaten belirlenimlidir)
- İzler için Langfuse/LangSmith ekleyin
format_docs Amacı
Getirici ile istem arasında neden bir format_docs yardımcısı kullanılır?
Özet
LCEL ile eksiksiz bir RAG zinciri oluşturdunuz. Bu iskelet, yukarıdaki eklemelerle üretim ortamına ölçeklenebilir.
Yapay zeka eğitmeniyle AI Agents öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 60
- Dersler
- 239
Sıkça Sorulan Sorular
“Baştan Sona RAG Zinciri Oluşturma” dersi ücretsiz mi?
Evet — “Baştan Sona RAG Zinciri Oluşturma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.
“Baştan Sona RAG Zinciri Oluşturma” dersinde ne öğreneceğim?
Hepsini birbirine bağlayın: yükleyici -> bölücü -> gömüntüler -> vektör deposu -> getirici -> istem -> model. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Agents öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Baştan Sona RAG Zinciri Oluşturma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- LangChain Mimarisi: Modeller, İstemler, Zincirler
- Yükleyiciler, Bölücüler ve Vektör Depoları
- LCEL (LangChain İfade Dili)
- Baştan Sona RAG Zinciri Oluşturma