La extensión google_ml_integration
incluye funciones de inserción en dos espacios de nombres diferentes: public
y google_ml
. En esta página se describe cómo generar inserciones de texto mediante funciones de estos espacios de nombres.
La función embedding()
del esquema public
se puede usar con cualquier modelo de inserción de Vertex AI sin registrar el endpoint. Si quiere enviar información personalizada, como el tipo de tarea, registre el endpoint y, a continuación, use la función google_ml.embedding()
en el esquema google_ml
. Para obtener más información sobre cómo registrar un endpoint, consulta Registrar un modelo.
Cómo funcionan las inserciones
Imagina una base de datos que se ejecuta en AlloyDB con las siguientes características:
La base de datos contiene una tabla,
items
. Cada fila de esta tabla describe un artículo que vende tu empresa.La tabla
items
contiene una columna,complaints
. En esta columnaTEXT
se almacenan las reclamaciones de los compradores registradas sobre cada artículo.La base de datos se integra con Vertex AI Model Garden, lo que le da acceso a los modelos en
gemini-embedding-001
inglés.
Aunque esta base de datos almacena reclamaciones sobre artículos, estas reclamaciones se almacenan como texto sin formato, lo que dificulta las consultas. Por ejemplo, para ver qué artículos han recibido más quejas de clientes que han recibido un color incorrecto, puede realizar consultas de SQL normales en la tabla que busquen varias coincidencias de palabras clave. Sin embargo, este enfoque solo coincide con las filas que contienen esas palabras clave exactas.
Por ejemplo, una consulta SQL básica como SELECT * FROM item WHERE complaints LIKE
"%wrong color%"
no devuelve una fila cuyo campo complaints
contenga solo The picture shows a blue one, but the one I received was red
.
Las consultas SQL que usan las inserciones basadas en LLMs pueden ayudar a devolver respuestas semánticamente similares a dichas consultas. Al aplicar las inserciones, puedes consultar la tabla de este ejemplo para buscar elementos cuyas reclamaciones tengan una similitud semántica con una petición de texto determinada, como It was the
wrong color
.
Para generar las inserciones, selecciona uno de los siguientes esquemas.
Antes de empezar
Para permitir que AlloyDB genere las inserciones, haz lo siguiente:
- Conéctate a tu base de datos con
psql
o AlloyDB para PostgreSQL Studio como usuariopostgres
. - Comprueba que la extensión
google_ml_integration
esté instalada. - Verifica que la marca
google_ml_integration.enable_model_support
esté definida comoon
. - Antes de generar incrustaciones a partir de una base de datos de AlloyDB, debes configurar AlloyDB para que funcione con Vertex AI. Para obtener más información, consulta Integrar tu base de datos con Vertex AI.
Concede permisos a los usuarios de la base de datos para que ejecuten la función de inserción y generen inserciones:
\c DB_NAME; GRANT EXECUTE ON FUNCTION google_ml.embedding TO USER_NAME;
Haz los cambios siguientes:
DB_NAME: el nombre de la base de datos en la que se deben conceder los permisos
USER_NAME: el nombre del usuario al que se deben conceder los permisos.
Generar inserciones
Usa la función SQL google_ml.embedding()
para llamar a modelos de inserción de texto.
Para llamar al modelo y generar las inserciones, ejecuta la siguiente consulta:
SELECT
google_ml.embedding(
model_id => 'MODEL_ID',
content => 'CONTENT');
Haz los cambios siguientes:
MODEL_ID
: el ID del modelo cualificado (por ejemplo,gemini-embedding-001
).CONTENT
: el texto que se va a traducir a una incrustación de vector.
Ejemplos para generar inserciones
En esta sección se incluyen algunos ejemplos de cómo generar inserciones mediante un endpoint de modelo registrado.
Modelos de inserciones de Gemini
Para generar embeddings de un endpoint de modelo gemini-embedding-001
registrado, ejecuta la siguiente instrucción:
SELECT
google_ml.embedding(
model_id => 'gemini-embedding-001',
content => 'AlloyDB is a managed, cloud-hosted SQL database service');
Si tu clúster de AlloyDB y el endpoint de Vertex AI están en proyectos diferentes, asigna a model_id
la ruta cualificada del endpoint (por ejemplo, projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/gemini-embedding-001
).
Para generar embeddings de un endpoint de modelo gemini-embedding-001
registrado, ejecuta la siguiente instrucción:
SELECT
google_ml.embedding(
model_id => 'gemini-embedding-001',
content => 'AlloyDB is a managed, cloud-hosted SQL database service');
Modelo de inserción de OpenAI
Para generar inserciones de un endpoint de modelo registradotext-embedding-ada-002
de OpenAI, ejecuta la siguiente instrucción:
SELECT
google_ml.embedding(
model_id => 'text-embedding-ada-002',
content => 'e-mail spam');
Para generar inserciones de los endpoints de modelos text-embedding-3-small
o text-embedding-3-large
registrados de OpenAI, ejecuta la siguiente instrucción:
SELECT
google_ml.embedding(
model_id => 'text-embedding-3-small',
content => 'Vector embeddings in AI');
Siguientes pasos
- Ejecutar búsquedas por similitud de vectores
- Consulta cómo crear un asistente de compras inteligente con AlloyDB, pgvector y la gestión de endpoints de modelos.
- Crea índices y vectores de consulta.
- Consulta un ejemplo de flujo de trabajo de una incrustación.