Vytvoření řetězce načítání v LCEL

Retrieval Augmented Generation (RAG) with LangChain

Meri Nova

Machine Learning Engineer

Příprava dat pro načítání

Bloky dokumentů jsou uloženy.

Retrieval Augmented Generation (RAG) with LangChain

Úvod do LCEL pro RAG

Vstup od uživatele.

Retrieval Augmented Generation (RAG) with LangChain

Úvod do LCEL pro RAG

Vstup od uživatele vstupující do řetězce přes RunnablePassthrough a přiřazený k "question".

Retrieval Augmented Generation (RAG) with LangChain

Úvod do LCEL pro RAG

Vstup použitý k dotazu na retriever a přiřazený k "context".

Retrieval Augmented Generation (RAG) with LangChain

Úvod do LCEL pro RAG

"context" a "question" integrované do šablony promptu.

Retrieval Augmented Generation (RAG) with LangChain

Úvod do LCEL pro RAG

Prompt integrovaný do LLM (modelu) pro generování výstupu.

Retrieval Augmented Generation (RAG) with LangChain

Úvod do LCEL pro RAG

Výstup modelu předaný do parseru.

Retrieval Augmented Generation (RAG) with LangChain

Vytvoření instance retrieveru

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

Vytvoření šablony promptu

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

Vytvoření řetězce načítání v 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) with LangChain

Spuštění řetězce načítání

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

Pojďme si procvičit!

Retrieval Augmented Generation (RAG) with LangChain

Preparing Video For Download...