Skip to content
ReviewRamble

The weekly brief

AI, reviewed, in your inbox.

  • New reviews of tools, models, MCP servers and repos, with the verdict up front
  • Re-checked prices and ratings when something changes
  • New analysis pieces as they are published

Models, agents, MCP servers and the tools actually worth your time.

One email a week. Unsubscribe with the link in any brief. How we use your email

pg-jev

Extensão do Postgres que filtra, ordena e classifica linhas com condições em linguagem comum julgadas pelo modelo Jev da TypeSafe.

Análise de Sheela · Atualizado

Ver no GitHub Código aberto

Nossa nota

3.7/5

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.

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.