Instala AlloyDB AI en AlloyDB Omni

En esta página, se muestra cómo instalar AlloyDB Omni y cómo integrar AlloyDB AI.

AlloyDB AI es un paquete de funciones que se incluye con AlloyDB Omni y que te permite crear aplicaciones de IA generativa empresarial. Para obtener más información sobre la función de IA/ML de AlloyDB, consulta Cómo compilar aplicaciones de IA generativa.

AlloyDB Omni con AlloyDB AI te permite consultar modelos de AA remotos para trabajar con predicciones en línea y embeddings de texto generados a partir de modelos de AA. AlloyDB Omni con AlloyDB AI también puede procesar incorporaciones 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.

Según el lugar en el que quieras instalar AlloyDB Omni con AlloyDB AI, selecciona una de las siguientes opciones:

Configura tu instancia de AlloyDB Omni para consultar modelos remotos

AlloyDB Omni puede consultar modelos de AA remotos con la extensión google_ml_integration.

De manera opcional, si deseas 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 para consultar modelos remotos, sigue estos pasos:

  1. Crea una cuenta de servicio conGoogle Cloud.

  2. Crea una clave de cuenta de servicio en formato JSON y descárgala. Toma nota de la clave de la cuenta de servicio porque la usarás más adelante en este procedimiento.

  3. Copia la clave de la cuenta de servicio que creaste en KEY_PATH. La ruta de acceso de la clave debe ser una ruta de acceso a la que el usuario que ejecutará tu contenedor de AlloyDB Omni pueda acceder y que sea de su propiedad.

  4. Habilitaste la API de Vertex AI en tu Google Cloud proyecto.

    gcloud services enable aiplatform.googleapis.com
    
  5. Agrega permisos de Identity and Access Management (IAM) de Vertex AI al proyecto y a la cuenta de servicio adecuados.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_ID" \
        --role="roles/aiplatform.user"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu Google Cloud proyecto.

    • SERVICE_ACCOUNT_ID: Es el ID de la cuenta de servicio que creaste en el paso uno. Esto incluye el sufijo @PROJECT_ID.iam.gserviceaccount.com completo. Por ejemplo, my-service@my-project.iam.gserviceaccount.com.

Configura AlloyDB AI para AlloyDB Omni

Para instalar AlloyDB Omni e integrar AlloyDB AI, completa los siguientes pasos como usuario raíz:

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

  2. Si existe un contenedor existente con el mismo nombre, deténlo y quítalo.

    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

    Reemplaza lo siguiente:

    • CONTAINER_NAME: Es el nombre que se asignará a tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina host. Por ejemplo, my-omni-1
  3. Inicia un nuevo contenedor de AlloyDB Omni y activa 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
    

    Reemplaza las siguientes variables:

    • CONTAINER_NAME: Es el nombre que se asignará a tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina host. Por ejemplo, my-omni-1
    • NEW_PASSWORD: Contraseña asignada al usuario postgres del contenedor nuevo después de su creación. Ten en cuenta que NEW_PASSWORD solo establecerá una contraseña nueva cuando DATA_DIR sea una ubicación nueva.
    • DATA_DIR: Es la ruta de acceso al directorio del host en la que se almacenan tus datos.
    • KEY_PATH: Es la ruta de acceso al archivo de claves de la cuenta de servicio.
    • HOST_PORT: Es el puerto TCP en la máquina host al que el contenedor debe publicar su propio puerto 5432. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.
  4. Haz que el usuario postgres pueda leer el archivo de claves dentro del contenedor de 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

    Reemplaza las siguientes variables:

    • CONTAINER_NAME: Es el nombre que se asignará a tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina host. Por ejemplo, my-omni-1
    • KEY_PATH: Es la ruta de acceso del host para el archivo de claves de la cuenta de servicio.
  5. Para actualizar AlloyDB Omni, agrega 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"
    

    Reemplaza las siguientes variables:

    • CONTAINER_NAME: Es el nombre que se asignará a tu contenedor de AlloyDB Omni en el registro de contenedores de tu 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
    

    Reemplaza la siguiente variable:

    • CONTAINER_NAME: Es el nombre que se asignará a tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina host. Por ejemplo, my-omni-1

Conéctate con el psql en contenedor

Para conectarte al servidor de base de datos de AlloyDB Omni con su propia copia de psql en contenedor, 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

Reemplaza la siguiente variable:

  • CONTAINER_NAME: Es el nombre que se asignará a tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina host. Por ejemplo, my-omni-1

Verifica AlloyDB Omni con la instalación de AlloyDB AI

Para verificar que la instalación se realizó correctamente y usa la predicción del modelo, ingresa 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 a embedding() genera incorporaciones para el texto de entrada AlloyDB AI. array_dims muestra las dimensiones del array que muestra embedding(). Como el modelo text-embedding-005 muestra un resultado con 768 dimensiones, el resultado es [768].

¿Qué sigue?