O que é pg-jev?
O pg-jev adiciona ao PostgreSQL funções SQL como jev(), jev_prob(), jev_choice() e jev_score(). Escreva WHERE jev(tickets, 'the customer is angry') e cada linha é enviada ao Jev da TypeSafe, um modelo de decisão que devolve uma probabilidade calibrada em vez de texto gerado. Não há índice, embedding nem coluna vetorial; é uma varredura completa por design.
A extensão é escrita em PL/Python. Ela lê a tabela adiante, agrupa 20 linhas por requisição, mantém em andamento até o dobro da configuração de concorrência (16 por padrão) e guarda as respostas em cache durante a sessão. O README mede uma tabela de 2,000 linhas em cerca de 3.5 segundos e $0.012 na primeira execução e cerca de 50 ms com cache. O endpoint pode apontar para um servidor local compatível com o Jev, como o stuntd, para que as linhas nunca saiam da rede.
O projeto é de um único desenvolvedor, sob a PostgreSQL Licence, criado em setembro de 2026, com cerca de 1,238 estrelas e 13 commits. A versão mais recente é a v0.2.1 (3 de outubro de 2026), também publicada no PGXN.
pg-jev vale a pena?
O pg-jev torna agradável um trabalho estreito: perguntas sobre linhas que o SQL não consegue expressar, como se um ticket ameaça cancelar ou qual equipe deve cuidar dele. Como jev() é uma função booleana comum, ela se combina com joins, GROUP BY e LIMIT, e predicados mais baratos na mesma cláusula WHERE rodam primeiro, então WHERE age > 60 AND jev(...) só envia as linhas que sobraram.
As notas de engenharia são melhores que as da maioria dos projetos desse tamanho. O autor mediu por que o lote tem 20 linhas: lotes de 1 a 20 acertaram tudo contra o gabarito, 40 caiu para 92 a 98% e 80 para 77 a 94%. O README também explica o custo de uma conexão fria e que o cache por sessão cresce sem limite até ser limpo. (O site do projeto ainda descreve lotes de 40 e seis requisições simultâneas; o README é mais recente.)
Os limites são estruturais. Cada linha sobre a qual o executor pergunta vai para a API, então uma consulta descuidada em uma tabela grande é lenta e cobrada. A extensão exige plpython3u e um superusuário, o que exclui Supabase, Neon, RDS e a maioria dos hosts gerenciados, e suas funções rodam com os privilégios de sistema operacional do servidor. O conteúdo das linhas vai para terceiros, a menos que você rode um servidor local como o stuntd.
Ele também é muito jovem: 13 commits, um mantenedor, nenhum commit desde o início de outubro. Diante do pgvector, que responde a perguntas de similaridade e não de sim ou não, o pg-jev é a ferramenta certa para classificação e filtragem em tabelas modestas, e um limite de gastos como jev.max_rows_per_statement deve ser definido antes que qualquer outra pessoa tenha acesso.
Onde ele se destaca
Uma líder de suporte com 20,000 tickets em um Postgres auto-hospedado
Encontrar os tickets em que o cliente ameaça cancelar
Pré-filtrar por data em SQL e depois usar ORDER BY jev_prob(tickets, ...) LIMIT 50. Na taxa do README, de cerca de $0.012 por 2,000 linhas, uma passagem completa custa aproximadamente $0.12, e reordenar dentro da sessão é gratuito.
Um engenheiro de dados em uma empresa que não pode enviar dados de clientes para fora
Encaminhar e-mails recebidos para cobrança, suporte técnico ou vendas
Definir jev.api_url para um servidor stuntd local e chamar jev_choice() com as três opções. Sem cobrança por linha, mas conferir a precisão do servidor local é responsabilidade sua.
Uma startup no Supabase
Adicionar filtros em linguagem natural às consultas do painel administrativo
Isso não vai funcionar: hosts gerenciados não liberam superusuário nem plpython3u. Seria preciso um Postgres autogerenciado ou um serviço separado chamando o Jev.
Antes de decidir
- Configuração
- PostgreSQL 14 a 17 com plpython3u e um superusuário; pgxn install jev ou make install, CREATE EXTENSION jev CASCADE, depois definir uma chave de API da TypeSafe. Inclui uma imagem Docker e uma skill de agente para skills.sh.
- Integrações
- A API Jev da TypeSafe por padrão; qualquer servidor que fale POST /v1/systemone, como o stuntd; funciona em tabelas e views, com subconsultas julgadas uma linha por requisição.
- Dados e privacidade
- O conteúdo das linhas é enviado à TypeSafe, a menos que jev.api_url aponte para outro lugar; as respostas ficam em cache na sessão do backend. Funções plpython3u rodam com os privilégios de sistema operacional do servidor. PostgreSQL Licence; sem vínculo com a TypeSafe.
- Custo em escala
- Cobrado por token pela TypeSafe: o README mede cerca de $0.012 para 2,000 linhas na primeira execução. jev.max_rows_per_statement e jev.max_chars_per_statement limitam o gasto por consulta.
- Limites
- Varreduras completas por design; a precisão cai acima de cerca de 20 a 25 linhas por lote; o cache por sessão não tem limite até ser limpo; sem suporte a Postgres gerenciado; um mantenedor.
O que é bom
- Filtros em linguagem comum que se combinam com SQL comum
- Números medidos de lotes, cache e custo na documentação
- Limites de gastos por instrução para bancos compartilhados
- Pode apontar para um servidor local compatível com o Jev
O que não é
- Varredura completa da tabela; cada linha é enviada à API
- Exige superusuário e plpython3u; sem Postgres gerenciado
- Os dados das linhas saem da sua rede por padrão
- Mantenedor único, com 13 commits
Ideal para
Analistas e desenvolvedores em Postgres autogerenciado que querem classificar ou filtrar milhares de linhas pelo significado sem montar um pipeline de embeddings.
Alternativas ao pg-jev
pg-jev: perguntas frequentes
- pg-jev vale a pena?
- Uma forma elegante de fazer perguntas vagas a uma tabela em SQL, desde que você aceite uma varredura completa, uma instalação como superusuário e linhas saindo do banco de dados. Damos nota 3.7 de 5.
- Quanto custa pg-jev?
- Gratuito (PostgreSQL Licence). Cada linha julgada é cobrada pela API Jev da TypeSafe, a menos que você aponte para um servidor local compatível.
- Quais são as desvantagens de pg-jev?
- Varredura completa da tabela; cada linha é enviada à API; exige superusuário e plpython3u; sem Postgres gerenciado; os dados das linhas saem da sua rede por padrão; mantenedor único, com 13 commits.
- Para quem pg-jev é indicado?
- Analistas e desenvolvedores em Postgres autogerenciado que querem classificar ou filtrar milhares de linhas pelo significado sem montar um pipeline de embeddings.
- Quanto custa pg-jev para uma equipe ou em produção?
- Cobrado por token pela TypeSafe: o README mede cerca de $0.012 para 2,000 linhas na primeira execução. jev.max_rows_per_statement e jev.max_chars_per_statement limitam o gasto por consulta.
- pg-jev é seguro para dados da empresa?
- O conteúdo das linhas é enviado à TypeSafe, a menos que jev.api_url aponte para outro lugar; as respostas ficam em cache na sessão do backend. Funções plpython3u rodam com os privilégios de sistema operacional do servidor. PostgreSQL Licence; sem vínculo com a TypeSafe.
- Quais são as melhores alternativas ao pg-jev?
- As alternativas mais próximas que analisamos são pgvector, AnyJev e Laya.
Respostas verificadas em 31 de out. de 2026.
