Membangun rantai retrieval LCEL

Retrieval Augmented Generation (RAG) dengan LangChain

Meri Nova

Machine Learning Engineer

Menyiapkan data untuk retrieval

Potongan dokumen disimpan.

Retrieval Augmented Generation (RAG) dengan LangChain

Pengantar LCEL untuk RAG

Masukan pengguna.

Retrieval Augmented Generation (RAG) dengan LangChain

Pengantar LCEL untuk RAG

Masukan pengguna masuk ke chain via RunnablePassthrough dan ditetapkan ke "question".

Retrieval Augmented Generation (RAG) dengan LangChain

Pengantar LCEL untuk RAG

Input dipakai untuk kueri retriever dan ditetapkan ke "context".

Retrieval Augmented Generation (RAG) dengan LangChain

Pengantar LCEL untuk RAG

"context" dan "question" digabungkan ke template prompt.

Retrieval Augmented Generation (RAG) dengan LangChain

Pengantar LCEL untuk RAG

Prompt digabungkan ke LLM, atau model, untuk menghasilkan output.

Retrieval Augmented Generation (RAG) dengan LangChain

Pengantar LCEL untuk RAG

Output model diteruskan ke parser.

Retrieval Augmented Generation (RAG) dengan LangChain

Membuat instance 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) dengan LangChain

Membuat template prompt

from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template(""" Gunakan konteks berikut untuk menjawab pertanyaan di akhir. Jika tidak tahu jawabannya, katakan tidak tahu. Context: {context} Question: {question} """)
llm = ChatOpenAI(model="gpt-4o-mini", api_key="...", temperature=0)
Retrieval Augmented Generation (RAG) dengan LangChain

Membangun rantai retrieval 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) dengan LangChain

Menjalankan rantai retrieval

result = chain.invoke({"question": "What are the key findings or results presented in the paper?"})
print(result)
- Kinerja puncak: Model RAG mencetak rekor baru pada tugas tanya jawab domain terbuka...
- Generasi lebih baik: Model RAG menghasilkan bahasa yang lebih spesifik, beragam, dan faktual...
- Pemakaian pengetahuan dinamis: Memori non-parametrik memungkinkan model RAG mengakses dan ...
Retrieval Augmented Generation (RAG) dengan LangChain

Ayo berlatih!

Retrieval Augmented Generation (RAG) dengan LangChain

Preparing Video For Download...