検索チェーンの構築
いよいよこの章の締めくくりです。LangChainのExpression Language(LCEL)を使って検索チェーンを作成しましょう。先ほど読み込んだRAGに関する論文からエンベディング済みの文書チャンクを格納したベクトルストア、プロンプトテンプレート、そしてLLMを統合することで、ドキュメントと対話できるようになります。
前の演習で作成したprompt_templateの内容を確認しておきましょう。こちらはそのまま使用できます。
Use the only the context provided to answer the following question. If you don't know the answer, reply that you are unsure.
Context: {context}
Question: {question}
また、以前作成したエンベディング済み文書チャンクのvector_storeと、必要なライブラリおよびクラスもすべて読み込み済みです。
この演習はコースの一部です
LangChainで学ぶ検索拡張生成(RAG)
演習の手順
- Chromaの
vector_storeを、LCEL検索チェーンで使用するリトリーバーオブジェクトに変換してください。 retriever、prompt_template、llm、文字列出力パーサーを統合して、 LCEL検索チェーンを作成し、入力された質問に答えられるようにしてください。- 用意された質問に対してチェーンを実行してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Convert the vector store into a retriever
retriever = vector_store.____(search_type="similarity", search_kwargs=____)
# Create the LCEL retrieval chain
chain = (
{"____": ____, "question": ____}
| ____
| ____
| ____
)
# Invoke the chain
print(chain.____("Who are the authors?"))