Questo documento descrive come creare un text embedding utilizzando l'API Text embeddings di Gemini Enterprise Agent Platform.
L'API per gli incorporamenti di testo di Gemini Enterprise Agent Platform utilizza rappresentazioni vettoriali dense: gemini-embedding-001, ad esempio, utilizza vettori tridimensionali 3072. I modelli di incorporamento vettoriale denso utilizzano metodi di deep learning simili a quelli utilizzati dai modelli linguistici di grandi dimensioni. A differenza dei vettori sparsi, che tendono a mappare direttamente le parole ai numeri, i vettori densi sono progettati per rappresentare meglio il significato di un testo. Il vantaggio di utilizzare incorporamenti vettoriali densi nell'AI generativa è che, anziché cercare corrispondenze dirette di parole o sintassi, puoi cercare meglio passaggi che corrispondono al significato della query, anche se i passaggi non utilizzano la stessa lingua.
I vettori sono normalizzati, quindi puoi utilizzare la somiglianza del coseno, il prodotto scalare o la distanza euclidea per fornire gli stessi ranking di somiglianza.
- Per saperne di più sugli embedding, consulta la panoramica delle API di embedding.
- Per scoprire di più sui modelli di text embedding, consulta Text embedding.
- Per informazioni sulle lingue supportate da ciascun modello di incorporamento, consulta Lingue di testo supportate.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- Scegli un tipo di attività per il job di incorporamento.
Limiti dell'API
Per ogni richiesta, puoi inserire un massimo di 250 testi di input. L'API ha un limite massimo di token di input di 20.000. Gli input che superano questo limite generano un errore 400. Ogni
testo di input individuale è ulteriormente limitato a 2048 token; l'eventuale eccesso viene troncato
senza preavviso. Puoi anche disattivare il troncamento silenzioso impostando autoTruncate su
false.
Per saperne di più, consulta Limiti di incorporamento del testo.
Ottenere incorporamenti di testo per uno snippet di testo
Puoi ottenere gli incorporamenti di testo per uno snippet di testo utilizzando l'API Agent Platform o l'SDK Agent Platform per Python.
Scegli una dimensione di incorporamento
Per impostazione predefinita, tutti i modelli producono un vettore di incorporamento a lunghezza intera. Per
gemini-embedding-001, questo vettore ha 3072 dimensioni, mentre gli altri
modelli producono vettori a 768 dimensioni. Tuttavia, utilizzando il
parametro output_dimensionality, gli utenti possono controllare le dimensioni del vettore di
incorporamento di output. La selezione di una dimensionalità di output più piccola può consentire di risparmiare spazio di
archiviazione e aumentare l'efficienza di calcolo per le applicazioni downstream, sacrificando
poco in termini di qualità.
Gli esempi riportati di seguito utilizzano il modello gemini-embedding-001.
Python
Installa
pip install --upgrade google-genai
Per saperne di più, consulta la documentazione di riferimento dell'SDK.
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# 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
Scopri come installare o aggiornare Go.
Per saperne di più, consulta la documentazione di riferimento dell'SDK.
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# 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
Installa
npm install @google/genai
Per saperne di più, consulta la documentazione di riferimento dell'SDK.
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# 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
Scopri come installare o aggiornare Java.
Per saperne di più, consulta la documentazione di riferimento dell'SDK.
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# 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
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: Il tuo [ID progetto](/resource-manager/docs/creating-managing-projects#identifiers). .
- TEXT: il testo per cui vuoi generare gli embedding. Limite: cinque testi di massimo 2048 token per testo per tutti i modelli,tranne
textembedding-gecko@001. La lunghezza massima del token di input pertextembedding-gecko@001è 3072. Pergemini-embedding-001, ogni richiesta può includere un solo testo di input. Per saperne di più, consulta Limiti di text embedding. - AUTO_TRUNCATE: se impostato su
false, il testo che supera il limite di token causa l'esito negativo della richiesta. Il valore predefinito ètrue.
Metodo HTTP e URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001:predict
Corpo JSON della richiesta:
{
"instances": [
{ "content": "TEXT"}
],
"parameters": {
"autoTruncate": AUTO_TRUNCATE
}
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente. Tieni presente che values
è stato troncato per risparmiare spazio.
Comando curl di esempio
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?"}
],
}'
Modelli supportati
Le tabelle seguenti mostrano i modelli di embedding di testo Google e open source disponibili.
Modelli Google
Puoi ottenere incorporamenti di testo utilizzando i seguenti modelli:
| Nome modello | Descrizione | Dimensioni di output | Lunghezza massima della sequenza | Lingue di testo supportate |
|---|---|---|---|---|
gemini-embedding-001 |
Prestazioni allo stato dell'arte in inglese, in più lingue e in attività di programmazione. Unifica i modelli specializzati precedenti come text-embedding-005 e text-multilingual-embedding-002 e ottiene prestazioni migliori nei rispettivi domini. Per maggiori dettagli, leggi il nostro report tecnico. |
fino a 3072 | 2048 token | Lingue di testo supportate |
text-embedding-005 |
Specializzato in attività di inglese e programmazione. | fino a 768 | 2048 token | Inglese |
text-multilingual-embedding-002 |
Specializzato in attività multilingue. | fino a 768 | 2048 token | Lingue di testo supportate |
Per una qualità di incorporamento superiore, gemini-embedding-001 è il nostro modello di grandi dimensioni progettato per offrire le massime prestazioni.
Modelli aperti
Puoi ottenere incorporamenti di testo utilizzando i seguenti modelli:
| Nome modello | Descrizione | Dimensioni di output | Lunghezza massima della sequenza | Lingue di testo supportate |
|---|---|---|---|---|
multilingual-e5-small |
Parte della famiglia E5 di modelli di text embedding. La variante Small contiene 12 livelli. | Fino a 384 | 512 token | Lingue supportate |
multilingual-e5-large |
Parte della famiglia E5 di modelli di text embedding. La variante Large contiene 24 livelli. | Fino a 1024 | 512 token | Lingue supportate |
Per iniziare, consulta la scheda del modello della famiglia E5. Per saperne di più sui modelli aperti, consulta Modelli aperti per MaaS.
Aggiungere un embedding a un database vettoriale
Dopo aver generato l'embedding, puoi aggiungerlo a un database vettoriale, come Vector Search. Ciò consente il recupero a bassa latenza ed è fondamentale man mano che le dimensioni dei dati aumentano.
Per saperne di più su Vector Search, consulta la panoramica di Vector Search.
Passaggi successivi
- Per saperne di più sui limiti di frequenza, consulta Limiti di frequenza di Agent Platform.
- Per ottenere previsioni batch per gli incorporamenti, consulta Ottenere inferenze di incorporamenti di testo batch
- Per scoprire di più sugli embedding multimodali, consulta Ottenere embedding multimodali.
- Per ottimizzare un embedding, vedi Ottimizzare gli embedding di testo.
- Per saperne di più sulla ricerca alla base di
text-embedding-005etext-multilingual-embedding-002, consulta l'articolo di ricerca Gecko: Versatile Text Embeddings Distilled from Large Language Models.