テキスト エンベディングを生成する

google_ml_integration 拡張機能には、publicgoogle_ml の 2 つの異なる名前空間にエンベディング関数が含まれています。このページでは、これらの Namespace の関数を使用してテキスト エンベディングを生成する方法について説明します。

public スキーマの embedding() 関数は、エンドポイントを登録せずに任意の Vertex AI エンベディング モデルで使用できます。タスクタイプなどのカスタム情報を渡す場合は、エンドポイントを登録してから、google_ml スキーマで google_ml.embedding() 関数を使用します。エンドポイントの登録の詳細については、モデルを登録するをご覧ください。

エンベディングの仕組み

AlloyDB で次の条件を満たすデータベースを実行します。

  • データベースに items というテーブルが存在する。このテーブルの各行には、販売する商品が記録されています。

  • items テーブルに complaints という列がある。この TEXT 列には、各商品について記録された購入者からの苦情が保存されます。

  • データベースが Vertex AI Model Garden と統合され、gemini-embedding-001 の英語モデルにアクセスできる。

このデータベースには商品に関する苦情が記録されていますが、苦情はプレーンテキストとして保存されているため、クエリで照会するのは容易ではありません。たとえば、色違いの商品を受け取った顧客からの苦情が最も多い商品を確認したい場合は、テーブルに対して通常の SQL クエリを実行し、さまざまなキーワードで照合を行います。ただし、この方法では、指定したキーワードが含まれている行のみが一致します。

たとえば、SELECT * FROM item WHERE complaints LIKE "%wrong color%" などの基本的な SQL クエリでは、complaints フィールドに The picture shows a blue one, but the one I received was red のみが含まれる行は返されません。

LLM ベースのエンベディングを使用する SQL クエリは、このようなクエリに対して意味的に類似したレスポンスを返すのに役立ちます。エンベディングを適用すると、この例のテーブルで、苦情が特定のテキスト プロンプト(It was the wrong color など)と意味的に類似している項目をクエリできます。

エンベディングを生成するには、次のいずれかのスキーマを選択します。

次のステップ