Usar a assistência de vetor

Use o Vector Assist para implantar e gerenciar uma carga de trabalho de vetor nas suas instâncias do AlloyDB para PostgreSQL.

Para saber mais sobre o que é e como funciona a assistência vetorial, consulte Visão geral da assistência vetorial.

Antes de começar

  • Confirme se a instância está usando a versão de manutenção correta. O Vector Assist exige um número de versão de manutenção mínimo de POSTGRES_17.20260128.03_06. Para mais informações sobre como realizar a manutenção de autoatendimento, consulte Manutenção de autoatendimento de desempenho.
  • Ative a extensão de assistência de vetor usando o seguinte comando no banco de dados que você quer usar:

    CREATE EXTENSION vector_assist CASCADE;
    

    Isso gera o esquema vector_assist, que é usado pela assistência de vetor.

Usar o Vector Assist para implantar uma carga de trabalho de vetor

Para usar o Vector Assist na implantação e no gerenciamento de uma carga de trabalho de vetor, faça o seguinte:

Definir sua especificação de vetor

Definir a especificação de vetor, ou especificação de vetor, é a primeira etapa para usar a assistência de vetor. Dependendo do tipo de carga de trabalho de vetor, os campos usados para definir a especificação de vetor podem ser diferentes.

Por exemplo, se você quiser ativar a pesquisa semântica em uma coluna específica de uma tabela, execute a função vector_assist.define_spec para definir a especificação do vetor:

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
);

Substitua os seguintes parâmetros:

  • TABLE_NAME: nome da tabela que você quer usar na sua carga de trabalho de vetor.
  • (Opcional) VECTOR_COLUMN_NAME: a coluna em que você quer realizar uma pesquisa semântica. Se você tiver apenas uma coluna com vetores na tabela, o vector_assist poderá definir isso automaticamente. Se houver mais de uma tabela com vetores, especifique qual coluna usar.
  • (Opcional) TARGET_RECALL: recall de destino que você quer que a assistência de vetor atinja. Se especificado, vector_assist testa diferentes valores de ef_search, comparando o recall em pesquisas exatas e de vizinho mais próximo. vector_assist define ef_search como o valor que fornece a meta de recordação mais próxima. O valor padrão é 0.95.
  • (Opcional) TUNE_INDEX: booleano que especifica se o Vector Assist ajusta os índices de vetor na sua carga de trabalho. O valor padrão é false, o que significa que apenas os parâmetros relacionados à pesquisa (ef_search) são ajustados. Os parâmetros de tempo de build (m, ef_construction) não são ajustados.

Para conferir uma lista completa de todos os parâmetros disponíveis para a especificação de vetor, consulte Referências de funções do Vector Assist.

Depois de executar a consulta para criar a especificação de vetor, o assistente de vetor gera automaticamente etapas, chamadas de recomendações, que você precisa executar para implantar sua carga de trabalho de vetor.

Ver recomendações do Vector Assist

Para conferir as recomendações geradas pela assistência de vetores usando sua especificação de vetor, execute a função vector_assist.get_recommendations:

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

Substitua SPEC_ID pelo ID da especificação do vetor para que você quer ver recomendações. Para conferir sua lista de especificações de vetor disponíveis, consulte Listar suas especificações de vetor.

vector_assist.get_recommendations retorna uma tabela chamada vector_assist.RECOMMENDATIONS que contém todas as recomendações. Cada recomendação é armazenada em uma tabela com o spec_id associado. Cada recomendação geralmente contém as seguintes informações:

  • Consulta SQL que você precisa executar
  • Explicação detalhada da recomendação
  • Outras informações relevantes que explicam a recomendação

Aplicar recomendações do Vector Assist

Você pode aplicar as recomendações geradas individualmente ou como um todo.

Para aplicar uma recomendação específica, execute a função vector_assist.apply_recommendation:

SELECT vector_assist.apply_recommendation(
  recommendation_id => 'RECOMMENDATION_ID'
);

Substitua RECOMMENDATION_ID pelo ID da recomendação de assistência de vetor que você quer aplicar na tabela vector_assist.RECOMMENDATIONS.

Para aplicar todas as recomendações juntas, execute a função vector_assist.apply_spec com o parâmetro spec_id ou table_name:

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

Substitua SPEC_ID pelo ID da especificação de vetor que você quer usar.

Também é possível inserir os parâmetros schema_name ou column_name. Para informações sobre todos os parâmetros de consulta disponíveis, consulte Referências da função de assistência vetorial.

Depois de aplicar as recomendações geradas pelo assistente de vetor, o índice de vetor estará pronto para uso.

Gerar consultas de pesquisa

Você pode usar o assistente de vetor para criar consultas de pesquisa otimizadas para suas cargas de trabalho de vetor implantadas usando a especificação de vetor da carga de trabalho e o índice de vetor gerado. Para gerar uma consulta de pesquisa otimizada, execute a função 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'
);

Substitua os seguintes parâmetros:

  • SPEC_ID: ID da especificação que você quer usar.
  • SEARCH_VECTOR: vetor para sua consulta de pesquisa. Por exemplo, [1, 2, 3].
  • (Opcional) TOP_K: número de vizinhos mais próximos a serem retornados. Se não for especificado, o valor padrão será 10.
  • (Opcional) TARGET_RECALL: recall de destino que você quer que a assistência de vetor atinja. Se especificado, vector_assist testa diferentes valores de ef_search, comparando o recall em pesquisas exatas e de vizinho mais próximo. vector_assist define ef_search como o valor que fornece a meta de recordação mais próxima.
  • (Opcional) FILTER_EXPRESSION: qualquer filtro para a consulta de pesquisa. Por exemplo, filtrar com base em outras colunas.

Para conferir uma lista completa de todos os parâmetros disponíveis para gerar uma consulta de pesquisa, consulte Referências de funções do Vector Assist.

A saída dessa função retorna um texto que contém uma consulta SQL. Você pode executar ou salvar essa consulta SQL conforme necessário.

Listar suas especificações de vetor

Se você precisar listar um indivíduo ou todas as especificações de vetor atuais, execute a função vector_assist.list_specs:

SELECT vector_assist.list_specs(
  spec_id => 'SPEC_ID',
  table_name => 'TABLE_NAME'
);

Substitua os seguintes parâmetros:

  • (Opcional) SPEC_ID: ID da especificação de vetor que você quer usar.
  • TABLE_NAME: nome da tabela usada para definir a especificação do vetor.

A seguir