コンテンツに移動
データベース

Cloud SQL for PostgreSQL で LangChain の VectorStore を使用して生成 AI アプリを迅速に構築

2024年6月19日
Bala Narasimhan

Group Product Manager, Google Cloud

Kurtis Van Gent

Staff Software Engineer, Google Cloud Databases

Gemini 1.5 モデル をお試しください。

Vertex AI からアクセスできる、Google のもっとも先進的なマルチモーダル モデルです。

試す

※この投稿は米国時間 2024 年 6 月 13 日に、Google Cloud blog に投稿されたものの抄訳です。

Google は最近、Google Cloud データベース ポートフォリオの LangChain パッケージ スイートを発表しました。各パッケージには、最大 3 つの LangChain インテグレーションがあります。

  1. ベクトルをサポートする Google のデータベースでセマンティック検索を可能にするベクトル ストア

  2. データベースにおけるドキュメントの読み込みや保存を行うドキュメント ローダ

  3. チェーンによって以前の会話を確認できるチャット メッセージ メモリ

このブログ投稿では、Cloud SQL for PostgreSQL LangChain パッケージに含まれる VectorStore のメリットについて詳しく説明し、それが生成 AI アプリケーション開発を簡単、安全かつ柔軟にするためにどのように役立つかを見ていきます。

セキュリティ

Cloud SQL for PostgreSQL LangChain パッケージには、Cloud SQL Python コネクタが組み込まれており、これによってデータベースへの安全な接続を簡単に行うことができます。デベロッパーは次のようなメリットをすぐに享受できます。

  • IAM 承認: IAM 権限を使用して、Cloud SQL インスタンスに接続できるユーザーや対象を制御します。

  • 簡素化: SSL 証明書の管理、ファイアウォール ルールの構成、承認済みネットワークの有効化が不要になります。

  • IAM データベース認証: Cloud SQL の自動 IAM データベース認証機能に対応しています。

使いやすさ

インスタンス名だけで接続

PostgreSQL インスタンスに接続するために、IP アドレスを使用して接続文字列を作成したり、無数の引数を渡したりする必要はもうありません。代わりに、以下に示すように、インスタンス名だけで十分です。

読み込んでいます...

デフォルトの接続プール

接続管理は、PostgreSQL のスケーリングにおいて重要な部分です。Cloud SQL for PostgreSQL LangChain パッケージは、SQLAlchemy 接続プールを使用して自動的に構成されます。Google のパッケージは、カスタム構成に対応しているほか、アプリケーションの他の部分でプールを再利用することもできます。

読み込んでいます...

スキーマの柔軟性

既存の langchain-postgres パッケージには VectorStore が含まれていますが、これは限定された、固定スキーマにしか対応していません。データベース内の初期化されたすべてのベクトルストアに対して、固定の名前とスキーマを持つ 2 つのテーブルを使用します。スキーマを変更するには、テーブルを削除して再作成する必要があり、以前のデータは失われます。また、現在はインデックス作成にも対応しておらず、KNN にのみ使用できます。

コレクションごとのテーブル

その一方で、Cloud SQL for PostgreSQL LangChain パッケージでは、ベクトルのコレクションごとに異なるテーブルが使用されます。つまりスキーマは以下のように変化する可能性があります。

読み込んでいます...

インデックス作成への対応

Cloud SQL for PostgreSQL LangChain パッケージは、ベクトル検索を高速化するために ANN に対応しています。以下に、パッケージを使用してインデックスを作成、更新、削除するための簡単なコード スニペットを示します。

インデックスを作成する

読み込んでいます...

インデックスを再構築する

読み込んでいます...

インデックスを削除する

読み込んでいます...

カスタム スキーマ

Cloud SQL for PostgreSQL LangChain パッケージでは、さまざまなスキーマを使用できるため、既存のテーブルを再利用できるだけでなく、他の実装(langchain-postgres パッケージなど)からより簡単に移行できます。

既存のテーブルを使用する

PostgresVectorStore を初期化するときに、必要に応じて、LangChain ドキュメントのコンテンツ、ID、その他のメタデータ フィールドなどを保存する列の名前を指定できます。これにより、既存のテーブル、または他のインテグレーション(langchain-postgres など)から作成されたテーブルを活用できます。

読み込んでいます...

メタデータを列に抽出する

メタデータ列を指定すると、インテグレーションによってドキュメント メタデータからそのフィールドが取得され、適切に型指定された独自の列に保存されます。

読み込んでいます...

メタデータでフィルタする

メタデータ フィールドを列に保存すると、リレーショナル データベースとしての PostgreSQL の価値を活用し、効率的にフィルタリングできます。

読み込んでいます...

まとめると、Cloud SQL for PostgreSQL をベクトル データベースとして使い始めるのはとても簡単で、Google のネイティブの LangChain パッケージを使用することで、より柔軟でパワフルな生成 AI 開発が可能になります。

こちらの VectorStore Notebook Cloud SQL for PostgreSQL VectorStore をお試しください。また、GitHub のパッケージをご確認ください。問題を開くことで、バグの報告ややその他のフィードバックを送信いただけます

-Google Cloud、グループ プロダクト マネージャー Bala Narasimhan
-
スタッフ ソフトウェア エンジニア Kurtis Van Gent
投稿先