Instala AlloyDB AI en AlloyDB Omni

Selecciona una versión de la documentación:

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

AlloyDB AI es un paquete de funciones incluidas en AlloyDB Omni que te permiten crear aplicaciones de IA generativa empresarial. Para obtener más información sobre la funcionalidad de IA/ML de AlloyDB, consulta Compila 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 embeddings de vectores de otro contenido, como una imagen, por ejemplo, si usas la interfaz de google_ml.predict_row y realizas la traducción por tu cuenta en la consulta.

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, ya que 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 a la clave debe ser una ruta de acceso en tu host a la que pueda acceder el usuario que ejecutará tu contenedor de AlloyDB Omni y que sea propiedad de este.

  4. Habilita 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 correspondientes.

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

    Reemplaza lo siguiente:

    • PROJECT_ID: ID de tu proyecto de Google Cloud .

    • SERVICE_ACCOUNT_ID: 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 y AlloyDB AI, completa los siguientes pasos como usuario raíz:

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

  2. Si existe un contenedor 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: Nombre para asignar tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina anfitrión. Por ejemplo, my-omni-1
  3. Inicia un nuevo contenedor de AlloyDB Omni que active 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: Nombre para asignar tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina anfitrión. Por ejemplo, my-omni-1
    • NEW_PASSWORD: Es la 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: Ruta de acceso al directorio del host en el que se almacenan tus datos
    • KEY_PATH: Es la ruta de acceso al archivo de claves de tu cuenta de servicio.
    • HOST_PORT: Es el puerto TCP en la máquina anfitrión 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 archivo de claves sea legible para el usuario postgres 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: Nombre para asignar tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina anfitrión. Por ejemplo, my-omni-1
    • KEY_PATH: Es la ruta de acceso del host para el archivo de claves de tu cuenta de servicio.
  5. Actualiza AlloyDB Omni agregando 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: Nombre para asignar tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina anfitrión. 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: Nombre para asignar tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina anfitrión. Por ejemplo, my-omni-1

Conéctate con psql en un contenedor

Para conectarte al servidor de la base de datos de AlloyDB Omni con 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

Reemplaza la siguiente variable:

  • CONTAINER_NAME: Nombre para asignar tu contenedor de AlloyDB Omni en el registro de contenedores de tu máquina anfitrión. Por ejemplo, my-omni-1

Verifica la instalación de AlloyDB Omni con AlloyDB AI

Para verificar que la instalación se realizó correctamente y que se 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 devuelve las dimensiones del array que devuelve embedding(). Dado que el modelo text-embedding-005 devuelve un resultado con 768 dimensiones, el resultado es [768].

¿Qué sigue?