# 関数の埋め込み

注意

この機能はバージョン1.2.1から利用可能です。

EmbedText関数は、Amazon BedrockAmazon SageMakerCohereGeminiHuggingFaceJina AIOpenAIVoyage AIなどのさまざまなプロバイダの埋め込みAPIインターフェースを統合し、テキストをベクトルに変換します。高スループットのための自動バッチ処理をサポートしており、リアルタイム検索とバッチ処理の両方に役立ちます。

構文

EmbedText(text, provider, base_url, api_key, others)

引数

  • text (String): ベクトルに変換される空でない文字列です。
  • provider (String): 埋め込みモデルのプロバイダです。次のいずれかである必要があります(大文字小文字を区別しない):OpenAIHuggingFaceCohereVoyageAIBedrockSageMakerJinaGemini
  • base_url (String): 埋め込みAPIのURLです。このパラメータは一部のプロバイダに対してオプションです。
  • api_key (String): 埋め込みプロバイダのAPIキーです。
  • others (String): プロバイダの埋め込みAPIリクエストに対するオプションの追加パラメータです。JSONマップとして提供する必要があり、次のものを含むことができます:
    • batch_size:埋め込みモデルによっては、各APIリクエストに含めることができるテキストの最大数が異なります。デフォルトでは、このサイズは特定のモデルの機能と制限に基づいて設定されます。EmbedText関数がバッチモードで動作する場合、複数のテキストを1つのバッチに自動的にまとめます。この集約プロセスは、データが埋め込みAPIに送信される前に、関数によって内部的に行われます。
    • 各プロバイダ固有のパラメータは、それぞれのAPIドキュメントで詳細に説明されています。

返される値

  • 関数は、入力テキストから変換されたベクトルを返します。このベクトルは、選択したプロバイダの埋め込みAPIによって処理されたテキストの数値埋め込みを表すFloat32値の配列です。
  • 型:Array(Float32)

# Amazon Bedrock Embedding

EmbedTextproviderパラメータをBedrockに設定すると、テキストの埋め込みにAmazon Bedrock Titan Embedding API (opens new window)が使用されます。

プロバイダ固有のパラメータ

  • base_url:このプロバイダには適用されません。
  • api_key:AWS secret_access_key。必須です。
  • others
    • batch_size:このプロバイダではバッチ埋め込みはサポートされていないため、関係ありません。
    • model:使用するモデルID。必須です。
    • access_key_id:AWS access_key_id。必須です。
    • region_name:AWSリージョン名。必須です。

SELECT EmbedText('YOUR_TEXT', 'Bedrock', '', 'SECRET_ACCESS_KEY', '{"model":"amazon.titan-embed-text-v1", "region_name":"us-east-1", "access_key_id":"ACCESS_KEY_ID"}')

カスタム関数を使用した簡略化された使用方法:

CREATE FUNCTION BedrockEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'Bedrock', '', 'SECRET_ACCESS_KEY', '{"model":"amazon.titan-embed-text-v1", "region_name":"us-east-1", "access_key_id":"ACCESS_KEY_ID"}')
SELECT BedrockEmbedText('YOUR_TEXT')

# Amazon SageMaker Embedding

EmbedTextproviderパラメータをSageMakerに設定すると、テキストの埋め込みにAmazon SageMakerエンドポイント (opens new window)が使用されます。

注意:このプロバイダは、特定の入力および出力形式を持つAmazon SageMakerに展開されたモデルに特化しています。埋め込みAPIの期待される入力形式は、単一のテキストまたはテキストのリストとして「input_name」としてのJSONオブジェクトです。APIの応答は、{"output_name": output}という構造になっており、'output'は入力が単一のテキストかリストかに応じて単一の埋め込みベクトルまたはベクトルのリストです。

これらの前提条件に合致するモデルを見つけることは、SageMaker JumpStart (opens new window)で簡単です。このイメージには、次の画像に示すようなモデルの例があります。

sagemaker-deploy

プロバイダ固有のパラメータ

  • base_url:SageMakerエンドポイント名。必須です。
  • api_key:AWS secret_access_key。必須です。
  • others
    • batch_size:各APIリクエストでのテキストの最大数。オプションで、デフォルト値は50です。バッチ埋め込みがサポートされていない場合は、1に設定します。
    • access_key_id:AWS access_key_id。必須です。
    • region_name:AWSリージョン名。必須です。
    • input_name:APIの入力名。オプションです。デフォルト値は'text_inputs'です。
    • output_name:APIの出力名。オプションです。デフォルト値は'embedding'です。
    • model_args:使用しているSageMakerエンドポイントに固有のオプションパラメータ。

デフォルト値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'SageMaker', 'SAGEMAKER_ENDPOINT', 'SECRET_ACCESS_KEY', '{"region_name":"us-east-1", "access_key_id":"ACCESS_KEY_ID", "model_args":{"mode":"embedding"}}')

カスタム値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'SageMaker', 'SAGEMAKER_ENDPOINT', 'SECRET_ACCESS_KEY', '{"region_name":"us-east-1", "access_key_id":"ACCESS_KEY_ID", "model_args":{"mode":"embedding"}, "input_name":"inputs", "output_name":"embedding"}')

カスタム関数を使用した簡略化された使用方法:

CREATE FUNCTION SageMakerEmbedText ON CLUSTER '{cluster}' AS (x)-> EmbedText(x, 'SageMaker', 'SAGEMAKER_ENDPOINT', 'SECRET_ACCESS_KEY', '{"region_name":"us-east-1", "access_key_id":"ACCESS_KEY_ID", "model_args":{"mode":"embedding"}}')
SELECT SageMakerEmbedText('YOUR_TEXT')

# Cohere Embedding

EmbedTextproviderパラメータをCohereに設定すると、テキストの埋め込みにCohere埋め込みAPI (opens new window)が使用されます。

プロバイダ固有のパラメータ

  • base_url:Cohere埋め込みAPIのURL。オプションで、デフォルト値はhttps://api.cohere.ai/v1/embed (opens new window)です。
  • api_key:Cohere APIキー。必須です。
  • others
    • batch_size:各APIリクエストでのテキストの最大数。オプションで、デフォルト値は50です。
    • model:使用するモデルID。オプションで、デフォルト値はembed-english-v2.0です。
    • input_type:入力テキストのタイプ。オプションです。
    • truncate:オプションです。最大トークン長よりも長い入力の処理方法を指定するためのNONE|START|ENDのいずれか。

デフォルト値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'Cohere', '', 'COHERE_API_KEY', '')

カスタム値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'Cohere', 'YOUR_EMBEDDING_API_URL', 'COHERE_API_KEY', '{"model":"YOUR_MODEL_ID", "batch_size":YOUR_BATCH_SIZE, "input_type":"search_query", "truncate":"END"}')

カスタム関数を使用した簡略化された使用方法:

CREATE FUNCTION CohereEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'Cohere', '', 'COHERE_API_KEY', '')
SELECT CohereEmbedText('YOUR_TEXT')

# Gemini Embedding

EmbedTextproviderパラメータをGeminiに設定すると、テキストの埋め込みにGemini埋め込みAPI (opens new window)が使用されます。

プロバイダ固有のパラメータ

  • base_url:Gemini埋め込みAPIのURL。オプションで、デフォルト値はhttps://generativelanguage.googleapis.com/v1beta (opens new window)です。
  • api_key:Gemini APIキー。必須です。
  • others
    • batch_size:各APIリクエストでのテキストの最大数。オプションで、デフォルト値は50です。
    • model:使用するモデルID。オプションで、デフォルト値はmodels/embedding-001です。

デフォルト値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'Gemini', '', 'GEMINI_API_KEY', '')

カスタム値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'Gemini', 'YOUR_EMBEDDING_API_URL', 'GEMINI_API_KEY', '{"model":"YOUR_MODEL_ID", "batch_size":YOUR_BATCH_SIZE}')

カスタム関数を使用した簡略化された使用方法:

CREATE FUNCTION GeminiEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'Gemini', '', 'GEMINI_API_KEY', '')
SELECT GeminiEmbedText('YOUR_TEXT')

# HuggingFace Embedding

EmbedTextproviderパラメータをHuggingFaceに設定すると、テキストの埋め込みにHuggingFace推論API/推論エンドポイント (opens new window)が使用されます。

注意:特定の入力および出力形式に従うAPIと特に互換性があります。BAAI/BGE埋め込み (opens new window) APIなど。埋め込みAPIの期待される入力は、「inputs」として単一のテキストまたはテキストのリストとしてのJSONオブジェクトです。このAPIからの応答は、提供された入力に応じて単一の埋め込みベクトルまたはベクトルのリストです。バッチ埋め込みがサポートされていない場合は、othersパラメータでbatch_sizeを1に設定する必要があります。

プロバイダ固有のパラメータ

  • base_url:HuggingFace埋め込みAPIのURL。必須です。
  • api_key:HuggingFace APIキー。必須です。
  • others
    • batch_size:各APIリクエストでのテキストの最大数。オプションで、デフォルト値は32です。
    • model_args:使用しているHuggingFaceモデルに固有のオプションパラメータ。

デフォルト値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'HuggingFace', 'API_URL', 'HUGGINGFACE_API_KEY', '')

カスタム値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'HuggingFace', 'API_URL', 'HUGGINGFACE_API_KEY', '{"model_args":{"parameters": {"truncation":true}}}')

カスタム関数を使用した簡略化された使用方法:

CREATE FUNCTION HuggingFaceEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'HuggingFace', 'API_URL', 'HUGGINGFACE_API_KEY', '')
SELECT HuggingFaceEmbedText('YOUR_TEXT')

# Jina AI Embedding

EmbedTextproviderパラメータをJinaに設定すると、テキストの埋め込みにJina AI埋め込みAPI (opens new window)が使用されます。

  • base_url:Jina AI埋め込みAPIのURL。オプションで、デフォルト値はhttps://api.jina.ai/v1/embeddings (opens new window)です。
  • api_key:Jina AI APIキー。必須です。
  • others
    • batch_size:各APIリクエストでのテキストの最大数。オプションで、デフォルト値は50です。
    • model:使用するモデルID。オプションで、デフォルト値はjina-embeddings-v2-base-enです。

デフォルト値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'Jina', '', 'JINAAI_API_KEY', '')

カスタム値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'Jina', 'YOUR_EMBEDDING_API_URL', 'JINAAI_API_KEY', '{"model":"YOUR_MODEL_ID", "batch_size":YOUR_BATCH_SIZE}')

カスタム関数を使用した簡略化された使用方法:

CREATE FUNCTION JinaAIEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'Jina', '', 'JINAAI_API_KEY', '')
SELECT JinaAIEmbedText('YOUR_TEXT')

# OpenAI Embedding

EmbedTextproviderパラメータをOpenAIに設定すると、テキストの埋め込みにOpenAI埋め込みAPI (opens new window)が使用されます。

プロバイダ固有のパラメータ

  • base_url:OpenAI埋め込みAPIのURL。オプションで、デフォルト値はhttps://api.openai.com/v1/embeddings (opens new window)です。
  • api_key:OpenAI APIキー。必須です。
  • others
    • batch_size:各APIリクエストでのテキストの最大数。オプションで、デフォルト値は50です。
    • model:使用するモデルID。サポートされているモデルには、text-embedding-ada-002text-embedding-3-smalltext-embedding-3-largeが含まれます。1.3.0以前のバージョンではデフォルト値はtext-embedding-ada-002で、1.3.0以降ではtext-embedding-3-smallです。
    • dimensions: 結果として出力されるエンベディングの次元数。これはオプションで、バージョン1.3.0から利用可能です。
    • user:エンドユーザーのオプションの一意の識別子。OpenAIが監視と悪用の検出を支援するためのものです。

デフォルト値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'OpenAI', '', 'OPENAI_API_KEY', '')

カスタム値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'OpenAI', 'YOUR_EMBEDDING_API_URL', 'OPENAI_API_KEY', '{"model":"YOUR_MODEL_ID", "batch_size":YOUR_BATCH_SIZE, "user":"YOUR_USER_ID"}')

カスタム関数を使用した簡略化された使用方法:

CREATE FUNCTION OpenAIEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'OpenAI', '', 'OPENAI_API_KEY', '')
SELECT OpenAIEmbedText('YOUR_TEXT')

# Voyage AI Embedding

プロバイダ固有のパラメータ

EmbedTextproviderパラメータをVoyageAIに設定すると、テキストの埋め込みにVoyage AI埋め込みAPI (opens new window)が使用されます。

  • base_url:Voyage AI埋め込みAPIのURL。オプションで、デフォルト値はhttps://api.voyageai.com/v1/embeddings (opens new window)です。
  • api_key:Voyage AI APIキー。必須です。
  • others
    • batch_size:各APIリクエストでのテキストの最大数。オプションで、デフォルト値は8です。
    • model:使用するモデルID。オプションで、デフォルトはvoyage-01です。

デフォルト値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'VoyageAI', '', 'VOYAGEAI_API_KEY', '')

カスタム値を使用する場合:

SELECT EmbedText('YOUR_TEXT', 'VoyageAI', 'YOUR_EMBEDDING_API_URL', 'VOYAGEAI_API_KEY', '{"model":"YOUR_MODEL_ID", "batch_size":YOUR_BATCH_SIZE}')

カスタム関数を使用した簡略化された使用方法:

CREATE FUNCTION VoyageAIEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'VoyageAI', '', 'VOYAGEAI_API_KEY', '')
SELECT VoyageAIEmbedText('YOUR_TEXT')