LangChain を使用して LLM を活用したアプリケーションを構築する
このページでは、LangChain を使用して LLM 活用アプリケーションを構築する方法を紹介します。このページの概要は、GitHub の手続きガイドにリンクされています。
LangChain とは
LangChain は、デベロッパーが生成 AI アプリケーションや検索拡張生成(RAG)ワークフローを構築するのに役立つ LLM オーケストレーション フレームワークです。複雑な LLM ワークフローを合理化するための構造、ツール、コンポーネントが提供されます。
LangChain の詳細については、Google LangChain のページをご覧ください。LangChain フレームワークの詳細については、LangChain のプロダクト ドキュメントをご覧ください。
Bigtable 用の LangChain コンポーネント
Bigtable には、LangChain とのインターフェースとして次のものがあります。
Bigtable の LangChain クイックスタートで LangChain の使用方法を学習します。このクイックスタートでは、Netflix の映画データセットにアクセスするアプリケーションを作成し、ユーザーが映画データを扱えるようにします。
Bigtable 用のベクトルストア
ベクター ストアを使用すると、テキスト ドキュメントとそのベクター エンベディングやその他のメタデータを Bigtable テーブルに保存できます。この機能には次のような利点があります。
- ベクトル類似度検索や周辺関連性最大化(MMR)検索などの手法を使用してドキュメントを検索します。
- ドキュメントのメタデータを使用して、ベクトル検索結果に対して追加のフィルタリングを行います。
詳細については、LangChain ベクトルストアのトピックをご覧ください。
ベクトルストア手順ガイド
ベクトル ストアに関する Bigtable ガイドでは、次のことを行う方法について説明します。
- インテグレーション パッケージと LangChain をインストールする
- エンベディング サービスを設定する
- Bigtable ストアを作成して構成する
- 接続と認証をカスタマイズする
- kNN アルゴリズムを使用してストアにクエリを実行し、ドキュメントのメタデータで結果をフィルタする
Bigtable の Key-Value ストア
Bigtable は、LangChain 用の Key-Value ストアを ByteStore クラスの形式で提供します。このクラスを使用すると、バイト オブジェクトとして保存されたドキュメントやエンベディングを操作できます。このアプローチは、繰り返しクエリのエンベディングのキャッシュ保存やインデックス作成などのタスクを実行する際に、費用とレイテンシを大幅に削減するのに役立ちます。
詳細については、LangChain キー値ストアのトピックをご覧ください。
Key value ストアの手順ガイド
キー値ストアに関する Bigtable ガイドでは、次のことを行う方法について説明します。
- インテグレーション パッケージと LangChain をインストールする
- 必要なエンジンとテーブルを初期化する
- 接続と認証をカスタマイズする
- ベクトル エンベディングのキャッシュ保存レイヤとして
BigtableByteStoreを使用する方法
Bigtable 用のドキュメント ローダー
ドキュメント ローダーは、LangChain Document オブジェクトの保存、読み込み、削除を行います。たとえば、エンベディングに処理するデータを読み込んで、ベクトルストアに保存するか、チェーンに特定のコンテキストを提供するツールとして使用できます。
Bigtable でドキュメント ローダーからドキュメントを読み込むには、BigtableLoader クラスを使用します。BigtableLoader メソッドは、テーブルから 1 つ以上のドキュメントを返します。BigtableSaver クラスを使用して、ドキュメントの保存と削除を行います。
詳細については、LangChain ドキュメント ローダーのトピックをご覧ください。
ドキュメント ローダーの手順ガイド
ドキュメント ローダーに関する Bigtable ガイドでは、次のことを行う方法を説明します。
- インテグレーション パッケージと LangChain をインストールする
- ドキュメントをテーブルから読み込む
- ローダにフィルタを追加する
- 接続と認証をカスタマイズする
- お客様のコンテンツとメタデータを指定してドキュメントの作成をカスタマイズする
- ドキュメントを保存および削除するために
BigtableSaverを使用してカスタマイズする方法
Bigtable のチャット メッセージの履歴
質問に回答するアプリケーションでは、ユーザーからの追加の質問に回答するのにアプリケーションにコンテキストを提供するために、行われた会話の履歴が必要です。LangChain ChatMessageHistory クラスを使用すると、アプリケーションでメッセージを保存し、さらに回答を作成するために必要に応じて取得できます。メッセージには、質問、回答、談話、挨拶、ユーザーまたはアプリケーションが会話中に行ったその他の文章が含まれます。ChatMessageHistory は各メッセージを保存し、会話ごとにメッセージを連結します。
Bigtable では、このクラスを BigtableChatMessageHistory で拡張します。
チャット メッセージ履歴の手順ガイド
チャット メッセージ履歴に関する Bigtable ガイドでは、次のことを行う方法について説明します。
- LangChain をインストールして Google Cloudに対して認証を行う
- Bigtable スキーマを初期化する
- メッセージの追加と削除のための
BigtableChatMessageHistoryクラスを初期化する - クライアントを使用して接続と認証をカスタマイズする