Bygga en LCEL-hämtningskedja

Retrieval Augmented Generation (RAG) med LangChain

Meri Nova

Machine Learning Engineer

Förbereda data för hämtning

Dokumentbitar lagras.

Retrieval Augmented Generation (RAG) med LangChain

Introduktion till LCEL för RAG

En användarinmatning.

Retrieval Augmented Generation (RAG) med LangChain

Introduktion till LCEL för RAG

En användarinmatning som skickas in i kedjan via RunnablePassthrough och tilldelas "question".

Retrieval Augmented Generation (RAG) med LangChain

Introduktion till LCEL för RAG

Inmatningen används för att söka i hämtaren och tilldelas "context".

Retrieval Augmented Generation (RAG) med LangChain

Introduktion till LCEL för RAG

"context" och "question" integreras i promptmallen.

Retrieval Augmented Generation (RAG) med LangChain

Introduktion till LCEL för RAG

Prompten skickas in i LLM:en, eller modellen, för att generera ett svar.

Retrieval Augmented Generation (RAG) med LangChain

Introduktion till LCEL för RAG

Modellens utdata skickas till en parser.

Retrieval Augmented Generation (RAG) med LangChain

Skapa en hämtare

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

Skapa en promptmall

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

Bygga en LCEL-hämtningskedja

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

Anropa hämtningskedjan

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

Nu kör vi en övning!

Retrieval Augmented Generation (RAG) med LangChain

Preparing Video For Download...