LangChain を使用して、LLM を活用したアプリケーションを構築する

このページでは、LangChain を使用して LLM 活用アプリケーションを構築する方法を紹介します。このページの概要は、GitHub の手続きガイドにリンクされています。

LangChain とは

LangChain は、デベロッパーが生成 AI アプリケーションや検索拡張生成(RAG)ワークフローを構築するのに役立つ LLM オーケストレーション フレームワークです。複雑な LLM ワークフローを合理化するための構造、ツール、コンポーネントが提供されます。

LangChain の詳細については、Google LangChain のページをご覧ください。LangChain フレームワークの詳細については、LangChain のプロダクト ドキュメントをご覧ください。

Memorystore for Redis Cluster の LangChain コンポーネント

Memorystore for Redis Cluster は、次の LangChain インターフェースを提供します。

Memorystore for Redis Cluster の LangChain クイックスタートで LangChain の使用方法を学習します。

Memorystore for Redis Cluster のベクトル ストア

ベクトルストアによって、ドキュメントとメタデータがベクトル データベースから取得され、保存されます。ベクトルストアをアプリケーションで使用すると、ユーザークエリの意味を解釈するセマンティック検索が可能になります。この種の検索はベクトル検索と呼ばれ、これを利用すると概念的にクエリに一致するトピックを見つけることができます。クエリ時に、検索リクエストのエンベディングに最も類似したエンベディング ベクトルがベクトルストアによって取得されます。LangChain の中では、デベロッパーの代わりにベクトルストアが、エンベディングされたデータの保存とベクトル検索の実行を担当します。

Memorystore for Redis Cluster でベクトルストアを操作するには、RedisVectorStore クラスを使用します。

詳細については、LangChain ベクトルストアのプロダクト ドキュメントをご覧ください。

ベクトルストア手順ガイド

ベクトル ストアに関する Memorystore for Redis Cluster ガイドでは、次のことを行う方法について説明しています。

  • インテグレーション パッケージと LangChain をインストールする
  • ベクトル インデックスを初期化する
  • ベクトル ストア用のドキュメントを準備する
  • ベクトル ストアにドキュメントを追加する
  • 類似度検索(KNN)を行う
  • 範囲ベースの類似度検索を行う
  • 周辺関連性最大化(MMR)検索を行う
  • Retriever としてベクトル ストアを使用する
  • ベクトル ストアからドキュメントを削除する
  • ベクトル インデックスを削除する

Memorystore for Redis Cluster のドキュメント ローダー

ドキュメント ローダによって、LangChain の Document オブジェクトの保存、読み込み、削除が行われます。たとえば、処理対象のデータをエンベディングに読み込んでから、これをベクトルストアに格納することも、チェーンに具体的なコンテキストを提供するツールとして使用することもできます。

Memorystore for Redis Cluster でドキュメント ローダーからドキュメントを読み込むには、MemorystoreDocumentLoader クラスを使用します。ドキュメントの保存と削除を行うには MemorystoreDocumentSaver クラスを使用します。

詳細については、LangChain ドキュメント ローダのトピックをご覧ください。

ドキュメント ローダの手順ガイド

ドキュメント ローダーに関する Memorystore for Redis Cluster ガイドでは、次のことを行う方法について説明しています。

  • インテグレーション パッケージと LangChain をインストールする
  • ドキュメントをテーブルから読み込む
  • ローダにフィルタを追加する
  • 接続と認証をカスタマイズする
  • 顧客のコンテンツとメタデータを指定してドキュメントの構築をカスタマイズする
  • ドキュメントの保存と削除を行うための MemorystoreDocumentSaver の使用とカスタマイズの方法

Memorystore for Redis Cluster のチャット メッセージ履歴

質問に回答するアプリケーションでは、ユーザーからの追加の質問に回答するのにアプリケーションにコンテキストを提供するために、行われた会話の履歴が必要です。LangChain の ChatMessageHistory クラスをアプリケーションで使用すると、メッセージをデータベースに保存しておいて、さらに回答を考案するために必要になったときに取り出すことができます。メッセージには、質問、回答、談話、挨拶、ユーザーまたはアプリケーションが会話中に行ったその他の文章が含まれます。ChatMessageHistory によって各メッセージが保存され、会話ごとにメッセージが連結されます。

Memorystore for Redis Cluster は、MemorystoreChatMessageHistory でこのクラスを拡張します。

チャット メッセージ履歴の手順ガイド

チャット メッセージ履歴に関する Memorystore for Redis Cluster ガイドでは、次の方法について説明しています。

  • LangChain をインストールして Google Cloudに対して認証を行う
  • メッセージの追加と削除のための MemorystoreChatMessageHistory クラスを初期化する