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:
Crea una cuenta de servicio conGoogle Cloud.
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.
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.Habilitaste la API de Vertex AI en tu Google Cloud proyecto.
gcloud services enable aiplatform.googleapis.com
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:
Completa todos los pasos que se indican en Configura AlloyDB Omni para consultar modelos basados en la nube.
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
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 usuariopostgres
del contenedor nuevo después de su creación. Ten en cuenta queNEW_PASSWORD
solo establecerá una contraseña nueva cuandoDATA_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 puerto5432
. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica5432
.
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.
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
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?
- Ejecuta y conéctate a AlloyDB Omni
- Administra AlloyDB Omni
- Compila aplicaciones de IA generativa con AlloyDB AI
- Registra y llama a modelos de IA remotos