Membuat rantai RAG
Sekarang saatnya menyatukan semua komponen dalam alur kerja RAG Anda! Anda telah menyiapkan dokumen dan memasukkannya ke dalam basis data Chroma untuk pengambilan kembali. Anda membuat templat prompt untuk menyertakan potongan yang diambil dari makalah akademik dan menjawab pertanyaan.
Templat prompt yang Anda buat pada latihan sebelumnya tersedia sebagai prompt_template, sebuah model OpenAI telah diinisialisasi sebagai llm, dan kode untuk membuat ulang retriever telah disertakan dalam skrip.
Latihan ini adalah bagian dari kursus
Mengembangkan Aplikasi LLM dengan LangChain
Petunjuk latihan
- Buat rantai LCEL menggunakan operator pipa (
|) untuk menghubungkanretriever,prompt_template, danllmsecara berurutan. - Rantai harus memetakan retriever ke
"context"dan masukan pengguna ke"question". - Panggil rantai menggunakan metode
.invoke()pada pertanyaan yang disediakan.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
vectorstore = Chroma.from_documents(
docs,
embedding=OpenAIEmbeddings(api_key='', model='text-embedding-3-small'),
persist_directory=os.getcwd()
)
retriever = vectorstore.as_retriever(
search_type="similarity",
search_kwargs={"k": 3}
)
# Create a chain to link retriever, prompt_template, and llm
rag_chain = ({"context": ____, "question": ____}
| prompt_template
| llm)
# Invoke the chain
response = rag_chain.____("Which popular LLMs were considered in the paper?")
print(response.content)