Bir RAG zinciri oluşturma
Şimdi RAG iş akışındaki tüm bileşenleri bir araya getirme zamanı! Belgeleri hazırladın ve alma işlemi için bir Chroma veritabanına aktardın. Akademik makaleden getirilen parçaları (chunk) ve soruları yanıtlamayı içeren bir istem kalıbı oluşturdun.
Önceki egzersizde oluşturduğun istem kalıbı prompt_template olarak mevcut, bir OpenAI modeli llm olarak başlatıldı ve retriever’ını yeniden oluşturmak için gereken kod betiğe eklendi.
Bu egzersiz
LangChain ile LLM Uygulamaları Geliştirme
kursunun bir parçasıdırEgzersiz talimatları
retriever,prompt_templatevellm’i sırayla bağlamak için pipe operatörünü (|) kullanarak bir LCEL zinciri oluştur.- Zincir, retriever’ı
"context"’e ve kullanıcı girdisini"question"’a eşlemeli. - Sağlanan soruyu
.invoke()yöntemiyle zincire göndererek çalıştır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
vectorstore = Chroma.from_documents(
docs,
embedding=OpenAIEmbeddings(api_key='', model='text-embedding-3-small'),
persist_directory=os.getcwd()
)
retriever = vectorstore.as_retriever(
search_type="similarity",
search_kwargs={"k": 3}
)
# Create a chain to link retriever, prompt_template, and llm
rag_chain = ({"context": ____, "question": ____}
| prompt_template
| llm)
# Invoke the chain
response = rag_chain.____("Which popular LLMs were considered in the paper?")
print(response.content)