API de incorporación de texto

La API de incorporaciones de texto convierte datos textuales en vectores numéricos. Estas representaciones vectoriales están diseñadas para capturar el significado y el contexto semántico de las palabras que representan.

Modelos compatibles:

  • Modelos en inglés
    • textembedding-gecko@001
    • textembedding-gecko@002
    • textembedding-gecko@003
    • textembedding-gecko@latest
    • text-embedding-preview-0409
  • Modelos multilingües
    • textembedding-gecko-multilingual@001
    • textembedding-gecko-multilingual@latest
    • text-multilingual-embedding-preview-0409

Sintaxis

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION
  • MODEL_ID = us-central1

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:predict -d \
  '{
    "instances": [
      ...
    ],
    "parameters": {
      ...
    }
  }'

Python

import vertexai
from vertexai.language_models import TextEmbeddingModel

vertexai.init(project=PROJECT_ID, location=REGION)

model = TextEmbeddingModel.from_pretrained(MODEL_ID)
embeddings = model.get_embeddings(...)

Lista de parámetros

Parámetros

texts

list of union[string, TextEmbeddingInput]: cada instancia representa un único texto que se incorporará.

TextEmbeddingInput

string: El texto para el que deseas generar incorporaciones.

auto_truncate

Opcional: bool

Cuando se establece como verdadero, el texto de entrada se truncará. Cuando se configura en falso, se muestra un error si el texto de entrada es mayor que la longitud máxima admitida por el modelo. El valor predeterminado es verdadero.

output_dimensionality

Opcional: int

Se usa para especificar el tamaño de la incorporación de salida. Si se configura, las incorporaciones de salida se truncarán al tamaño especificado.

TextEmbeddingInput

El texto para el que deseas generar incorporaciones.

Parámetros

content

string

El texto para el que deseas generar incorporaciones.

task_type

Opcional: string

Se usa para transmitir la aplicación descendente deseada a fin de ayudar al modelo a producir mejores incorporaciones.

title

Opcional: string

Se usa para ayudar al modelo a producir mejores incorporaciones.

Ejemplos

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION
  • MODEL_ID = us-central1

Caso de uso básico

En el siguiente ejemplo, se muestra cómo obtener la incorporación de una cadena de texto.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:predict -d \
  '{
    "instances": [
      { "content": "What is life?"}
    ],
  }'

Python

import vertexai
from vertexai.language_models import TextEmbeddingModel

vertexai.init(project=PROJECT_ID, location=REGION)

model = TextEmbeddingModel.from_pretrained(MODEL_ID)
embeddings = model.get_embeddings(["What is life?"])
vector = embeddings[0].values
print(f"Length of Embedding Vector: {len(vector)}")

Caso de uso avanzado

En el siguiente ejemplo, se muestran algunas funciones avanzadas

  • Usa task_type y title para mejorar la calidad de la incorporación.
  • Usa parámetros para controlar el comportamiento de la API.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:predict \
  -d '{
    "instances": [
      {
        "content": "What is life?",
         "task_type": "RETRIEVAL_DOCUMENT",
         "title": "life question",
      },
    ],
    "parameters": {
      "autoTruncate": false,
      "outputDimensionality": 256
    }
  }'

Python

import vertexai
from vertexai.language_models import TextEmbeddingInput, TextEmbeddingModel

vertexai.init(project=PROJECT_ID, location=REGION)

model = TextEmbeddingModel.from_pretrained(MODEL_ID)
embeddings = model.get_embeddings(
    texts=[
        TextEmbeddingInput(
            text="What is life?", task_type="RETRIEVAL_DOCUMENT", title="life question"
        )
    ],
    auto_truncate=False,
    output_dimensionality=256,
)

print("embeddings\n", embeddings)

Explora más

Para obtener documentación detallada, consulta lo siguiente: