Usar a assistência de vetor

Nesta página, descrevemos como usar a assistência vetorial para implantar e gerenciar uma carga de trabalho vetorial na instância do Cloud SQL para PostgreSQL.

Para saber mais sobre o que é a assistência vetorial e como ela funciona, 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. A assistência vetorial exige um número de versão de manutenção mínimo de PostgreSQL_$version.R20251004.01_07. Para mais informações sobre como realizar a manutenção de autoatendimento, consulte Manutenção de autoatendimento de performance.
  • Defina a flag de banco de dados cloudsql.enable_vector_assist como ON.
  • Ative a extensão de assistência vetorial 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 vetorial.

Usar a assistência vetorial para implantar uma carga de trabalho vetorial

Para usar a assistência vetorial para implantar e gerenciar uma carga de trabalho vetorial, faça o seguinte:

Definir a especificação vetorial

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

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

SELECT 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: o nome da tabela que você quer usar na carga de trabalho vetorial.
  • VECTOR_COLUMN_NAME: a coluna em que você quer realizar uma pesquisa semântica.
  • TARGET_RECALL: a meta de recall que você quer que a assistência vetorial atenda.
  • TUNE_INDEX: um booleano que especifica se a assistência vetorial ajusta os índices vetoriais na carga de trabalho.

Para conferir uma lista completa de todos os parâmetros disponíveis para a especificação vetorial, consulte a referência da assistência vetorial.

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

Conferir as recomendações de assistência vetorial

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

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

Substitua os seguintes parâmetros:

  • SPEC_ID: o ID da especificação vetorial para a qual você quer conferir as recomendações.

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 a consulta SQL que você precisa executar, uma explicação detalhada da recomendação e outras informações relevantes que explicam a recomendação.

Aplicar as recomendações de assistência vetorial

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

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

SELECT vector_assist.apply_recommendation(
  recommendation_id => 'RECOMMENATION_ID',
);

Substitua os seguintes parâmetros:

  • RECOMMENDATION_ID: o ID da recomendação de assistência vetorial que você quer aplicar na tabela vector_assist.RECOMMENDATIONS.

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

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

Substitua os seguintes parâmetros:

  • SPEC_ID: o ID da especificação vetorial que você quer usar.
  • TABLE_NAME: o nome da tabela usada para definir a especificação vetorial.

Opcionalmente, você também pode inserir os parâmetros schema_name ou column_name.

Depois de aplicar as recomendações geradas pela assistência vetorial, o índice vetorial estará pronto para uso.

Gerar consultas de pesquisa

Você pode usar a assistência vetorial para ajudar a criar consultas de pesquisa otimizadas para as cargas de trabalho vetoriais implantadas usando a especificação vetorial da carga de trabalho e o índice vetorial gerado. Para gerar uma consulta de pesquisa otimizada, execute a vector_assist.generate_query função:

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

Substitua os seguintes parâmetros:

  • SPEC_ID: o ID da especificação que você quer usar.
  • TABLE_NAME: o nome da tabela usada para definir a especificação vetorial.
  • COLUMN_NAME: o nome da coluna de texto original que você definiu na especificação vetorial.
  • SEARCH_TEXT: o texto que você quer pesquisar na coluna.
  • TOP_K: o número de vizinhos mais próximos a serem retornados.
  • TARGET_RECALL: a meta de recall que você quer que a assistência vetorial atenda.
  • FILTER_EXPRESSION: todos os filtros para a consulta de pesquisa, por exemplo, a filtragem com base em outras colunas.

Para conferir uma lista completa de todos os parâmetros disponíveis para gerar uma consulta de pesquisa, consulte a referência da assistência vetorial.

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.

A seguir