Een RAG-chain maken
Tijd om alle onderdelen in je RAG-workflow samen te brengen! Je hebt de documenten voorbereid en in een Chroma-database geladen voor retrieval. Je hebt een prompttemplate gemaakt die de opgehaalde stukken uit het academische artikel opneemt en vragen beantwoordt.
De prompttemplate die je in de vorige oefening hebt gemaakt is beschikbaar als prompt_template, een OpenAI-model is geïnitialiseerd als llm, en de code om je retriever opnieuw te maken is in het script opgenomen.
Deze oefening maakt deel uit van de cursus
LLM-toepassingen ontwikkelen met LangChain
Oefeninstructies
- Maak een LCEL-chain met de pipe-operator (
|) omretriever,prompt_templateenllmachter elkaar te koppelen. - De chain moet de retriever mappen naar
"context"en de gebruikersinvoer naar"question". - Roep de chain aan met de
.invoke()-methode op de meegegeven vraag.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)