O pgvector é uma extensão para o PostgreSQL (também chamado de Postgres) que simplifica o trabalho com vetores, permitindo que você os armazene, pesquise e indexe diretamente no seu banco de dados relacional.
Com o pgvector, adicionar recursos avançados como pesquisa de similaridade aos seus aplicativos e agentes de IA pode ser simples e escalonável, sem precisar mover dados ou alterar arquiteturas de aplicativos para conectar o novo tipo de dados vetoriais.
O pgvector é uma extensão de código aberto para o PostgreSQL que ajuda a armazenar, indexar e pesquisar vetores de alta dimensão diretamente no seu banco de dados PostgreSQL atual. O pgvector é conhecido por oferecer compatibilidade com:
Um vetor representa dados numericamente de uma forma que captura as principais características, mapeando-os em um espaço matemático virtual. Nesse espaço, itens semelhantes, como palavras, imagens ou objetos, são posicionados próximos uns dos outros.
Por exemplo, considere as palavras "casaco" e "jaqueta". As pesquisas tradicionais baseadas em palavras-chave não conectariam essas duas palavras como semelhantes, porque as letras são bem diferentes. Um sistema de e-commerce que quer unir essas palavras-chave precisa fazer isso manualmente. No entanto, as representações vetoriais dos dois seriam muito próximas porque compartilham significados semelhantes, o que oferece resultados de pesquisa mais precisos para os usuários e economiza tempo para os desenvolvedores.
Da mesma forma, se você tirar duas fotos diferentes de gatos, elas podem ser muito diferentes pixel por pixel. No entanto, os embeddings de vetor os colocariam muito próximos no espaço matemático, assim como um humano identificaria facilmente ambos como imagens de gatos:

Para que isso funcione, um modelo de embedding transforma dados brutos, como imagens ou texto, em embeddings vetoriais. O pgvector armazena esses embeddings no seu banco de dados. Quando um usuário envia uma consulta, essa entrada também é convertida em um vetor. O pgvector calcula a distância entre o vetor de consulta e os vetores armazenados para identificar com eficiência os "vizinhos mais próximos" com as pontuações de similaridade mais altas.
Quer saber mais sobre os diferentes tipos de pesquisa de vizinhos mais próximos? Confira nosso guia para o desenvolvimento de apps de IA generativa.
O PostgreSQL é um sistema de gerenciamento de banco de dados relacional de código aberto robusto, projetado para lidar com dados estruturados usando tabelas, linhas e colunas.
O pgvector é uma extensão que é executada no PostgreSQL. Ele adiciona "vetor", um novo tipo de dados, ao banco de dados, permitindo o armazenamento e o processamento de embeddings vetoriais junto com seus dados operacionais padrão.
Não, o pgvector é uma extensão que se integra diretamente ao seu banco de dados PostgreSQL atual. Isso permite adicionar recursos avançados de IA e pesquisa sem gerenciar uma infraestrutura nova ou separada.
Para oferecer compatibilidade com os recursos atuais baseados em IA, você precisa da capacidade de armazenar e gerenciar incorporações vetoriais.
O PostgreSQL pode ser poderoso por si só, mas como os dados são rigidamente estruturados em tabelas, linhas e colunas, a capacidade de consulta é amplamente limitada à correspondência de palavras-chave e padrões.
No mundo da IA, dados complexos como texto, imagens e áudio são codificados como representações vetoriais. Essas codificações permitem que os modelos de IA compreendam o contexto e as relações semânticas nos seus dados, formando a base de recursos como pesquisa inteligente, recomendações e IA generativa.
A extensão pgvector traz a pesquisa semântica para o PostgreSQL, usando embeddings de vetores para encontrar resultados com base no significado de uma consulta, em vez de apenas correspondências de palavras-chave como o SQL faria. Esse processo, conhecido como pesquisa de similaridade, facilita a adição de recursos avançados de pesquisa diretamente aos seus aplicativos sem precisar reprojetar ou mover dados para um banco de dados vetorial separado.
Quer saber mais sobre embeddings de vetor? Confira nosso guia para o desenvolvimento de apps de IA generativa.
Com a capacidade de lidar com vetores de alta dimensão, o pgvector oferece compatibilidade com uma variedade de aplicativos avançados.
A correspondência de palavras-chave em bancos de dados relacionais tradicionais muitas vezes não identifica conexões significativas nos dados. A pesquisa de similaridade compara a proximidade dos vetores usando métricas como distância euclidiana e distância de cosseno para encontrar padrões mais profundos, o que é essencial para aplicativos como reconhecimento de imagens e pesquisa semântica, em que os resultados são classificados por significado. No e-commerce, por exemplo, a pesquisa por similaridade permite recomendações de produtos ao analisar o comportamento do usuário e encontrar itens relacionados.
O processamento de linguagem natural baseado em vetores permite que os agentes de IA entendam o contexto, o que leva a conversas mais personalizadas e respostas mais precisas. O suporte multilíngue melhora a performance deles como assistentes virtuais e plataformas de atendimento ao cliente.
O pgvector aprimora os fluxos de trabalho de IA ao permitir o armazenamento e a consulta de embeddings vetoriais, que são essenciais para identificar padrões incomuns nos dados. Ao analisar a proximidade do vetor, ele ajuda a detectar anomalias em tempo real para prevenção de fraudes, segurança de rede ou controle de qualidade.
A análise de sentimento analisa a intenção de uma mensagem, permitindo que você encaminhe comentários negativos de forma adequada para uma ação mais rápida, criando resoluções personalizadas.
Ao aproveitar a escalonabilidade, o suporte a transações e a confiabilidade robusta do PostgreSQL, o pgvector gerencia com eficiência conjuntos de dados de alta dimensão. Além disso, o uso da sintaxe SQL familiar torna o serviço acessível para equipes atuais, eliminando a necessidade de ferramentas ou infraestrutura adicionais dedicadas à indexação e pesquisa vetorial.
Integração fácil com apps baseados em PostgreSQL.
Melhora a escalonabilidade do PostgreSQL para conjuntos de dados crescentes.
Oferece recursos personalizáveis, como métricas de distância e indexação.
Herda a segurança e a confiabilidade confiáveis do PostgreSQL.
Permite consultar dados estruturados e não estruturados de maneira integrada.
Oferece uma solução fácil de usar para desenvolvedores que trabalham com dados em grande escala e de alta dimensão.
Para um banco de dados único que se destaca em consultas SQL tradicionais e pesquisas de vértices modernas, considere o AlloyDB para PostgreSQL. O AlloyDB usa o algoritmo de pesquisa de similaridade vetorial ScaNN (Scalable Nearest Neighbor) desenvolvido pelo Google, oferecendo um desempenho significativamente maior do que outros serviços PostgreSQL baseados na nuvem para cargas de trabalho transacionais e analíticas em bancos de dados grandes.
Saiba como o AlloyDB realiza pesquisas simultâneas em dados estruturados e não estruturados.
O Cloud SQL e o AlloyDB para PostgreSQL são compatíveis com o pgvector, permitindo que você armazene e consulte embeddings de vetor usando comandos SQL padrão.
Use seu cliente PostgreSQL preferido (como psql, pgAdmin ou o console do Google Cloud) para se conectar à sua instância do Cloud SQL ou AlloyDB.
Execute o seguinte comando SQL para ativar a extensão no seu banco de dados. Você só precisa fazer isso uma vez por banco de dados.
Crie uma nova tabela (ou altere uma já existente) para incluir uma coluna para dados vetoriais. Você precisa especificar as dimensões do vetor. Por exemplo, para criar uma tabela para armazenar embeddings tridimensionais:
É possível inserir embeddings de vetor como dados padrão. Os vetores são formatados como matrizes entre colchetes.
Agora você pode consultar seus dados para encontrar os vizinhos mais próximos. O operador <-> calcula a distância euclidiana (distância L2), que é comumente usada para encontrar os itens mais semelhantes.
Para conjuntos de dados maiores, adicionar um índice pode acelerar significativamente o desempenho da pesquisa. Os índices HNSW e ScaNN são opções usadas com frequência. Aqui está um exemplo de HNSW:
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.