La asistencia vectorial es una extensión de AlloyDB para PostgreSQL que proporciona un framework de SQL declarativo para implementar y administrar cargas de trabajo de búsqueda vectorial. En lugar de configurar manualmente la generación de embeddings, los parámetros de índice y el ajuste de consultas, declaras los requisitos de tu carga de trabajo, como la tabla de destino, la columna de texto de origen y el objetivo de recuperación, mediante el uso de funciones de SQL.
Según tu especificación vectorial, la asistencia vectorial usa un algoritmo de ajuste automático para generar recomendaciones de SQL optimizadas con explicaciones que puedes revisar, modificar y aplicar. Este flujo de trabajo te ayuda a crear prototipos y a implementar aplicaciones de búsqueda semántica listas para producción con una configuración manual mínima.
Cómo funciona la asistencia vectorial
La asistencia vectorial requiere que definas tus especificaciones vectoriales. El framework usa estas especificaciones vectoriales, también conocidas como especificaciones vectoriales, para generar los pasos necesarios para crear un índice vectorial. La asistencia vectorial genera los pasos necesarios para implementar tu carga de trabajo vectorial como recomendaciones. Cada vez que modificas tus especificaciones vectoriales, la asistencia vectorial vuelve a generar las recomendaciones.
Una vez que generes el índice vectorial con estos pasos recomendados, podrás usar la asistencia vectorial para generar consultas de búsqueda optimizadas.
Especificación de asistencia vectorial
Configurar tu especificación de índice vectorial, o especificación vectorial, es el primer paso para usar la asistencia vectorial. Una especificación vectorial es un objeto en el que defines la intención y los requisitos de tu carga de trabajo vectorial. Incluye toda la información necesaria, como la siguiente:
- Tablas y columnas relevantes (texto o vector)
- Preferencias del modelo de embedding (si usas la generación de embeddings)
- Tipo de índice preferido:
HNSWoIVFFlat.ScaNNno es compatible. - Recuperación de destino para las consultas de búsqueda
- Limitaciones de memoria
Defines las especificaciones vectoriales con la
vector_assist.define_spec
función y puedes modificarlas en cualquier momento. El sistema asigna a cada especificación un ID único y lo almacena en una tabla llamada vector_assist.VECTOR_SPECS.
La asistencia vectorial infiere las entradas de especificación y un algoritmo de ajuste automático optimizado que calcula la configuración de índice óptima. Aunque la asistencia vectorial usa estos valores para simplificar el proceso de desarrollo, puedes personalizarlos para que coincidan con tus preferencias.
Recomendaciones de asistencia vectorial
Después de definir las especificaciones vectoriales, la asistencia vectorial procesa tu entrada y genera recomendaciones. Estas recomendaciones son una lista ordenada de pasos útiles, por lo general, comandos de SQL, que debes ejecutar para implementar tu carga de trabajo vectorial según tus especificaciones. Cada recomendación incluye lo siguiente:
- La consulta en SQL que se ejecutará
- Una explicación detallada de lo que hace la consulta y por qué se recomienda
- Información sobre posibles compensaciones o costos, como el tamaño estimado del índice o el tiempo de compilación
La asistencia vectorial almacena recomendaciones en una tabla llamada vector_assist.RECOMMENDATIONS, y puedes revisarlas, modificarlas y aplicarlas de forma individual o en su totalidad.
Cada vez que modificas las especificaciones vectoriales de tu carga de trabajo, la asistencia vectorial vuelve a generar las recomendaciones para cumplir con las especificaciones actualizadas.
Limitaciones
Cuando uses la asistencia vectorial con tus instancias de AlloyDB, ten en cuenta las siguientes limitaciones:
- La asistencia vectorial solo admite las versiones 17 y posteriores de PostgreSQL.
- Aunque la asistencia vectorial admite todas las versiones de
pgvector, te recomendamos que uses la versión más reciente para obtener un rendimiento óptimo y compatibilidad con funciones. Para obtener más información, consulta elpgvectorregistro de cambios. - Si tu instancia usa la extensión
google_ml_integrationpara generar embeddings, sus restricciones también se aplican cuando usas la asistencia vectorial. Para obtener más información, consulta Registrar y llamar a modelos de IA remotos en la descripción general de AlloyDB. - La asistencia vectorial solo admite los tipos de índice
HNSWyIVFFlat. No se admiten los tipos de índiceScaNN. - La asistencia vectorial solo admite modelos de embedding de texto para generar embeddings automáticamente y usa
text_column_namecomo parámetro de entrada. Si tu carga de trabajo vectorial requiere un modelo de embedding multimodal, usa la extensióngoogle_ml_integrationo cualquier otra extensión para generar manualmente estos embeddings antes de usar la asistencia vectorial para habilitar la búsqueda semántica en estos embeddings.