Configurar a extensão pgvector no PostgreSQL do Azure para uso com a IA do Spring

Concluído

A pesquisa de similaridade de vetor é uma técnica usada para localizar itens semelhantes em um conjunto de dados comparando suas representações de vetor. A similaridade de vetor é comumente calculada usando métricas de distância, como distância euclidiana ou cosine similaridade. No contexto de IA e machine learning, representações de vetor ou inserções são representações numéricas de pontos de dados, como palavras, imagens ou consultas de usuário. Esses vetores capturam o significado semântico dos pontos de dados, permitindo pesquisas de similaridade eficientes.

Por exemplo, em um sistema de resposta a perguntas, as consultas de usuário podem ser convertidas em inserções de vetor. Essas inserções podem então ser comparadas a um banco de dados de inserções pré-computadas de prompts e respostas anteriores para localizar as mais semelhantes. Esse processo é conhecido como pesquisa de similaridade de vetor.

O que é a extensão pgvector?

A pgvector extensão é uma extensão do PostgreSQL que adiciona suporte para tipos de dados e operações de vetor. Ele permite armazenar e consultar inserções de vetor diretamente em um banco de dados PostgreSQL. Com pgvector, você pode executar pesquisas de similaridade eficientes usando operações de vetor, tornando-se uma opção ideal para aplicações que exigem recursos de pesquisa semântica.

A pgvector extensão inclui os seguintes principais recursos:

  • Suporte para tipos de dados de vetor.
  • Indexação e consulta eficientes de dados de vetor.
  • Integração com os recursos e extensões existentes do PostgreSQL.

A extensão pgvector no PostgreSQL do Azure

A extensão pgvector adiciona uma pesquisa de similaridade de vetor de código aberto ao PostgreSQL.

Antes de habilitar pgvector na sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL, você precisa adicioná-lo à sua lista de aprovação, conforme descrito em Permitir extensões. Para determinar se você o adicionou corretamente, use o seguinte comando: SHOW azure.extensions;

Importante

A comunidade PostgreSQL geralmente se refere a essa extensão como pgvector. No entanto, o nome do binário e da extensão em si é vector, que é o nome que você deve usar na lista de permissões e ao criá-lo no PostgreSQL por meio do CREATE EXTENSION comando.

Depois de adicionar a extensão à lista de permissões, instale a extensão usando o seguinte comando SQL:

CREATE EXTENSION IF NOT EXISTS vector;

operações do pgvector

A pgvector extensão permite uma pesquisa de similaridade eficiente, conforme mostrado no exemplo a seguir:

SELECT id, prompt, response
FROM chat_history
ORDER BY embedding <-> '[0.1,0.2,...]'::vector
LIMIT 3;

A implementação da IA Spring do pgvector

A IA do Spring inclui uma abstração de pgvector chamada VectorStore. Essa implementação requer duas outras extensões do PostgreSQL: hstore e uuid-ossp.

Na inicialização, o Spring Boot instala as extensões necessárias e cria a tabela necessária vector_store com um índice se ela ainda não existir.

Resumo da unidade

A pesquisa de similaridade de vetor e a pgvector extensão fornecem recursos avançados para a criação de aplicativos alimentados por IA que exigem funcionalidade de pesquisa semântica. Usando essas ferramentas no PostgreSQL do Azure, você pode armazenar, indexar e consultar inserções de vetor com eficiência, habilitando recursos avançados de pesquisa e recuperação em seus aplicativos.

Na próxima unidade, você executa as etapas para criar e configurar um banco de dados PostgreSQL, habilitar a pgvector extensão e criar tabelas necessárias para uso com a IA do Spring.