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:
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, ya que 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 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.Habilita 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 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:
Completa todos los pasos que se indican en Configura tu AlloyDB Omni para consultar modelos basados en la nube.
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
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 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
: Ruta de acceso al directorio del host en el que se almacenan tus datosKEY_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 puerto5432
. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica5432
.
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.
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
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?
- Ejecuta AlloyDB Omni y conéctate a él
- Administra AlloyDB Omni
- Compila aplicaciones de IA generativa con AlloyDB AI
- Registra y llama a modelos de IA remotos