Een LCEL-retrieval chain bouwen

Retrieval Augmented Generation (RAG) met LangChain

Meri Nova

Machine Learning Engineer

Data voorbereiden voor retrieval

Documentchunks worden opgeslagen.

Retrieval Augmented Generation (RAG) met LangChain

Introductie tot LCEL voor RAG

Een gebruikersinvoer.

Retrieval Augmented Generation (RAG) met LangChain

Introductie tot LCEL voor RAG

Een gebruikersinvoer gaat via RunnablePassthrough de chain in en wordt toegewezen aan "question".

Retrieval Augmented Generation (RAG) met LangChain

Introductie tot LCEL voor RAG

De invoer bevraagt de retriever en wordt toegewezen aan "context".

Retrieval Augmented Generation (RAG) met LangChain

Introductie tot LCEL voor RAG

De "context" en "question" worden in de prompttemplate geïntegreerd.

Retrieval Augmented Generation (RAG) met LangChain

Introductie tot LCEL voor RAG

De prompt wordt in het LLM, of model, geïntegreerd om een output te genereren.

Retrieval Augmented Generation (RAG) met LangChain

Introductie tot LCEL voor RAG

De modeloutput wordt doorgegeven aan een parser.

Retrieval Augmented Generation (RAG) met LangChain

Een retriever instantiëren

vector_store = Chroma.from_documents(
    documents=chunks, 
    embedding=embedding_model
)


retriever = vector_store.as_retriever( search_type="similarity", search_kwargs={"k": 2} )
Retrieval Augmented Generation (RAG) met LangChain

Een prompttemplate maken

from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template(""" Gebruik de volgende context om de vraag aan het eind te beantwoorden. Als je het niet weet, zeg dan dat je het niet weet. Context: {context} Vraag: {question} """)
llm = ChatOpenAI(model="gpt-4o-mini", api_key="...", temperature=0)
Retrieval Augmented Generation (RAG) met LangChain

Een LCEL-retrieval chain bouwen

from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser

chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt
| llm
| StrOutputParser()
)
Retrieval Augmented Generation (RAG) met LangChain

De retrieval chain aanroepen

result = chain.invoke({"question": "What are the key findings or results presented in the paper?"})
print(result)
- Topprestaties: RAG-modellen zetten nieuwe records op open-domain vraag-antwoordingstaken...
- Betere generatie: RAG-modellen produceren specifiekere, diversere en feitelijkere taal...
- Dynamisch kennisgebruik: Het niet-parametrische geheugen laat RAG-modellen toegang krijgen tot en ...
Retrieval Augmented Generation (RAG) met LangChain

Laten we oefenen!

Retrieval Augmented Generation (RAG) met LangChain

Preparing Video For Download...