In diesem Dokument wird beschrieben, wie Sie eine Texteinbettung mit der Text Embeddings API der Gemini Enterprise Agent Platform erstellen.
Die Gemini Enterprise Agent Platform API für Texteinbettungen verwendet dichte Vektordarstellungen: gemini-embedding-001 verwendet beispielsweise 3072-dimensionale Vektoren. Für dichte Vektoreinbettungsmodelle werden Deep-Learning-Methoden verwendet, die den von Large Language Models verwendeten Methoden ähneln. Im Gegensatz zu dünnbesetzten Vektoren, bei denen Wörter in der Regel direkt Zahlen zugeordnet werden, sind dichte Vektoren so konzipiert, dass sie die Bedeutung eines Textabschnitts besser darstellen. Der Vorteil der dichten Vektoreinbettungen in der generativen KI besteht darin, dass Sie anstelle der direkten Übereinstimmungen mit Wörtern oder Syntaxen besser nach Passagen suchen können, die der Bedeutung der Abfrage entsprechen, selbst wenn die Abschnitte nicht dieselbe Sprache verwenden.
Die Vektoren sind normalisiert, sodass Sie die Kosinus-Ähnlichkeit, das Punktprodukt oder die euklidische Distanz verwenden können, um dieselben Ähnlichkeitsrankings zu erhalten.
- Weitere Informationen zu Einbettungen finden Sie in der Übersicht über Einbettungen-APIs.
- Weitere Informationen zu Texteinbettungsmodellen finden Sie unter Texteinbettungen.
- Informationen dazu, welche Sprachen die einzelnen Einbettungsmodelle unterstützen, finden Sie unter Unterstützte Textsprachen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- Wählen Sie einen Aufgabentyp für Ihren Einbettungsjob aus.
API-Limits
Für jede Anfrage sind Sie auf 250 Eingabetexte beschränkt. Die API hat ein maximales Eingabetokenlimit von 20.000. Eingaben, die dieses Limit überschreiten, führen zu einem 400-Fehler. Jeder einzelne Eingabetext ist außerdem auf 2.048 Token beschränkt. Überschüssiges wird stillschweigend abgeschnitten. Sie können die automatische Kürzung auch deaktivieren, indem Sie autoTruncate auf false setzen.
Weitere Informationen finden Sie unter Limits für Texteinbettungen.
Texteinbettungen für ein Text-Snippet abrufen
Sie können Texteinbettungen für ein Text-Snippet mithilfe der Agent Platform API oder dem Agent Platform SDK für Python abrufen.
Einbettungsdimension auswählen
Alle Modelle erzeugen standardmäßig einen Einbettungsvektor in voller Länge. Bei gemini-embedding-001 hat dieser Vektor 3.072 Dimensionen, während andere Modelle 768-dimensionale Vektoren erzeugen. Mit dem Parameter output_dimensionality können Nutzer jedoch die Größe des Ausgabe-Einbettungsvektors steuern. Durch die Auswahl einer kleineren Ausgabedimensionalität können Sie Speicherplatz sparen und die Recheneffizienz für nachgelagerte Anwendungen erhöhen, ohne dass die Qualität nennenswert beeinträchtigt wird.
In den folgenden Beispielen wird das gemini-embedding-001-Modell verwendet.
Python
Installieren
pip install --upgrade google-genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google Gen AI SDK mit Vertex AI zu verwenden:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Go
Go installieren oder aktualisieren
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google Gen AI SDK mit Vertex AI zu verwenden:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Node.js
Installieren
npm install @google/genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google Gen AI SDK mit Vertex AI zu verwenden:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Java
Java installieren oder aktualisieren
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google Gen AI SDK mit Vertex AI zu verwenden:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID. .
- TEXT: Der Text, für den Sie Einbettungen generieren möchten. Limit: fünf Texte mit bis zu 2.048 Tokens pro Text für alle Modelle außer
textembedding-gecko@001. Die maximale Länge des Eingabetokens fürtextembedding-gecko@001beträgt 3.072. Beigemini-embedding-001kann jede Anfrage nur einen einzelnen Eingabetext enthalten. Weitere Informationen finden Sie unter Limits für Texteinbettungen. - AUTO_TRUNCATE: Wenn auf
falsegesetzt, schlägt Text, der das Tokenlimit überschreitet, fehl. Der Standardwert isttrue.
HTTP-Methode und URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001:predict
JSON-Text der Anfrage:
{
"instances": [
{ "content": "TEXT"}
],
"parameters": {
"autoTruncate": AUTO_TRUNCATE
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001:predict"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001:predict" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Beachten Sie, dass values gekürzt wurde, um Speicherplatz zu sparen.
Beispiel: cURL-Befehls
MODEL_ID="gemini-embedding-001"
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/${MODEL_ID}:predict -d \
$'{
"instances": [
{ "content": "What is life?"}
],
}'
Unterstützte Modelle
In den folgenden Tabellen sind die verfügbaren Google- und offenen Texteinbettungsmodelle aufgeführt.
Google-Modelle
Sie können Texteinbettungen mit den folgenden Modellen abrufen:
| Modellname | Beschreibung | Ausgabedimensionen | Maximale Sequenzlänge | Unterstützte Textsprachen |
|---|---|---|---|---|
gemini-embedding-001 |
Hochmoderne Leistung bei englischsprachigen, mehrsprachigen und Code-Aufgaben. Es vereint die zuvor spezialisierten Modelle wie text-embedding-005 und text-multilingual-embedding-002 und erzielt in den jeweiligen Bereichen eine bessere Leistung. Weitere Informationen finden Sie in unserem Tech Report. |
Bis zu 3.072 | 2.048 Tokens | Unterstützte Textsprachen |
gemini-embedding-2 |
Am besten zum Einbetten langer Strings, einschließlich mehrsprachiger und unstrukturierter Daten. Unterstützt eine Mischung aus Text, Bildern, Audio, Video und PDF-Dateien. | Bis zu 3.072 | 8.192 Tokens | Unterstützte Textsprachen |
text-embedding-005 |
Spezialisiert auf Englisch und Code-Aufgaben. | Bis zu 768 | 2.048 Tokens | Englisch |
text-multilingual-embedding-002 |
Spezialisiert auf mehrsprachige Aufgaben. | Bis zu 768 | 2.048 Tokens | Unterstützte Textsprachen |
gemini-embedding-001 ist unser großes Modell, das für eine hervorragende Einbettungsqualität und höchste Leistung entwickelt wurde.
Offene Modelle
Sie können Texteinbettungen mit den folgenden Modellen abrufen:
| Modellname | Beschreibung | Ausgabedimensionen | Maximale Sequenzlänge | Unterstützte Textsprachen |
|---|---|---|---|---|
multilingual-e5-small |
Teil der E5-Familie von Modellen für Texteinbettungen. Die kleine Variante enthält 12 Ebenen. | Bis zu 384 | 512 Tokens | Unterstützte Sprachen |
multilingual-e5-large |
Teil der E5-Familie von Modellen für Texteinbettungen. Die große Variante enthält 24 Ebenen. | Bis zu 1.024 | 512 Tokens | Unterstützte Sprachen |
Informationen zum Einstieg finden Sie in der Modellkarte der E5-Familie. Weitere Informationen zu offenen Modellen finden Sie unter Offene Modelle für MaaS.
Einbettung zu einer Vektordatenbank hinzufügen
Nachdem Sie die Einbettung generiert haben, können Sie sie einer Vektordatenbank wie der Vektorsuche hinzufügen. Dies ermöglicht einen Abruf mit niedriger Latenz und ist von entscheidender Bedeutung, wenn die Größe Ihrer Daten zunimmt.
Weitere Informationen zur Vektorsuche finden Sie unter Vektorsuche – Übersicht.
Nächste Schritte
- Weitere Informationen zu Ratenbegrenzungen finden Sie unter Kontingente und Systemlimits für die Agent Platform.
- Informationen zum Abrufen von Batchvorhersagen für Einbettungen finden Sie unter Vorhersagen für Batch-Texteinbettungen abrufen.
- Weitere Informationen zu multimodalen Einbettungen finden Sie unter Multimodale Einbettungen abrufen.
- Informationen zum Optimieren einer Einbettung finden Sie unter Texteinbettungen abstimmen.
- Weitere Informationen zur Forschung hinter
text-embedding-005undtext-multilingual-embedding-002finden Sie im Forschungsartikel Gecko: Versatile Texteinbettungen Distilled from Large Language Models.