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, kursun bir parçasıdır
LangChain ile LLM Uygulamaları Geliştirme
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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)