Retrieval Augmented Generation (RAG) avec LangChain
Meri Nova
Machine Learning Engineer

Encoder des segments en un seul vecteur avec des composantes non nulles

Encoder des segments en un seul vecteur avec des composantes non nulles

Encoder par appariement de mots avec des composantes surtout nulles

TF-IDF : encode les documents à partir des mots qui les rendent uniques

BM25 : atténue l'effet de saturation causé par les mots très fréquents
from langchain_community.retrievers import BM25Retrieverchunks = [ "Python was created by Guido van Rossum and released in 1991.", "Python is a popular language for machine learning (ML).", "The PyTorch library is a popular Python library for AI and ML." ]bm25_retriever = BM25Retriever.from_texts(chunks, k=3)
results = bm25_retriever.invoke("When was Python created?")
print("Most Relevant Document:")
print(results[0].page_content)
Most Relevant Document:
Python was created by Guido van Rossum and released in 1991.
retriever = BM25Retriever.from_documents( documents=chunks, k=5 )chain = ({"context": retriever, "question": RunnablePassthrough()} | prompt | llm | StrOutputParser() )
print(chain.invoke("How can LLM hallucination impact a RAG application?"))
The RAG application may generate responses that are off-topic or inaccurate.
Retrieval Augmented Generation (RAG) avec LangChain