AlloyDB AI es un conjunto de funciones incluidas en AlloyDB Omni que te permiten crear aplicaciones empresariales de IA generativa. Para obtener más información sobre las funciones de IA/ML de AlloyDB, consulta Crear aplicaciones de IA generativa.
AlloyDB Omni con AlloyDB AI te permite consultar modelos de aprendizaje automático remotos para trabajar con predicciones online e incrustaciones de texto generadas a partir de modelos de aprendizaje automático. AlloyDB Omni con AlloyDB AI también puede procesar incrustaciones de vectores de otro contenido, como una imagen, por ejemplo, si usas la interfaz google_ml.predict_row
y haces la traducción tú mismo en la consulta.
Configurar la instancia de AlloyDB Omni para consultar modelos remotos
AlloyDB Omni puede consultar modelos de aprendizaje automático remotos mediante la extensión google_ml_integration
.
Si quieres consultar modelos de Vertex AI, debes configurar la cuenta de servicio de AlloyDB Omni con Vertex AI antes de instalar AlloyDB Omni.
Para configurar AlloyDB Omni de forma que consulte modelos remotos, sigue estos pasos:
Crea una cuenta de servicio con Google Cloud.
Crea una clave de cuenta de servicio en formato JSON y descárgala. Anota la clave de la cuenta de servicio, ya que la usarás más adelante en este procedimiento.
Copia la clave de cuenta de servicio que has creado en
KEY_PATH
. La ruta de la clave debe ser una ruta de tu host a la que pueda acceder el usuario que vaya a ejecutar tu contenedor de AlloyDB Omni y que sea propiedad de ese usuario.Habilita la API Vertex AI en tu Google Cloud proyecto.
gcloud services enable aiplatform.googleapis.com
Añade permisos de gestión de identidades y accesos (IAM) de Vertex AI al proyecto y a la cuenta de servicio correspondientes.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role="roles/aiplatform.user"
Haz los cambios siguientes:
PROJECT_ID
: ID de tu Google Cloud proyecto.SERVICE_ACCOUNT_ID
: ID de la cuenta de servicio que has creado en el paso 1. Esto incluye el sufijo completo@PROJECT_ID.iam.gserviceaccount.com
. Por ejemplo,my-service@my-project.iam.gserviceaccount.com
.
Configurar AlloyDB AI para AlloyDB Omni
Para instalar AlloyDB Omni e integrar AlloyDB AI, sigue estos pasos como usuario raíz:
Completa todos los pasos que se indican en Configurar AlloyDB Omni para consultar modelos basados en la nube.
Si ya existe un contenedor con el mismo nombre, deténgalo y elimínelo.
Docker
docker stop CONTAINER_NAME
docker rm CONTAINER_NAME
Docker
docker stop CONTAINER_NAME
docker rm CONTAINER_NAME
Podman
podman stop CONTAINER_NAME
podman rm CONTAINER_NAME
Podman
podman stop CONTAINER_NAME
podman rm CONTAINER_NAME
Haz los cambios siguientes:
CONTAINER_NAME
: nombre que se asignará al contenedor de AlloyDB Omni en el registro de contenedores de la máquina host. Por ejemplo,my-omni-1
.
Inicia un nuevo contenedor de AlloyDB Omni montando la clave en el contenedor.
Docker
docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest
Docker
docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest
Podman
podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest
Podman
podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest
Sustituye las siguientes variables:
CONTAINER_NAME
: nombre que se asignará al contenedor de AlloyDB Omni en el registro de contenedores de la máquina host. Por ejemplo,my-omni-1
.NEW_PASSWORD
: contraseña asignada al usuariopostgres
del nuevo contenedor después de su creación. Ten en cuenta queNEW_PASSWORD
solo definirá una nueva contraseña cuandoDATA_DIR
sea una ubicación nueva.DATA_DIR
: ruta del directorio de host en el que se almacenan tus datos.KEY_PATH
: ruta del archivo de claves de tu cuenta de servicio.HOST_PORT
: puerto TCP de la máquina host al que debe publicar su propio puerto5432
el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica5432
.
Haz que el archivo de claves sea legible para el usuario
postgres
dentro del contenedor AlloyDB Omni.Docker
docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
docker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json
Docker
docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
docker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json
Podman
podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
podman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json
Podman
podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
podman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json
Sustituye las siguientes variables:
CONTAINER_NAME
: nombre que se asignará al contenedor de AlloyDB Omni en el registro de contenedores de la máquina host. Por ejemplo,my-omni-1
.KEY_PATH
: ruta del host del archivo de clave de tu cuenta de servicio.
Actualiza AlloyDB Omni añadiendo las siguientes opciones de configuración.
Docker
docker exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Docker
docker exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Podman
podman exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Podman
podman exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Sustituye las siguientes variables:
CONTAINER_NAME
: nombre que se asignará al contenedor de AlloyDB Omni en el registro de contenedores de la máquina host. Por ejemplo,my-omni-1
.
Reinicia el contenedor de AlloyDB Omni.
Docker
docker restart CONTAINER_NAME
Docker
docker restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Sustituye la siguiente variable:
CONTAINER_NAME
: nombre que se asignará al contenedor de AlloyDB Omni en el registro de contenedores de la máquina host. Por ejemplo,my-omni-1
.
Conectarse mediante el psql
en contenedores
Para conectarte al servidor de bases de datos de AlloyDB Omni mediante su propia copia en contenedor de psql
, ejecuta el siguiente comando:
Docker
docker exec -it CONTAINER_NAME psql -U postgres
Docker
docker exec -it CONTAINER_NAME psql -U postgres
Podman
podman exec -it CONTAINER_NAME psql -U postgres
Podman
podman exec -it CONTAINER_NAME psql -U postgres
Sustituye la siguiente variable:
CONTAINER_NAME
: nombre que se asignará al contenedor de AlloyDB Omni en el registro de contenedores de la máquina host. Por ejemplo,my-omni-1
.
Verificar la instalación de AlloyDB Omni con AlloyDB AI
Para verificar que la instalación se ha realizado correctamente y que usa la predicción del modelo, introduce lo siguiente:
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
SELECT array_dims(embedding('text-embedding-005', 'AlloyDB AI')::real[]);
El resultado es similar al siguiente:
array_dims
------------
[1:768]
(1 row)
En la consulta anterior, la llamada embedding()
genera incrustaciones para el texto de entrada AlloyDB AI
.
array_dims
devuelve las dimensiones de la matriz devuelta por embedding()
.
Como el modelo text-embedding-005
devuelve un resultado con 768 dimensiones, el resultado es [768]
.
Siguientes pasos
- Ejecutar y conectarse a AlloyDB Omni
- Gestionar AlloyDB Omni
- Crea aplicaciones de IA generativa con AlloyDB AI
- Registrar y llamar a modelos de IA remotos