Construirea unui lanț de recuperare LCEL

Retrieval Augmented Generation (RAG) cu LangChain

Meri Nova

Machine Learning Engineer

Pregătirea datelor pentru recuperare

Fragmentele de documente sunt stocate.

Retrieval Augmented Generation (RAG) cu LangChain

Introducere în LCEL pentru RAG

O intrare de la utilizator.

Retrieval Augmented Generation (RAG) cu LangChain

Introducere în LCEL pentru RAG

O intrare de la utilizator care intră în lanț prin RunnablePassthrough și este atribuită câmpului "question".

Retrieval Augmented Generation (RAG) cu LangChain

Introducere în LCEL pentru RAG

Intrarea utilizată pentru interogarea retriever-ului și atribuită câmpului "context".

Retrieval Augmented Generation (RAG) cu LangChain

Introducere în LCEL pentru RAG

Câmpurile "context" și "question" integrate în șablonul de prompt.

Retrieval Augmented Generation (RAG) cu LangChain

Introducere în LCEL pentru RAG

Promptul integrat în LLM pentru a genera un rezultat.

Retrieval Augmented Generation (RAG) cu LangChain

Introducere în LCEL pentru RAG

Rezultatul modelului transmis unui parser.

Retrieval Augmented Generation (RAG) cu LangChain

Instanțierea unui 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) cu LangChain

Crearea unui șablon de prompt

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

Construirea unui lanț de recuperare 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) cu LangChain

Invocarea lanțului de recuperare

result = chain.invoke({"question": "What are the key findings or results presented in the paper?"})
print(result)
- Top Performance: RAG models set new records on open-domain question answering tasks...
- Better Generation: RAG models produce more specific, diverse, and factual language...
- Dynamic Knowledge Use: The non-parametric memory allows RAG models to access and ...
Retrieval Augmented Generation (RAG) cu LangChain

Să exersăm!

Retrieval Augmented Generation (RAG) cu LangChain

Preparing Video For Download...