Instalar AlloyDB AI en AlloyDB Omni

Selecciona una versión de la documentación:

En esta página se explica cómo instalar AlloyDB Omni e integrar AlloyDB AI.

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:

  1. Crea una cuenta de servicio con Google Cloud.

  2. 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.

  3. 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.

  4. Habilita la API Vertex AI en tu Google Cloud proyecto.

    gcloud services enable aiplatform.googleapis.com
    
  5. 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:

  1. Completa todos los pasos que se indican en Configurar AlloyDB Omni para consultar modelos basados en la nube.

  2. 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.
  3. 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 usuario postgres del nuevo contenedor después de su creación. Ten en cuenta que NEW_PASSWORD solo definirá una nueva contraseña cuando DATA_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 puerto 5432 el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica 5432.
  4. 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.
  5. 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.
  6. 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