LangChain on Vertex AI

LangChain on Vertex AI(プレビュー)により、LangChain のオープンソース ライブラリを活用してカスタムの生成 AI アプリケーションを構築し、モデル、ツール、デプロイに Vertex AI を使用できます。LangChain on Vertex AI(プレビュー)を使用すると、次のことができます。

  • 使用する大規模言語モデル(LLM)を選択する。
  • 外部 API にアクセスするツールを定義する。
  • オーケストレーション フレームワークで、ユーザーとシステム コンポーネント間のインターフェースを構成する。
  • フレームワークをマネージド ランタイムにデプロイする。

利点

  • カスタマイズ可能: LangChain の標準化されたインターフェースを利用することで、LangChain on Vertex AI を採用してさまざまな種類のアプリケーションを構築できます。アプリケーションのロジックをカスタマイズし、任意のフレームワークを組み込むことができるため、高い柔軟性を実現できます。
  • デプロイを簡素化: LangChain on Vertex AI は、LangChain と同じ API を使用して LLM とやり取りし、アプリケーションを構築します。LangChain on Vertex AI では、Reasoning Engine ランタイムがシングルクリック デプロイをサポートし、ライブラリに基づいて準拠 API を生成するため、Vertex AI LLM によるデプロイが簡素化され、高速化されます。
  • Vertex AI エコシステムとのインテグレーション: LangChain on Vertex AI の Reasoning Engine は、Vertex AI のインフラストラクチャとビルド済みコンテナを使用して、LLM アプリケーションのデプロイをサポートします。Vertex AI API を使用して、Gemini モデル、関数呼び出し拡張機能と統合できます。
  • 安全、非公開、スケーラブル: 開発プロセスを独自に管理する代わりに、単一の SDK 呼び出しを使用できます。Reasoning Engine マネージド ランタイムを使用すると、アプリケーション サーバーの開発、コンテナの作成、認証、IAM、スケーリングの構成などのタスクから解放されます。Vertex AI は、自動スケーリング、リージョンの拡大、コンテナの脆弱性に対応します。

ユースケース

エンドツーエンドの例を使用して Vertex AI の LangChain の詳細を確認するには、次のリソースをご覧ください。

ユースケース 説明 リンク
公開 API に接続して生成 AI アプリケーションを構築する 通貨を変換する。

通貨両替アプリに接続する関数を作成して、モデルが「今日のユーロとドルの為替レートは?」などのクエリに正確な回答を提供できるようにします。
Vertex AI SDK for Python ノートブック - Reasoning Engine を使用したエージェントの構築とデプロイの概要
コミュニティ ソーラー プロジェクトの設計。

設置場所の候補を特定し、関連する政府機関やサプライヤーを調べ、地域や建物の衛星画像と太陽光発電のポテンシャルを確認し、太陽光パネルを設置するのに最適な場所を見つけます。
Vertex AI SDK for Python ノートブック - Vertex AI Reasoning Engine を使用して Google Maps API エージェントを構築してデプロイする
データベースに接続して生成 AI アプリケーションを構築する AlloyDB および CloudSQL PostgreSQL とのインテグレーション。 ブログ投稿 - AlloyDB と Cloud SQL for PostgreSQL 向け LangChain on Vertex AI の発表

Vertex AI SDK for Python ノートブック - Cloud SQL for PostgreSQL を使用した RAG アプリケーションを LangChain on Vertex AI にデプロイする

Vertex AI SDK for Python ノートブック - AlloyDB を使用した RAG アプリケーションを LangChain on Vertex AI にデプロイする
自然言語を使用して構造化データストアをクエリして理解する。 Vertex AI SDK for Python ノートブック - Vertex AI Reasoning Engine と Vertex AI Search の RAG を使用して会話型検索エージェントを構築する
自然言語を使用してグラフ データベースをクエリして理解する ブログ投稿 - LangChain と Neo4j を備えた Vertex AI Reasoning Engine を使用する GenAI GraphRAG と AI エージェント
自然言語を使用してベクトルストアをクエリして理解する ブログ投稿 - MongoDB Atlas と Vertex AI Reasoning Engine を使用して GenAI RAG を簡素化する
OSS フレームワークを使用して生成 AI アプリケーションを構築する OneTwo オープンソース フレームワークを使用してエージェントを構築してデプロイする。 ブログ投稿 - OneTwo と Vertex AI Reasoning Engine: Google Cloud での高度な AI エージェントの開発
LangGraph オープンソース フレームワークを使用してエージェントを構築してデプロイする。 Vertex AI SDK for Python ノートブック - Vertex AI Reasoning Engine を使用した LangGraph アプリケーションの構築とデプロイ
生成 AI アプリケーションのデバッグと最適化 OpenTelemetry と Cloud Trace を使用してエージェントをビルドしてトレースする。 Vertex AI SDK for Python ノートブック - エージェントのデバッグと最適化: Vertex AI Reasoning Engine でのトレースのガイド

システム コンポーネント

OSS LangChain と Vertex AI を使用してカスタムの生成 AI アプリケーションを構築してデプロイするには、次の 4 つのコンポーネントが必要です。

コンポーネント説明
LLM

カスタム アプリケーションにクエリを送信すると、LLM がクエリを処理してレスポンスを提供します。

外部 API と通信する一連のツールを定義してモデルに提供することもできます。クエリの処理中に、モデルは特定のタスクをツールに委任します。これは、基盤モデルまたはファインチューニング済みモデルへの 1 つ以上のモデル呼び出しを意味します。

詳細については、モデルのバージョンとライフサイクルをご覧ください。

ツール

外部 API(データベースなど)と通信する一連のツールを定義してモデルに提供することもできます。クエリの処理中に、モデルは特定のタスクをツールに委任できます。

Vertex AI のマネージド ランタイムを介したデプロイは、Gemini 関数呼び出しに基づくツールを使用するように最適化されていますが、LangChain ツール / 関数呼び出しもサポートしています。Gemini 関数呼び出しの詳細については、関数の呼び出しをご覧ください。

オーケストレーション フレームワーク

LangChain on Vertex AI を使用すると、Vertex AI で LangChain オーケストレーション フレームワークを活用できます。LangChain を使用して、アプリケーションの確定性を決定します。

すでに LangChain を使用している場合は、既存の LangChain コードを使用して Vertex AI にアプリケーションをデプロイできます。それ以外の場合は、独自のアプリケーション コードを作成し、Vertex AI の LangChain テンプレートを活用するオーケストレーション フレームワークで構造化できます。

詳細については、アプリケーションを開発するをご覧ください。

マネージド ランタイム LangChain on Vertex AI を使用すると、Reasoning Engine マネージド ランタイムにアプリケーションをデプロイできます。このランタイムは、セキュリティ、プライバシー、オブザーバビリティ、拡張性など、Vertex AI インテグレーションのすべてのメリットを備えた Vertex AI サービスです。API 呼び出しでアプリケーションの本番環境への展開、スケーリングを行い、ローカルでテストしたプロトタイプをエンタープライズ対応のデプロイにすばやく移行できます。詳細については、アプリケーションをデプロイするをご覧ください。

Gemini などのモデルの上にツールとカスタム関数を重ねることでエージェント機能を活用するカスタム生成 AI アプリケーションのプロトタイピングと構築を行う方法は、数多くあります。アプリケーションを本番環境に移行するときは、エージェントとその基盤となるコンポーネントをデプロイして管理する方法を検討する必要があります。

Vertex AI の LangChain のコンポーネントを使用する目的は、デプロイ、スケーリング、パッケージ化、バージョンの管理を Google が担う一方で、ユーザーがカスタム関数、エージェントの動作、モデル パラメータなど、エージェント機能の特に重要な側面にフォーカスしてカスタマイズできるようにすることです。スタックの下位レベルでは、必要以上の管理が求められる場合があります。スタックの上位レベルでは、デベロッパーが制御できる範囲は限られる場合があります。

実行時のシステムフロー

ユーザーがクエリを実行すると、定義されたエージェントがクエリを LLM のプロンプトに変換します。LLM はプロンプトを処理し、どのツールを使用するかどうかを判断します。

LLM がツールを使用する場合、ツールを呼び出す名前とパラメータを含む FunctionCall を生成します。エージェントは FunctionCall を使用してツールを呼び出し、ツールの結果を LLM に返します。LLM がツールを使用しない場合は、エージェントがユーザーに返信するコンテンツを生成します。

次の図は、実行時のシステムフローを示しています。

実行時のシステムフロー 

生成 AI アプリケーションの作成とデプロイ

生成 AI アプリケーションを構築するワークフローは次のとおりです。

ステップ 説明
1. 環境を設定する Google プロジェクトを設定し、最新バージョンの Vertex AI SDK for Python をインストールします。
2. アプリケーションを開発する Reasoning Engine にデプロイできる LangChain アプリケーションを開発します。
3. アプリケーションをデプロイする アプリケーションを Reasoning Engine にデプロイします。
4. アプリケーションを使用する Reasoning Engine にクエリを実行してレスポンスを取得します。
5. デプロイされたアプリケーションを管理する Reasoning Engine にデプロイしたアプリケーションを管理、削除します。
6. (省略可)アプリケーション テンプレートをカスタマイズする 新しいアプリケーション用にテンプレートをカスタマイズします。

次の図は、このプロセスを示しています。

生成 AI アプリケーションの作成とデプロイ 

次のステップ