Créer une chaîne de récupération LCEL

Retrieval Augmented Generation (RAG) avec LangChain

Meri Nova

Machine Learning Engineer

Préparer les données pour la récupération

Les fragments de document sont stockés.

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour le RAG

Une saisie utilisateur.

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour le RAG

Une saisie utilisateur entre dans la chaîne via RunnablePassthrough et est affectée à « question ».

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour le RAG

L’entrée interroge le retriever et est affectée à « context ».

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour le RAG

« context » et « question » sont intégrés dans le modèle de prompt.

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour le RAG

Le prompt est intégré au LLM (modèle) pour générer une sortie.

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour le RAG

La sortie du modèle est transmise à un parseur.

Retrieval Augmented Generation (RAG) avec LangChain

Instancier un retriever

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) avec LangChain

Créer un modèle de prompt

from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template(""" Utilisez les éléments de contexte suivants pour répondre à la question finale. Si vous ne savez pas, dites que vous ne savez pas. Contexte : {context} Question : {question} """)
llm = ChatOpenAI(model="gpt-4o-mini", api_key="...", temperature=0)
Retrieval Augmented Generation (RAG) avec LangChain

Créer une chaîne de récupération LCEL

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) avec LangChain

Appeler la chaîne de récupération

result = chain.invoke({"question": "What are the key findings or results presented in the paper?"})
print(result)
- Performance de pointe : les modèles RAG établissent de nouveaux records sur les tâches de questions-réponses en domaine ouvert...
- Meilleure génération : les modèles RAG produisent un langage plus spécifique, varié et factuel...
- Utilisation dynamique des connaissances : la mémoire non paramétrique permet aux modèles RAG d’accéder et ...
Retrieval Augmented Generation (RAG) avec LangChain

Passons à la pratique !

Retrieval Augmented Generation (RAG) avec LangChain

Preparing Video For Download...