Use a assistência vetorial

Esta página descreve como usar a assistência vetorial para implementar e gerir uma carga de trabalho vetorial na sua instância do Cloud SQL para PostgreSQL.

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

Antes de começar

  • Confirme que a sua instância está a usar a versão de manutenção correta. O vector assist requer 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 autónoma, consulte o artigo Realize a manutenção autónoma.
  • Defina o sinalizador da base de dados cloudsql.enable_vector_assist como ON.
  • Ative a extensão de assistência vetorial através do seguinte comando na base de dados que quer usar:

    CREATE EXTENSION vector_assist CASCADE;
    

    Isto gera o esquema vector_assist, que é usado pela assistência vetorial.

Use o assistente vetorial para implementar uma carga de trabalho vetorial

Para usar a assistência vetorial para implementar e gerir uma carga de trabalho vetorial, tem de fazer o seguinte:

Defina a especificação do vetor

Definir a especificação de vetores ou a especificação de vetores é o primeiro passo para usar a assistência vetorial. Consoante o tipo de carga de trabalho vetorial, os campos que usa para definir a especificação vetorial podem ser diferentes.

Por exemplo, se quiser ativar a pesquisa semântica numa coluna específica de uma tabela, execute a função vector_assist.define_spec 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 quer usar no seu fluxo de trabalho vetorial.
  • VECTOR_COLUMN_NAME: a coluna na qual quer fazer uma pesquisa semântica.
  • TARGET_RECALL: a capacidade de memorização pretendida que quer que o assistente vetorial alcance.
  • TUNE_INDEX: um valor booleano que especifica se o vetor de assistência otimiza os índices de vetores na sua carga de trabalho.

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

Depois de executar a consulta para criar a especificação de vetor, a assistência vetorial gera automaticamente passos, denominados recomendações, que tem de executar para implementar a carga de trabalho vetorial.

Veja recomendações de assistência vetorial

Para ver as recomendações geradas pela assistência vetorial com base na sua especificação vetorial, execute a função vector_assist.get_recommendations:

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

Substitua os seguintes parâmetros:

  • SPEC_ID: o ID da especificação do vetor para o qual quer ver recomendações.

Devolve uma tabela denominada vector_assist.RECOMMENDATIONS que contém todas as recomendações. Cada recomendação é armazenada numa tabela com o spec_id associado. Geralmente, cada recomendação contém a consulta SQL que tem de executar, uma explicação detalhada da recomendação e outras informações relevantes que explicam a recomendação.

Aplique recomendações de assistência vetorial

Pode aplicar as recomendações geradas individualmente ou no seu conjunto.

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

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 quer aplicar a partir da tabela vector_assist.RECOMMENDATIONS.

Para aplicar todas as recomendações em conjunto, 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',
  table_name => 'TABLE_NAME'
);

Substitua os seguintes parâmetros:

  • SPEC_ID: o ID da especificação vetorial que quer usar.
  • TABLE_NAME: o nome da tabela que usou para definir a sua especificação de vetor.

Opcionalmente, também pode introduzir os parâmetros schema_name ou column_name.

Depois de aplicar as recomendações geradas pela assistência vetorial, o índice vetorial está pronto a ser usado.

Gere consultas de pesquisa

Pode usar a assistência vetorial para ajudar a criar consultas de pesquisa otimizadas para as cargas de trabalho vetoriais implementadas usando a especificação vetorial da carga de trabalho e o índice vetorial 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',
  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 quer usar.
  • TABLE_NAME: o nome da tabela que usou para definir a especificação do vetor.
  • COLUMN_NAME: o nome da coluna de texto original que definiu na especificação do vetor.
  • SEARCH_TEXT: o texto que quer pesquisar na coluna.
  • TOP_K: o número de vizinhos mais próximos a devolver.
  • TARGET_RECALL: a capacidade de memorização pretendida que quer que o assistente vetorial alcance.
  • FILTER_EXPRESSION: quaisquer filtros para a consulta de pesquisa, por exemplo, filtragem com base noutras colunas.

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

O resultado desta função devolve texto que contém uma consulta SQL. Pode executar ou guardar esta consulta SQL conforme necessário.

O que se segue?