BM25を使った疎検索
疎検索(スパースリトリーバル)を実装してみましょう。RAGに関する学術論文について質問するための、BM25リトリーバーを作成します。この論文はすでに chunksという名前のチャンクに分割されています。また、OpenAIのチャットモデルとプロンプトが、それぞれllmとpromptとして定義されています。用意されているpromptの内容は、コンソールに出力して確認してください。
この演習はコースの一部です
LangChainで学ぶ検索拡張生成(RAG)
演習の手順
chunksに格納されたドキュメントからBM25の疎検索ツールを作成してください。検索時に5件のドキュメントを返すよう設定してください。- BM25リトリーバーと、用意された
llmとpromptを統合するLCEL検索チェーンを作成してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create a BM25 retriever from chunks
retriever = ____
# Create the LCEL retrieval chain
chain = ({"context": ____, "question": ____}
| ____
| ____
| StrOutputParser()
)
print(chain.invoke("What are knowledge-intensive tasks?"))