Não. O Jev não gera texto. A documentação oficial da TypeSafe afirma que o
jev-1.13 não é treinado para gerar texto e lista “geração” entre os nove
modos de falha declarados da versão.
O que ele devolve são valores tipados: a opção escolhida em um conjunto que você definiu, uma nota em uma régua que você descreveu, ou a probabilidade de uma resposta ser sim — sempre com a distribuição de probabilidades por trás.
Por que isso é desenho, e não limitação acidental
O Jev pertence a uma classe de modelo que a TypeSafe chama de System One, e a página oficial dessa classe é explícita sobre o escopo: esses modelos não escrevem respostas, não produzem código e não geram explicação do próprio raciocínio. O espaço de respostas possíveis é definido por você, antes da chamada, através das primitivas.
Essa restrição é o que dá as propriedades do produto. Como a saída não pode sair do conjunto que você escreveu, não há parsing, não há resposta fora de formato e não há invenção de valor. O contraste com um modelo que escreve está em Jev vs ChatGPT e a classe de modelo em o que é um modelo System One.
E se eu tentar forçar?
A documentação antecipa a tentativa e responde: dá para forçar geração encadeando perguntas de escolha, e isso funciona mal e fica muito lento. A recomendação oficial, quando a saída precisa ser texto, é usar um modelo generativo.
Vale levar esse aviso a sério. Montar um gerador a partir de escolhas encadeadas custa uma chamada por token de decisão, soma latência a cada passo e produz um resultado pior do que qualquer modelo pequeno de linguagem faria em uma requisição.
O que fazer quando você precisa de um valor
Este é o caso mais comum de quem chega com a pergunta do título: não é “quero que o modelo escreva um parágrafo”, é “quero que ele me devolva o e-mail do cliente que está neste recibo”.
A documentação dá a inversão: quando o espaço de respostas é limitado, transforme a extração em uma escolha sobre as opções em vez de pedir o valor.
Na prática são três passos:
- Ache os candidatos com código. Expressão regular para e-mail, telefone, CPF, valor monetário e data. Aceite falsos positivos: ache com folga.
- Pergunte qual é o certo. Um Choice em que as opções são os próprios trechos encontrados, mais uma opção de escape para o caso de nenhum servir.
- Copie e normalize no seu código. O trecho escolhido é copiado tal como estava.
A propriedade que esse desenho compra é a que importa: como o conjunto de respostas possíveis são os trechos que a regex encontrou, o valor devolvido é um deles, sem alteração. Não há como inventar valor nem trocar um dígito.
O cookbook oficial mostra isso funcionando — e-mail com confiança 0,98, telefone com 1,00, classificação de cobrança contra crédito com 0,99 — e registra os dois limites do método: uma pergunta de escolha aceita no máximo 255 opções, e achar os candidatos é o trabalho difícil, porque e-mail, telefone e valor têm regex e nome de pessoa não tem. A tradução está em extrair valores.
O mesmo raciocínio vale para datas, com uma volta a mais: cada parte de uma data é um conjunto fechado — doze meses, trinta e um dias, uma faixa de anos — então a extração vira uma escolha por parte, com uma opção explícita de “não informado”, e o código monta a data. Em extrair datas.
O que fazer quando você precisa mesmo de texto
Use um modelo generativo, e ponha o Jev antes dele em vez de no lugar dele.
O desenho de camadas é o que aparece em quase todo sistema real: o classificador barato decide o desvio e o modelo caro só é acionado no ramo que precisa escrever. Isso é roteamento de intenção.
Há uma segunda combinação, na direção oposta: o modelo generativo escreve e o Jev verifica o que ele escreveu, campo por campo, por uma fração do custo. É o padrão de cascata de extração, e o cookbook oficial dele traz um exemplo bonito de por que isso importa — um registro que passava no JSON Schema e continha uma descrição que a página fonte nunca disse.
Um caso limite que confunde
Recuperar formatação parece geração e não é. O cookbook oficial de recuperação de estrutura reconstrói Markdown a partir de texto cru, e a garantia que ele publica é justamente esta: o modelo nunca gera texto; cada caractere da saída vem da entrada, e o código faz a renderização. As perguntas são sobre onde as linhas se juntam e que tipo de bloco cada trecho é. Em recuperar estrutura.
Esse é o teste mental que resolve a maioria das dúvidas: se a resposta que você quer já está no conteúdo, ou é um rótulo de um conjunto que você consegue escrever, é trabalho para o Jev. Se ela precisa ser inventada, não é.
Resumo
Não gera. Para valor extraído, transforme em escolha sobre candidatos. Para texto novo, use um modelo generativo — e considere pôr o Jev na frente, para decidir quando o caro entra, ou atrás, para verificar o que ele produziu.
As outras perguntas diretas estão em perguntas, e a lista completa de fronteiras em quando não usar o Jev.
Perguntas frequentes
O Jev gera texto?
Não. A documentação oficial afirma que o jev-1.13 não é treinado para gerar texto e lista geração entre os nove modos de falha declarados da versão. Ele devolve valores tipados: a opção escolhida, a nota na régua, a probabilidade de sim e a distribuição completa.
Dá para forçar geração encadeando escolhas?
Dá, e a documentação desaconselha na mesma frase: diz que funciona mal e fica muito lento. Se a saída precisa ser texto novo, a ferramenta é outra.
Como extraio um valor de um documento, então?
Invertendo a ordem. Ache os candidatos com expressão regular ou com um modelo generativo e deixe o Jev escolher qual é o correto, sobre um conjunto fechado. O valor devolvido é um dos trechos encontrados, copiado sem alteração.
Qual o limite de opções dessa escolha?
Uma pergunta Choice aceita no máximo 255 opções. Acima disso, a seleção vira duas etapas, como registra o cookbook oficial de extração de valores.
E se eu precisar de texto e de decisão no mesmo fluxo?
Use os dois modelos, com papéis separados: o Jev decide o desvio e o modelo generativo escreve apenas no ramo que precisa escrever. É o padrão de roteamento de intenção.