# 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 Funktion EmbedText 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:

sagemaker-deploy

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 ist embed-english-v2.0.
    • input_type: Der Typ des Eingabetextes. Optional.
    • truncate: Optional. Einer von NONE|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 ist models/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 ist jina-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 sind text-embedding-ada-002, text-embedding-3-small und text-embedding-3-large. Standardwert ist text-embedding-ada-002 für Versionen vor 1.3.0, und text-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 ist voyage-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')
Last Updated: Thu Apr 11 2024 02:40:52 GMT+0000