使用 BM25 的稀疏檢索
來實作一次稀疏檢索吧!你將建立一個 BM25 retriever,來針對一篇關於 RAG 的學術論文發問。該論文已經被切成多個小段,存放在 chunks。OpenAI 的聊天模型與提示也分別定義為 llm 與 prompt。你可以在主控台列印 prompt 來查看內容。
本練習屬於課程
使用 LangChain 的 Retrieval Augmented Generation(RAG)
練習說明
- 以
chunks中的文件建立一個 BM25 稀疏 retriever,並設定在檢索時回傳5份文件。 - 建立一個 LCEL 檢索鏈,將 BM25 retriever 與提供的
llm和prompt整合。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create a BM25 retriever from chunks
retriever = ____
# Create the LCEL retrieval chain
chain = ({"context": ____, "question": ____}
| ____
| ____
| StrOutputParser()
)
print(chain.invoke("What are knowledge-intensive tasks?"))