Budowanie łańcucha wyszukiwania
Czas na finał rozdziału! Stworzysz łańcuch wyszukiwania (retrieval chain) przy użyciu języka wyrażeń LangChain (LCEL). Połączy on magazyn wektorowy zawierający osadzone fragmenty dokumentu z artykułu RAG, który wcześniej wczytałeś, z szablonem promptu i modelem LLM – dzięki temu będziesz mógł zadawać pytania dotyczące swoich dokumentów.
Poniżej znajdziesz przypomnienie prompt_template z poprzedniego ćwiczenia, który jest dostępny do użycia:
Use the only the context provided to answer the following question. If you don't know the answer, reply that you are unsure.
Context: {context}
Question: {question}
vector_store z osadzonymi fragmentami dokumentu, który wcześniej utworzyłeś, został już załadowany wraz ze wszystkimi wymaganymi bibliotekami i klasami.
To ćwiczenie jest częścią kursu
Retrieval Augmented Generation (RAG) z LangChain
Instrukcje do ćwiczenia
- Przekształć
vector_storeChroma w obiekt retrievera, aby można go było użyć w łańcuchu LCEL. - Utwórz łańcuch wyszukiwania LCEL, łącząc
retriever,prompt_template,llmoraz parser wyjścia tekstowego, tak aby łańcuch mógł odpowiadać na zadawane pytania. - Uruchom łańcuch na podanym pytaniu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Convert the vector store into a retriever
retriever = vector_store.____(search_type="similarity", search_kwargs=____)
# Create the LCEL retrieval chain
chain = (
{"____": ____, "question": ____}
| ____
| ____
| ____
)
# Invoke the chain
print(chain.____("Who are the authors?"))