# Einbetten von Funktionen
HINWEIS
Diese Funktion ist ab Version 1.2.1 verfügbar.
Die Funktion EmbedText
integriert API-Schnittstellen für das Einbetten von Texten von verschiedenen Anbietern wie Amazon Bedrock, Amazon SageMaker, Cohere, Gemini, HuggingFace, Jina AI, OpenAI und Voyage AI, um die Umwandlung von Texten in Vektoren zu vereinfachen. Sie unterstützt automatisches Stapeln für hohe Durchsatzraten und ist sowohl für Echtzeitsuche als auch für Stapelverarbeitung nützlich.
Syntax
EmbedText(text, provider, base_url, api_key, others)
Argumente
text
(String
): Ein nicht leerer String, der in einen Vektor umgewandelt wird.provider
(String
): Der Anbieter des Einbettungsmodells. Muss einer der folgenden sein, unabhängig von der Groß- und Kleinschreibung:OpenAI
,HuggingFace
,Cohere
,VoyageAI
,Bedrock
,SageMaker
,Jina
,Gemini
.base_url
(String
): Die URL der Einbettungs-API. Dieser Parameter ist für einige Anbieter optional.api_key
(String
): API-Schlüssel des Einbettungsanbieters.others
(String
): Optionale zusätzliche Parameter für die Anfrage an die Einbettungs-API des Anbieters. Sie sollten als JSON-Map bereitgestellt werden und können Folgendes enthalten:batch_size
: Die maximale Anzahl von Texten, die in jeder API-Anfrage enthalten sein können, variiert je nach dem verwendeten Einbettungsmodell. Standardmäßig wird diese Größe basierend auf den spezifischen Fähigkeiten und Einschränkungen des Modells festgelegt. Wenn die FunktionEmbedText
im Stapelmodus arbeitet, konsolidiert sie automatisch mehrere Texte zu einem Stapel. Dieser Aggregationsprozess wird intern von der Funktion durchgeführt, bevor die Daten an die Einbettungs-API gesendet werden.- Weitere anbieterspezifische Parameter, wie in der jeweiligen API-Dokumentation beschrieben.
Rückgabewert
- Die Funktion gibt einen aus dem Eingabetext umgewandelten Vektor zurück. Dieser Vektor ist ein Array von
Float32
-Werten, die die numerische Einbettung des Textes darstellen, wie sie von der ausgewählten Einbettungs-API des Anbieters verarbeitet wurde. - Typ:
Array(Float32)
.
# Amazon Bedrock Einbetten
Wenn der provider
-Parameter in EmbedText
auf Bedrock
gesetzt wird, wird die Amazon Bedrock Titan Embedding API (opens new window) für das Einbetten von Texten verwendet.
Anbieterspezifische Parameter
base_url
: Für diesen Anbieter nicht zutreffend.api_key
: AWS secret_access_key. Erforderlich.others
:batch_size
: Nicht relevant, da Stapel-Einbettung von diesem Anbieter nicht unterstützt wird.model
: Zu verwendende Modell-ID. Erforderlich.access_key_id
: AWS access_key_id. Erforderlich.region_name
: AWS-Regionsname. Erforderlich.
Beispiele
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"}')
Vereinfachte Verwendung mit benutzerdefinierter Funktion:
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 Einbetten
Wenn der provider
-Parameter in EmbedText
auf SageMaker
gesetzt wird, wird die Amazon SageMaker Endpoints (opens new window) für das Einbetten von Texten verwendet.
Hinweis: Dieser Anbieter ist speziell für Modelle konzipiert, die auf Amazon SageMaker bereitgestellt werden und bestimmte Eingabe- und Ausgabeformate haben. Das erwartete Eingabeformat für die Einbettungs-API ist ein JSON-Objekt mit "input_name" als einzelner Text oder als Liste von Texten. Die API-Antwort ist strukturiert als {"output_name": output}, wobei 'output' entweder ein einzelner Einbettungsvektor oder eine Liste von Vektoren ist, abhängig davon, ob der Eingabe ein einzelner Text oder eine Liste zugeordnet ist.
Modelle, die diesen Voraussetzungen entsprechen, lassen sich leicht in SageMaker JumpStart (opens new window) finden. Ein Beispiel für solche Modelle ist im folgenden Bild zu sehen:
Anbieterspezifische Parameter
base_url
: SageMaker-Endpunktname. Erforderlich.api_key
: AWS secret_access_key. Erforderlich.others
:batch_size
: Maximale Anzahl von Texten in jeder API-Anfrage. Optional, mit einem Standardwert von 50. Passen Sie dies an, wenn die Stapel-Einbettung nicht unterstützt wird, indem Sie es auf 1 setzen.access_key_id
: AWS access_key_id. Erforderlich.region_name
: AWS-Regionsname. Erforderlich.input_name
: API-Eingabename. Optional. Standardwert ist 'text_inputs'.output_name
: API-Ausgabename. Optional. Standardwert ist 'embedding'.model_args
: Optionale Parameter, die spezifisch für den verwendeten SageMaker-Endpunkt sind.
Beispiele Verwendung der Standardwerte:
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"}}')
Verwendung benutzerdefinierter Werte:
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"}')
Vereinfachte Verwendung mit benutzerdefinierter Funktion:
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 Einbetten
Wenn der provider
-Parameter in EmbedText
auf Cohere
gesetzt wird, wird die Cohere Embedding API (opens new window) für das Einbetten von Texten verwendet.
Anbieterspezifische Parameter
base_url
: Cohere Embedding API-URL. Optional. Standardwert ist https://api.cohere.ai/v1/embed (opens new window).api_key
: Cohere API-Schlüssel. Erforderlich.others
:batch_size
: Maximale Anzahl von Texten in jeder API-Anfrage. Optional. Standardwert ist 50.model
: Zu verwendende Modell-ID. Optional. Standardwert istembed-english-v2.0
.input_type
: Der Typ des Eingabetextes. Optional.truncate
: Optional. Einer vonNONE|START|END
, um anzugeben, wie die API mit Eingaben umgeht, die länger sind als die maximale Tokenlänge.
Beispiele
Verwendung der Standardwerte:
SELECT EmbedText('YOUR_TEXT', 'Cohere', '', 'COHERE_API_KEY', '')
Verwendung benutzerdefinierter Werte:
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"}')
Vereinfachte Verwendung mit benutzerdefinierter Funktion:
CREATE FUNCTION CohereEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'Cohere', '', 'COHERE_API_KEY', '')
SELECT CohereEmbedText('YOUR_TEXT')
# Gemini Einbetten
Wenn der provider
-Parameter in EmbedText
auf Gemini
gesetzt wird, wird die Gemini Embedding API (opens new window) für das Einbetten von Texten verwendet.
Anbieterspezifische Parameter
base_url
: Gemini Embedding API-URL. Optional. Standardwert ist https://generativelanguage.googleapis.com/v1beta (opens new window).api_key
: Gemini API-Schlüssel. Erforderlich.others
:batch_size
: Maximale Anzahl von Texten in jeder API-Anfrage. Optional. Standardwert ist 50.model
: Zu verwendende Modell-ID. Optional. Standardwert istmodels/embedding-001
.
Beispiele
Verwendung der Standardwerte:
SELECT EmbedText('YOUR_TEXT', 'Gemini', '', 'GEMINI_API_KEY', '')
Verwendung benutzerdefinierter Werte:
SELECT EmbedText('YOUR_TEXT', 'Gemini', 'YOUR_EMBEDDING_API_URL', 'GEMINI_API_KEY', '{"model":"YOUR_MODEL_ID", "batch_size":YOUR_BATCH_SIZE}')
Vereinfachte Verwendung mit benutzerdefinierter Funktion:
CREATE FUNCTION GeminiEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'Gemini', '', 'GEMINI_API_KEY', '')
SELECT GeminiEmbedText('YOUR_TEXT')
# HuggingFace Einbetten
Wenn der provider
-Parameter in EmbedText
auf HuggingFace
gesetzt wird, wird die HuggingFace Inference API/Inference Endpoint (opens new window) für das Einbetten von Texten verwendet.
Hinweis: Es ist speziell mit APIs kompatibel, die einem bestimmten Eingabe- und Ausgabeformat folgen, wie BAAI/BGE Einbettungen (opens new window) APIs. Das erwartete Eingabeformat für die Einbettungs-API ist ein JSON-Objekt mit "inputs" als einzelner Text oder als Liste von Texten. Die Antwort von dieser API wird ein Einbettungsvektor oder eine Liste von Einbettungsvektoren sein, abhängig von der bereitgestellten Eingabe. Wenn die Stapel-Einbettung nicht unterstützt wird, muss batch_size
auf 1 im others
-Parameter gesetzt werden.
Anbieterspezifische Parameter
base_url
: HuggingFace Embedding API-URL. Erforderlich.api_key
: HuggingFace API-Schlüssel. Erforderlich.others
:batch_size
: Maximale Anzahl von Texten in jeder API-Anfrage. Optional. Standardwert ist 32.model_args
: Optionale Parameter, die spezifisch für das verwendete HuggingFace-Modell sind.
Beispiele
Verwendung der Standardwerte:
SELECT EmbedText('YOUR_TEXT', 'HuggingFace', 'API_URL', 'HUGGINGFACE_API_KEY', '')
Verwendung benutzerdefinierter Werte:
SELECT EmbedText('YOUR_TEXT', 'HuggingFace', 'API_URL', 'HUGGINGFACE_API_KEY', '{"model_args":{"parameters": {"truncation":true}}}')
Vereinfachte Verwendung mit benutzerdefinierter Funktion:
CREATE FUNCTION HuggingFaceEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'HuggingFace', 'API_URL', 'HUGGINGFACE_API_KEY', '')
SELECT HuggingFaceEmbedText('YOUR_TEXT')
# Jina AI Einbetten
Wenn der provider
-Parameter in EmbedText
auf Jina
gesetzt wird, wird die Jina AI Embedding API (opens new window) für das Einbetten von Texten verwendet.
base_url
: Jina AI Embedding API-URL. Optional. Standardwert ist https://api.jina.ai/v1/embeddings (opens new window).api_key
: Jina AI API-Schlüssel. Erforderlich.others
:batch_size
: Maximale Anzahl von Texten in jeder API-Anfrage. Optional. Standardwert ist 50.model
: Zu verwendende Modell-ID. Optional. Standardwert istjina-embeddings-v2-base-en
.
Beispiele
Verwendung der Standardwerte:
SELECT EmbedText('YOUR_TEXT', 'Jina', '', 'JINAAI_API_KEY', '')
Verwendung benutzerdefinierter Werte:
SELECT EmbedText('YOUR_TEXT', 'Jina', 'YOUR_EMBEDDING_API_URL', 'JINAAI_API_KEY', '{"model":"YOUR_MODEL_ID", "batch_size":YOUR_BATCH_SIZE}')
Vereinfachte Verwendung mit benutzerdefinierter Funktion:
CREATE FUNCTION JinaAIEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'Jina', '', 'JINAAI_API_KEY', '')
SELECT JinaAIEmbedText('YOUR_TEXT')
# OpenAI Einbetten
Wenn der provider
-Parameter in EmbedText
auf OpenAI
gesetzt wird, wird die OpenAI Embedding API (opens new window) für das Einbetten von Texten verwendet.
Anbieterspezifische Parameter
base_url
: OpenAI Embedding API-URL. Optional. Standardwert ist https://api.openai.com/v1/embeddings (opens new window).api_key
: OpenAI API-Schlüssel. Erforderlich.others
:batch_size
: Maximale Anzahl von Texten in jeder API-Anfrage. Optional. Standardwert ist 50.model
: Zu verwendende Modell-ID. Optional. Unterstützte Modelle sindtext-embedding-ada-002
,text-embedding-3-small
undtext-embedding-3-large
. Standardwert isttext-embedding-ada-002
für Versionen vor 1.3.0, undtext-embedding-3-small
ab Version 1.3.0.dimensions
: Die Anzahl der Dimensionen, die die resultierenden Ausgabe-Embeddings haben sollten. Es ist optional und steht seit Version 1.3.0 zur Verfügung.user
: Eine optionale eindeutige Kennung für Ihren Endbenutzer, die OpenAI bei der Überwachung und Erkennung von Missbrauch unterstützt.
Beispiele
Verwendung der Standardwerte:
SELECT EmbedText('YOUR_TEXT', 'OpenAI', '', 'OPENAI_API_KEY', '')
Verwendung benutzerdefinierter Werte:
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"}')
Vereinfachte Verwendung mit benutzerdefinierter Funktion:
CREATE FUNCTION OpenAIEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'OpenAI', '', 'OPENAI_API_KEY', '')
SELECT OpenAIEmbedText('YOUR_TEXT')
# Voyage AI Einbetten
Anbieterspezifische Parameter
Wenn der provider
-Parameter in EmbedText
auf VoyageAI
gesetzt wird, wird die Voyage AI Embedding API (opens new window) für das Einbetten von Texten verwendet.
base_url
: Voyage AI Embedding API-URL. Optional. Standardwert ist https://api.voyageai.com/v1/embeddings (opens new window).api_key
: Voyage AI API-Schlüssel. Erforderlich.others
:batch_size
: Maximale Anzahl von Texten in jeder API-Anfrage. Optional. Standardwert ist 8.model
: Zu verwendende Modell-ID. Optional. Standardwert istvoyage-01
.
Beispiele
Verwendung der Standardwerte:
SELECT EmbedText('YOUR_TEXT', 'VoyageAI', '', 'VOYAGEAI_API_KEY', '')
Verwendung benutzerdefinierter Werte:
SELECT EmbedText('YOUR_TEXT', 'VoyageAI', 'YOUR_EMBEDDING_API_URL', 'VOYAGEAI_API_KEY', '{"model":"YOUR_MODEL_ID", "batch_size":YOUR_BATCH_SIZE}')
Vereinfachte Verwendung mit benutzerdefinierter Funktion:
CREATE FUNCTION VoyageAIEmbedText ON CLUSTER '{cluster}' AS (x) -> EmbedText(x, 'VoyageAI', '', 'VOYAGEAI_API_KEY', '')
SELECT VoyageAIEmbedText('YOUR_TEXT')