BM25 を使ったスパースリトリーバル
スパースリトリーバルを実装してみましょう。RAG に関する学術論文に質問できるよう、BM25 リトリーバーを作成します。論文はすでに chunks というチャンクに分割されています。OpenAI のチャットモデルとプロンプトは、それぞれ llm と prompt として定義済みです。コンソールに prompt を出力すると、用意された内容を確認できます。
この演習はコースの一部です
LangChain で学ぶ Retrieval Augmented Generation (RAG)
演習の手順
chunksに保存されたドキュメントから BM25 スパースリトリーバーを作成し、検索で5件のドキュメントを返すように設定します。- 提供された
llmとpromptに BM25 リトリーバーを統合する 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?"))