Usa Vector Assist para implementar y administrar una carga de trabajo de vectores en tus instancias de AlloyDB para PostgreSQL.
Para obtener más información sobre qué es la asistencia vectorial y cómo funciona, consulta la Descripción general de la asistencia vectorial.
Antes de comenzar
- Confirma que tu instancia use la versión de mantenimiento correcta.
Vector Assist requiere un número de versión de mantenimiento mínimo de
POSTGRES_17.20260128.03_06. Para obtener más información sobre cómo realizar el mantenimiento de autoservicio, consulta Mantenimiento de autoservicio del rendimiento. Habilita la extensión Vector Assist con el siguiente comando en la base de datos que deseas usar:
CREATE EXTENSION vector_assist CASCADE;Esto genera el esquema
vector_assist, que usa la asistencia vectorial.
Usa Vector Assist para implementar una carga de trabajo vectorial
Para usar Vector Assist y, así, implementar y administrar una carga de trabajo de vectores, debes hacer lo siguiente:
- Define tu especificación de vector
- Cómo ver las recomendaciones de Vector Assist
- Cómo aplicar recomendaciones de Vector Assist
Define tu especificación de vector
Definir la especificación del vector, o especificación del vector, es el primer paso para usar la asistencia de vectores. Según el tipo de carga de trabajo de vectores, los campos que uses para definir tu especificación de vectores pueden ser diferentes.
Por ejemplo, si deseas habilitar la búsqueda semántica en una columna específica de una tabla, ejecuta la función vector_assist.define_spec para definir tu especificación de vector:
SELECT
recommendation_id,
REGEXP_REPLACE(query, 'SET hnsw.ef_search TO \d+', 'SET hnsw.ef_search TO') AS query_1,
recommendation,
vector_spec_id,
table_name,
applied,
modified
FROM vector_assist.define_spec(
table_name => 'TABLE_NAME',
vector_column_name => 'VECTOR_COLUMN_NAME',
target_recall => TARGET_RECALL,
tune_vector_index => TUNE_INDEX
);
Reemplaza los siguientes parámetros:
TABLE_NAME: Es el nombre de la tabla que deseas usar en tu carga de trabajo de vectores.VECTOR_COLUMN_NAME: Columna en la que deseas realizar una búsqueda semántica (opcional). Si solo tienes una columna con vectores en tu tabla,vector_assistpuede establecerla automáticamente. Si hay más de una tabla con vectores, debes especificar qué columna usar.TARGET_RECALL(opcional): Es el nivel de recuperación objetivo que deseas que alcance la asistencia vectorial. Si se especifica,vector_assistexperimenta con diferentes valores deef_searchy compara la recuperación en búsquedas exactas y de vecinos más cercanos.vector_assistestableceef_searchen el valor que proporciona la recuperación objetivo más cercana. El valor predeterminado es0.95.- (Opcional)
TUNE_INDEX: Es un valor booleano que especifica si Vector Assist ajusta los índices de vectores en tu carga de trabajo. El valor predeterminado esfalse, lo que significa que solo se ajustan los parámetros relacionados con la búsqueda (ef_search); los parámetros de tiempo de compilación (m,ef_construction) no se ajustan.
Para ver una lista completa de todos los parámetros disponibles para la especificación del vector, consulta Referencias de la función Vector Assist.
Después de ejecutar la consulta para crear tu especificación de vector, el asistente de vectores genera automáticamente pasos, llamados recomendaciones, que debes ejecutar para implementar tu carga de trabajo de vectores.
Cómo ver las recomendaciones de Vector Assist
Para ver las recomendaciones que genera Vector Assist con tu especificación de vector, ejecuta la función vector_assist.get_recommendations:
SELECT vector_assist.get_recommendations(
spec_id => 'SPEC_ID'
);
Reemplaza SPEC_ID por el ID de la especificación del vector para la que deseas ver recomendaciones. Para obtener la lista de especificaciones de vectores disponibles, consulta Cómo enumerar tus especificaciones de vectores.
vector_assist.get_recommendations devuelve una tabla llamada vector_assist.RECOMMENDATIONS que contiene todas las recomendaciones. Cada recomendación se almacena en una tabla con el spec_id asociado. En general, cada recomendación contiene la siguiente información:
- Consulta en SQL que debes ejecutar
- Explicación detallada de la recomendación
- Otra información relevante que explica la recomendación
Cómo aplicar recomendaciones de Vector Assist
Puedes aplicar las recomendaciones generadas de forma individual o en su totalidad.
Para aplicar una recomendación específica, ejecuta la función vector_assist.apply_recommendation:
SELECT vector_assist.apply_recommendation(
recommendation_id => 'RECOMMENDATION_ID'
);
Reemplaza RECOMMENDATION_ID por el ID de la recomendación de Vector Assist que deseas aplicar de la tabla vector_assist.RECOMMENDATIONS.
Para aplicar todas las recomendaciones juntas, ejecuta la función vector_assist.apply_spec con el parámetro spec_id o table_name:
SELECT vector_assist.apply_spec(
spec_id => 'SPEC_ID'
);
Reemplaza SPEC_ID por el ID de la especificación de vector que deseas usar.
De manera opcional, también puedes ingresar los parámetros schema_name o column_name.
Para obtener información sobre todos los parámetros de consulta disponibles, consulta Referencias de funciones de Vector Assist.
Una vez que apliques las recomendaciones generadas por el asistente de vectores, el índice de vectores estará listo para usarse.
Genera búsquedas
Puedes usar el asistente de vectores para crear consultas de búsqueda optimizadas para tus cargas de trabajo vectoriales implementadas con la especificación de vectores y el índice de vectores generado de la carga de trabajo. Para generar una búsqueda optimizada, ejecuta la función vector_assist.generate_query:
SELECT vector_assist.generate_query(
spec_id => 'SPEC_ID',
search_vector => 'SEARCH_VECTOR',
top_k => 'TOP_K',
target_recall => TARGET_RECALL,
filter_expression => 'FILTER_EXPRESSION'
);
Reemplaza los siguientes parámetros:
SPEC_ID: ID de la especificación que deseas usar.SEARCH_VECTOR: Vector de tu búsqueda. Por ejemplo,[1, 2, 3]- (Opcional)
TOP_K: Es la cantidad de vecinos más cercanos que se devolverán. Si no se especifica, el valor predeterminado es10. TARGET_RECALL(opcional): Es el nivel de recuperación objetivo que deseas que alcance la asistencia vectorial. Si se especifica,vector_assistexperimenta con diferentes valores deef_searchy compara la recuperación en búsquedas exactas y de vecinos más cercanos.vector_assistestableceef_searchen el valor que proporciona la recuperación objetivo más cercana.FILTER_EXPRESSION(opcional): Son los filtros para la búsqueda. Por ejemplo, filtrar en función de otras columnas.
Para ver una lista completa de todos los parámetros disponibles para generar una búsqueda, consulta Referencias de funciones de Vector Assist.
El resultado de esta función devuelve texto que contiene una consulta en SQL. Puedes ejecutar o guardar esta consulta en SQL según sea necesario.
Enumera tus especificaciones de vectores
Si necesitas enumerar una especificación de vector individual o todas las existentes, ejecuta la función vector_assist.list_specs:
SELECT vector_assist.list_specs(
spec_id => 'SPEC_ID',
table_name => 'TABLE_NAME'
);
Reemplaza los siguientes parámetros:
- (Opcional)
SPEC_ID: ID de la especificación de vector que deseas usar. TABLE_NAME: Es el nombre de la tabla que usaste para definir tu especificación de vector.
¿Qué sigue?
- Obtén más información sobre la asistencia de vector.
- Referencias de la función de asistencia vectorial