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

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

LangChain とは

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

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

Spanner 用の LangChain コンポーネント

Spanner には、次の LangChain インターフェースがあります。

Spanner 用の LangChain クイックスタートで、これらのコンポーネントをアプリケーションで使用する方法を学習する。

Spanner 用のベクトル ストア

ベクトル ストアは、ベクトル データベースからドキュメントとメタデータを取得して保存します。ベクトル ストアにより、ユーザークエリの意味を解釈するセマンティック検索をアプリケーションで行うことができます。このような検索はベクトル検索と呼ばれ、概念的にクエリに一致するトピックを見つけることができます。クエリ時に、ベクトルストアは、検索リクエストのエンベディングに最も近いエンベディング ベクトルを取得します。LangChain では、ベクトル ストアが埋め込みデータの保存とベクトル検索を行います。

Spanner でベクトル ストアを操作するには、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 セッションを削除する