Tạo một RAG chain
Giờ là lúc ghép tất cả các thành phần trong quy trình RAG của bạn! Bạn đã chuẩn bị tài liệu và nạp chúng vào cơ sở dữ liệu Chroma để truy xuất. Bạn đã tạo một prompt template để đưa các đoạn văn bản đã truy xuất từ bài báo học thuật vào và trả lời câu hỏi.
Prompt template bạn đã tạo ở bài trước có sẵn dưới tên prompt_template, một mô hình OpenAI đã được khởi tạo là llm, và mã để tạo lại retriever đã được đưa vào trong script.
Bài tập này là một phần của khóa học
Phát triển ứng dụng LLM với LangChain
Hướng dẫn bài tập
- Tạo một LCEL chain bằng toán tử pipe (
|) để nối tuần tựretriever,prompt_template, vàllm. - Chain cần ánh xạ retriever vào
"context"và đầu vào của người dùng vào"question". - Gọi chain bằng phương thức
.invoke()với câu hỏi đã cung cấp.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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)