始める無料で始める

RAGチェーンの作成

いよいよ、RAGワークフローのすべてのコンポーネントを組み合わせましょう。ドキュメントを準備し、検索用のChromaデータベースに取り込みました。また、学術論文から取得したチャンクを含め、質問に回答するためのプロンプトテンプレートも作成しました。

前の演習で作成したプロンプトテンプレートは prompt_template として利用できます。OpenAIモデルは llm として初期化済みで、retriever を再作成するコードもスクリプトに含まれています。

この演習はコースの一部です

LangChainを使ったLLMアプリケーション開発

コースを見る

演習の手順

  • パイプオペレーター(|)を使ってLCELチェーンを作成し、retrieverprompt_templatellmを順に接続します。
  • チェーンはリトリーバーを"context"に、ユーザーの入力を"question"にマッピングする。
  • 提供された質問に対して.invoke()メソッドを用いて連鎖を呼び出す。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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)
コードを編集して実行