Cómo usar la asistencia de vectores

En esta página, se describe cómo usar Vector Assist para implementar y administrar una carga de trabajo de vectores en tu instancia de Cloud SQL 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 PostgreSQL_$version.R20251004.01_07. Para obtener más información sobre cómo realizar el mantenimiento de autoservicio, consulta Mantenimiento de autoservicio del rendimiento.
  • Establece la marca de base de datos cloudsql.enable_vector_assist en ON.
  • Habilita la extensión de 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 de vectores.

Usa Vector Assist para implementar una carga de trabajo vectorial

Para usar Vector Assist para implementar y administrar una carga de trabajo de vectores, debes hacer lo siguiente:

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 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 vectorial.
  • VECTOR_COLUMN_NAME: Es la columna en la que deseas realizar una búsqueda semántica.
  • TARGET_RECALL: Es la recuperación objetivo que deseas que cumpla la asistencia de vectores.
  • TUNE_INDEX: Es un valor booleano que especifica si Vector Assist ajusta los índices vectoriales en tu carga de trabajo.

Para ver una lista completa de todos los parámetros disponibles para la especificación del vector, consulta la referencia de 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 el asistente de vectores con tu especificación de vectores, ejecuta la función vector_assist.get_recommendations:

SELECT vector_assist.get_recommendations(
  spec_id => 'SPEC_ID'
);

Reemplaza los siguientes parámetros:

  • SPEC_ID: Es el ID de la especificación del vector para el que deseas ver recomendaciones.

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 consulta en SQL que debes ejecutar, una explicación detallada de la recomendación y otra información pertinente que la explica.

Aplica 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 => 'RECOMMENATION_ID',
);

Reemplaza los siguientes parámetros:

  • RECOMMENDATION_ID: Es el ID de la recomendación de asistencia vectorial que deseas aplicar desde 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',
  table_name => 'TABLE_NAME'
);

Reemplaza los siguientes parámetros:

  • SPEC_ID: Es el 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.

De manera opcional, también puedes ingresar los parámetros schema_name o column_name.

Una vez que apliques las recomendaciones generadas por el asistente vectorial, el índice vectorial 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 de vectores 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',
  table_name => 'TABLE_NAME',
  column_name => 'COLUMN_NAME',
  search_text => 'SEARCH_TEXT',
  top_k => 'TOP_K_NAME',
  target_recall => TARGET_RECALL,
  filter_expression => 'FILTER_EXPRESSION'
);

Reemplaza los siguientes parámetros:

  • SPEC_ID: Es el ID de la especificación que deseas usar.
  • TABLE_NAME: Es el nombre de la tabla que usaste para definir tu especificación de vector.
  • COLUMN_NAME: Es el nombre de la columna de texto original que definiste en tu especificación de vector.
  • SEARCH_TEXT: Es el texto que deseas buscar en la columna.
  • TOP_K: Es la cantidad de vecinos más cercanos que se devolverán.
  • TARGET_RECALL: Es la recuperación objetivo que deseas que cumpla la asistencia de vectores.
  • FILTER_EXPRESSION: Son los filtros de la búsqueda, por ejemplo, el filtrado basado en otras columnas.

Para ver una lista completa de todos los parámetros disponibles para generar una búsqueda, consulta la referencia 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.

¿Qué sigue?