Créer une chaîne de repérage LCEL

Retrieval Augmented Generation (RAG) avec LangChain

Meri Nova

Machine Learning Engineer

Préparer les données pour le repérage

Les segments de document sont stockés.

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour RAG

Une entrée d'utilisateur.

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour RAG

Une entrée passe dans la chaîne via RunnablePassthrough et est assignée à « question ».

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour RAG

L'entrée sert à interroger le récupérateur et est assignée à « context ».

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour RAG

« context » et « question » sont intégrés au gabarit d'invite.

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour RAG

L'invite est transmise au LLM (modèle) pour générer un résultat.

Retrieval Augmented Generation (RAG) avec LangChain

Introduction à LCEL pour RAG

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

Retrieval Augmented Generation (RAG) avec LangChain

Instancier un récupérateur

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 gabarit d'invite

from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template(""" Use the following pieces of context to answer the question at the end. If you don't know the answer, say that you don't know. Context: {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 repérage 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 repérage

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 pour les tâches de questions-réponses en domaine ouvert...
- Meilleure génération : les modèles RAG produisent un langage plus précis, varié et factuel...
- Utilisation dynamique du savoir : 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...