このページでは、LangChain を使用して LLM を活用したアプリケーションを構築する方法について説明します。このページの概要は、GitHub の手続きガイドにリンクされています。
LangChain とは
LangChain は、デベロッパーが生成 AI アプリケーションや検索拡張生成(RAG)ワークフローの構築に役立つ LLM オーケストレーション フレームワークです。複雑な LLM ワークフローを合理化するための構造、ツール、コンポーネントが提供されます。
LangChain の詳細については、Google LangChain のページをご覧ください。LangChain フレームワークの詳細については、 LangChain のプロダクト ドキュメントをご覧ください。
Spanner 用の LangChain コンポーネント
Spanner には、次の LangChain インターフェースが用意されています。
Spanner の LangChain クイックスタートで、これらのコンポーネントをアプリケーションで使用する方法を学習します。
Spanner 用のベクトルストア
ベクトルストアによって、ドキュメントとメタデータがベクトル データベースから取得され、保存されます。ベクトルストアをアプリケーションで使用すると、ユーザークエリの意味を解釈するセマンティック検索が可能になります。この種の検索はベクトル検索と呼ばれ、これを利用すると概念的にクエリに一致するトピックを見つけることができます。クエリ時に、検索リクエストのエンベディングに最も類似したエンベディング ベクトルがベクトルストアによって取得されます。LangChain では、ベクトル ストアが埋め込みデータの保存とベクトル検索を行います。
Firestore でベクトルストアを操作するには、SpannerVectorStore
クラスを使用します。
詳細については、LangChain ベクトルストアのプロダクト ドキュメントをご覧ください。
ベクトルストア手順ガイド
ベクトルストアに関する Spanner ガイドでは、次のことを行う方法について説明します。
- 統合パッケージと LangChain をインストールする
- ベクトル ストアのテーブルを初期化する
VertexAIEmbeddings
を使用してエンベディング サービスを設定するSpannerVectorStore
を初期化する- ドキュメントを追加、削除する
- 類似ドキュメントを検索する
- カスタム ベクトルストアを作成して、ベクトル エンベディングを含むテーブルを持つ既存の Spanner データベースに接続する
Spanner 用ドキュメント ローダー
ドキュメント ローダーは、LangChain Document
オブジェクトの保存、読み込み、削除を行います。たとえば、エンベディングに処理するデータを読み込んでベクトル ストアに保存したり、チェーンに特定のコンテキストを提供するツールとして使用することができます。
Spanner からドキュメントを読み込むには、SpannerLoader
クラスを使用します。
SpannerDocumentSaver
クラスを使用して、ドキュメントの保存と削除を行います。
詳細については、LangChain ドキュメント ローダーのトピックをご覧ください。
ドキュメント ローダーの手順ガイド
ドキュメント ローダーに関する Spanner ガイドでは、次のことを行う方法について説明します。
- 統合パッケージと LangChain をインストールする
- テーブルからドキュメントを読み込む
- ローダーにフィルタを追加する
- 接続と認証をカスタマイズする
- 顧客のコンテンツとメタデータを指定してドキュメントの作成をカスタマイズする
- ドキュメントを保存および削除するために
SpannerDocumentSaver
を使用してカスタマイズする方法
Spanner のチャット メッセージ履歴
質問と回答のアプリケーションでは、ユーザーからの追加の質問に回答するためにアプリケーションのコンテキストを提供するために、会話で発話された内容の履歴が必要です。LangChain ChatMessageHistory
クラスを使用すると、アプリケーションがメッセージをデータベースに保存し、必要に応じてさらに回答を作成するためにそれらを検索できます。メッセージには、質問、回答、談話、挨拶、ユーザーまたはアプリケーションが会話中に行ったその他の文章が含まれます。ChatMessageHistory
は各メッセージを保存し、会話ごとにメッセージを連結します。
Spanner では、このクラスを SpannerChatMessageHistory
で拡張します。
チャット メッセージ履歴の手順ガイド
チャット メッセージ履歴に関する Spanner ガイドをでは、次のことを行う方法について説明します。
- LangChain をインストールして Google Cloud に対して認証する
- テーブルを初期化する
- メッセージの追加と削除のための
SpannerChatMessageHistory
クラスを初期化する - クライアントを使用して接続と認証をカスタマイズする
SpannerChatMessageHistory
セッションを削除する