Usar a assistência de vetor

Nesta página, descrevemos como usar o assistente de vetor para implantar e gerenciar uma carga de trabalho de vetor na instância do Cloud SQL para PostgreSQL.

Para saber mais sobre o que é o assistente de vetor e como ele funciona, consulte Visão geral do assistente de vetor.

Antes de começar

  • Confirme se a instância está usando a versão de manutenção correta. O assistente de vetor 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 desempenho.
  • Defina a flag de banco de dados cloudsql.enable_vector_assist como ON.
  • Ative a extensão do assistente de vetor usando o comando a seguir no banco de dados que você quer usar:

    CREATE EXTENSION vector_assist CASCADE;
    

    Isso gera o esquema vector_assist, que é usado pelo assistente de vetor.

Usar o assistente de vetor para implantar uma carga de trabalho de vetor

Para usar o assistente de vetor para implantar e gerenciar uma carga de trabalho de vetor, faça o seguinte:

Definir a especificação do vetor

A definição da especificação do vetor, ou especificação de vetor , é a primeira etapa para usar o assistente 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 em uma tabela, execute a vector_assist.define_spec função para definir a especificação do vetor:

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 de vetor.
  • VECTOR_COLUMN_NAME: a coluna em que você quer realizar uma pesquisa semântica.
  • TARGET_RECALL: a meta de recall que você quer que o assistente de vetor atenda.
  • TUNE_INDEX: um booleano que especifica se o assistente de vetor ajusta os índices de vetor na carga de trabalho.

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

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

Ver as recomendações do assistente de vetor

Para conferir as recomendações geradas pelo assistente de vetor usando a especificação do vetor, 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 do vetor para a qual você quer ver 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 do assistente de vetor

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 do assistente de vetor 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 do vetor que você quer usar.
  • TABLE_NAME: o nome da tabela usada para definir a especificação do vetor.

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

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 ajudar a criar consultas de pesquisa otimizadas para 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 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 do vetor.
  • COLUMN_NAME: o nome da coluna de texto original definida na especificação do vetor.
  • 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 o assistente de vetor atenda.
  • FILTER_EXPRESSION: todos os filtros para a consulta de pesquisa, por exemplo, 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 do assistente de vetor.

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