{"id":200,"date":"2026-11-01T11:58:36","date_gmt":"2026-11-01T07:58:36","guid":{"rendered":"https:\/\/demensdeum.com\/blog\/2026\/11\/01\/ollama-jev-decision-models\/"},"modified":"2026-11-01T11:58:36","modified_gmt":"2026-11-01T07:58:36","slug":"ollama-jev-decision-models","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/pt\/2026\/11\/01\/ollama-jev-decision-models\/","title":{"rendered":"Modelos de solu\u00e7\u00e3o Jev em Ollama: uso pr\u00e1tico \/v1\/systemone"},"content":{"rendered":"<p>A partir da vers\u00e3o 0.35, Ollama suporta modelos de decis\u00e3o constru\u00eddos na API Jev do TypeSafe. Estes n\u00e3o s\u00e3o modelos de chat no sentido usual: eles n\u00e3o escrevem texto, mas respondem a um conjunto de perguntas digitadas sobre o estado transferido. Para classifica\u00e7\u00e3o, roteamento, modera\u00e7\u00e3o e triagem, isso acaba sendo mais r\u00e1pido e confi\u00e1vel do que pedir a um LLM normal que retorne JSON e depois analise sua resposta.<\/p>\n<p>Nesta postagem, veremos o que s\u00e3o modelos de decis\u00e3o, como funcionam no n\u00edvel HTTP, quais modelos j\u00e1 est\u00e3o dispon\u00edveis e como constru\u00ed-los no c\u00f3digo existente para que os modelos generativos regulares continuem a funcionar.<\/p>\n<h2>Como os modelos de decis\u00e3o diferem dos modelos normais<\/h2>\n<p>Um LLM regular recebe um prompt e gera texto token por token. Mesmo que voc\u00ea pe\u00e7a que ela responda em uma palavra, a gera\u00e7\u00e3o ainda ocorre internamente, e o formato da resposta deve ser controlado por diagrama, instru\u00e7\u00f5es e posterior verifica\u00e7\u00e3o. O modelo de Decis\u00e3o funciona de maneira diferente: voc\u00ea passa estados e quest\u00f5es com tipos, e o modelo retorna probabilidades e op\u00e7\u00f5es selecionadas. Sem texto livre, sem an\u00e1lise de JSON da resposta.<\/p>\n<p>O novo endpoint \u00e9 chamado \/v1\/systemone. Em uma solicita\u00e7\u00e3o, voc\u00ea pode fazer v\u00e1rias perguntas ao mesmo tempo, e o modelo responder\u00e1 a todas elas. Isso \u00e9 conveniente para tarefas em que voc\u00ea precisa tomar diversas decis\u00f5es relacionadas: por exemplo, determinar a equipe, a necessidade de retorno e a urg\u00eancia do ticket.<\/p>\n<h2>Quais modelos est\u00e3o dispon\u00edveis<\/h2>\n<p>Agora voc\u00ea pode executar tr\u00eas modelos de decis\u00e3o por meio do Ollama:<\/p>\n<ul>\n<li><b>nimble<\/b> \u00e9 um modelo aberto com 9 bilh\u00f5es de par\u00e2metros do Bespoke Labs. \u00c9 o maior e mais preciso dispon\u00edvel.<\/li>\n<li><b>tev1<\/b> \u00e9 um modelo experimental com 4 bilh\u00f5es de par\u00e2metros da Together AI.<\/li>\n<li><b>tev1:0.8b<\/b> \u00e9 um modelo experimental com 0,8 bilh\u00e3o de par\u00e2metros do Together AI. O mais r\u00e1pido e f\u00e1cil.<\/li>\n<\/ul>\n<p>Todos trabalham localmente, n\u00e3o exigem pagamento e n\u00e3o enviam dados para servi\u00e7o externo. Ollama 0.35 e posteriores s\u00e3o suportados.<\/p>\n<h2>Instala\u00e7\u00e3o<\/h2>\n<p>Primeiro verifique a vers\u00e3o do Ollama:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>ollama --version\n<\/code><\/pre>\n<\/div>\n<p>Em seguida, baixe o modelo desejado. Para o mais f\u00e1cil:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>ollama pull tev1:0.8b\n<\/code><\/pre>\n<\/div>\n<p>Para a vers\u00e3o completa do tev1:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>ollama pull tev1\n<\/code><\/pre>\n<\/div>\n<p>Para \u00e1gil:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>ollama pull nimble\n<\/code><\/pre>\n<\/div>\n<p>O modelo \u00e1gil ocupa cerca de 9,5 GB de espa\u00e7o em disco, por isso \u00e9 uma boa ideia liberar espa\u00e7o antes de fazer o download. tev1:0.8b ocupa menos de um gigabyte.<\/p>\n<h2>Primeira solicita\u00e7\u00e3o via curl<\/h2>\n<p>O exemplo mais simples \u00e9 determinar se um texto \u00e9 um an\u00fancio de emprego:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>curl http:\/\/localhost:11434\/v1\/systemone -d '{\n  \"model\": \"tev1:0.8b\",\n  \"state\": {\n    \"message\": \"Senior Swift developer, Berlin, remote friendly\"\n  },\n  \"questions\": {\n    \"isJob\": {\n      \"type\": \"noul\",\n      \"instructions\": \"Does the message advertise a job posting that someone can apply to?\"\n    }\n  }\n}'\n<\/code><\/pre>\n<\/div>\n<p>A resposta \u00e9 assim:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>{\n  \"model\": \"tev1:0.8b\",\n  \"answers\": {\n    \"isJob\": {\n      \"type\": \"noul\",\n      \"noul\": 0.921\n    }\n  },\n  \"usage\": {\n    \"input_tokens\": 42,\n    \"output_tokens\": 0\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p>O campo noul \u00e9 uma probabilidade de 0 a 1. A decis\u00e3o \u00e9 tomada por compara\u00e7\u00e3o com um limite, geralmente 0,5. Ao contr\u00e1rio do modelo generativo, n\u00e3o h\u00e1 necessidade de solicitar uma resposta no formato JSON e depois verificar se o modelo n\u00e3o a quebrou.<\/p>\n<h2>Tipos de perguntas<\/h2>\n<p>Os modelos de decis\u00e3o suportam tr\u00eas tipos de perguntas.<\/p>\n<p><b>noul<\/b> \u00e9 uma quest\u00e3o bin\u00e1ria. Retorna a probabilidade de uma afirma\u00e7\u00e3o ser verdadeira:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>{\n  \"questions\": {\n    \"refund\": {\n      \"type\": \"noul\",\n      \"instructions\": \"Does the customer explicitly ask for a refund?\"\n    }\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p><b>escolha<\/b> &#8211; selecionar uma op\u00e7\u00e3o de um determinado conjunto. Retorna a op\u00e7\u00e3o selecionada, as probabilidades de todas as op\u00e7\u00f5es e a confian\u00e7a:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>{\n  \"questions\": {\n    \"team\": {\n      \"type\": \"choice\",\n      \"instructions\": \"Which team should handle this ticket?\",\n      \"criteria\": {\n        \"billing\": \"Payments and refunds\",\n        \"technical\": \"Bugs and integrations\",\n        \"other\": \"None of the above\"\n      }\n    }\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p><b>pontua\u00e7\u00e3o<\/b> &#8211; classifica\u00e7\u00e3o em uma escala. Retorna o n\u00famero, a legenda e as probabilidades de cada ponto da escala:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>{\n  \"questions\": {\n    \"urgency\": {\n      \"type\": \"score\",\n      \"instructions\": \"How urgent is this ticket?\",\n      \"criteria\": [\"Routine\", \"Soon\", \"Urgent\"]\n    }\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p>Uma solicita\u00e7\u00e3o pode conter v\u00e1rias perguntas de diferentes tipos ao mesmo tempo. \u00c9 isto que torna os modelos de decis\u00e3o convenientes para a triagem: uma opera\u00e7\u00e3o, um estado, v\u00e1rias decis\u00f5es independentes.<\/p>\n<h2>Python sem bibliotecas adicionais<\/h2>\n<p>Para solicita\u00e7\u00f5es, o urllib padr\u00e3o \u00e9 suficiente; um SDK separado n\u00e3o \u00e9 necess\u00e1rio:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>import json\nfrom urllib.request import Request, urlopen\n\nOLLAMA_DECISION_URL = \"http:\/\/localhost:11434\/v1\/systemone\"\n\ndef ask_decision(state, questions, model=\"tev1:0.8b\"):\n    payload = {\n        \"model\": model,\n        \"state\": state,\n        \"questions\": questions,\n    }\n    request = Request(\n        OLLAMA_DECISION_URL,\n        data=json.dumps(payload).encode(),\n        headers={\"Content-Type\": \"application\/json\"},\n        method=\"POST\",\n    )\n    with urlopen(request, timeout=3600) as response:\n        return json.loads(response.read().decode())[\"answers\"]\n<\/code><\/pre>\n<\/div>\n<p>Uso:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>answers = ask_decision(\n    {\"message\": \"Senior Swift developer, Berlin, remote friendly\"},\n    {\n        \"isJob\": {\n            \"type\": \"noul\",\n            \"instructions\": \"Does the message advertise a job posting that someone can apply to?\"\n        }\n    },\n)\n\nprobability = answers[\"isJob\"][\"noul\"]\nis_job = probability >= 0.5\n<\/code><\/pre>\n<\/div>\n<p>Se voc\u00ea precisar de um SDK oficial do Python, ele ser\u00e1 chamado typesafe-sdk. Para localhost, pode ser direcionado para Ollama com as vari\u00e1veis \u200b\u200bde ambiente TYPESAFE_BASE_URL, TYPESAFE_API_KEY e TYPESAFE_DEFAULT_MODEL. Mas para tarefas simples, uma solicita\u00e7\u00e3o HTTP direta \u00e9 suficiente.<\/p>\n<h2>Como entender que um modelo apoia a decis\u00e3o<\/h2>\n<p>Os modelos de decis\u00e3o n\u00e3o podem responder via \/api\/generate ou \/api\/chat. Se voc\u00ea enviar tal solicita\u00e7\u00e3o, Ollama retornar\u00e1 um erro 400 com um texto como:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>\"tev1:0.8b\" does not support generate\n<\/code><\/pre>\n<\/div>\n<p>Isso \u00e9 importante se voc\u00ea j\u00e1 possui c\u00f3digo que funciona com modelos regulares via \/api\/generate: se voc\u00ea alterar o modelo para um modelo de decis\u00e3o, ele ir\u00e1 parar de funcionar. \u00c9 melhor descobrir antecipadamente os recursos do modelo via \/api\/show e escolher o m\u00e9todo de chamada apropriado:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>import json\nfrom urllib.request import Request, urlopen\n\nOLLAMA_SHOW_URL = \"http:\/\/localhost:11434\/api\/show\"\n\ndef supports_decision(model):\n    request = Request(\n        OLLAMA_SHOW_URL,\n        data=json.dumps({\"model\": model}).encode(),\n        headers={\"Content-Type\": \"application\/json\"},\n        method=\"POST\",\n    )\n    try:\n        with urlopen(request, timeout=30) as response:\n            capabilities = json.loads(response.read().decode()).get(\"capabilities\", [])\n    except (OSError, TypeError, ValueError):\n        return False\n    return \"decision\" in capabilities\n<\/code><\/pre>\n<\/div>\n<p>Os modelos de decis\u00e3o ter\u00e3o apenas decis\u00e3o em suas capacidades. Os modelos regulares ter\u00e3o acabamento, ferramentas ou outros recursos. Se Ollama n\u00e3o estiver dispon\u00edvel, \u00e9 razo\u00e1vel considerar o modelo normal e utilizar o caminho generativo.<\/p>\n<h2>Como incorporar em c\u00f3digo existente<\/h2>\n<p>A maneira mais simples n\u00e3o \u00e9 reescrever o classificador, mas sim dividi-lo em duas estrat\u00e9gias. A estrat\u00e9gia generativa funciona como antes: ela coleta o prompt, envia-o para \/api\/generate e analisa o JSON. A estrat\u00e9gia de decis\u00e3o envia o estado e a pergunta digitada para \/v1\/systemone e compara a probabilidade com um limite.<\/p>\n<p>A escolha da estrat\u00e9gia ocorre em um s\u00f3 lugar, ao criar um classificador:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>def create_classifier(model):\n    if supports_decision(model):\n        return DecisionClassifier(model)\n    return GenerativeClassifier(model)\n<\/code><\/pre>\n<\/div>\n<p>Esta abordagem tem v\u00e1rias vantagens. Os modelos generativos continuam a funcionar inalterados. O modelo de decis\u00e3o pode ser ativado alterando uma vari\u00e1vel de ambiente. E toda a diferen\u00e7a entre os dois m\u00e9todos est\u00e1 concentrada em duas pequenas classes, e n\u00e3o est\u00e1 espalhada por toda a aplica\u00e7\u00e3o.<\/p>\n<p>Para uma classifica\u00e7\u00e3o bin\u00e1ria, a estrat\u00e9gia de decis\u00e3o \u00e9 mais ou menos assim:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>async def classify(text):\n    answers = await ask_decision(\n        {\"message\": text},\n        {\n            \"isJob\": {\n                \"type\": \"noul\",\n                \"instructions\": instructions,\n            }\n        },\n        model,\n    )\n    probability = answers[\"isJob\"][\"noul\"]\n    return probability >= 0.5, probability\n<\/code><\/pre>\n<\/div>\n<p>Observe que o modelo de decis\u00e3o n\u00e3o retorna uma explica\u00e7\u00e3o. Se o seu formato de resultado tiver um campo de raz\u00e3o, voc\u00ea poder\u00e1 constru\u00ed-lo a partir da probabilidade: por exemplo, armazene a pr\u00f3pria probabilidade ou uma string como \u201co modelo classificou a mensagem em 0,935 como uma vaga\u201d. Isto \u00e9 mais honesto do que inventar uma raz\u00e3o que o modelo n\u00e3o deu.<\/p>\n<h2>As instru\u00e7\u00f5es devem ser uma pergunta<\/h2>\n<p>Esta \u00e9 a conclus\u00e3o pr\u00e1tica mais importante. Os modelos de decis\u00e3o n\u00e3o entendem prompts longos no estilo \u201cvoc\u00ea classifica as mensagens, responda verdadeiro se&#8230;, falso caso contr\u00e1rio\u201d. Eles querem uma pergunta curta e direta.<\/p>\n<p>Na mesma mensagem sobre uma vaga, recebi as seguintes probabilidades:<\/p>\n<ul>\n<li>Pergunta direta &#8220;Esta mensagem \u00e9 um an\u00fancio de emprego?&#8221; \u2014 0,921.<\/li>\n<li>Instru\u00e7\u00f5es longas explicando o que \u00e9 considerado uma vaga &#8211; 0,026.<\/li>\n<li>Instru\u00e7\u00f5es longas com uma pergunta no final &#8211; 0,391.<\/li>\n<\/ul>\n<p>A diferen\u00e7a \u00e9 de quase trinta vezes. O modelo n\u00e3o se engana na classifica\u00e7\u00e3o, simplesmente n\u00e3o entende o que querem dele quando a quest\u00e3o est\u00e1 escondida dentro de um par\u00e1grafo. Portanto, para modelos de decis\u00e3o vale a pena manter instru\u00e7\u00f5es curtas separadas e deixar prompts longos para modelos generativos.<\/p>\n<p>\u00c9 conveniente criar uma vari\u00e1vel de ambiente separada:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>OLLAMA_JOB_CLASSIFIER_DECISION_INSTRUCTIONS=Does the message advertise a job posting that someone can apply to?\n<\/code><\/pre>\n<\/div>\n<p>E use um prompt regular apenas para o caminho gerador.<\/p>\n<h2>Limite e probabilidades<\/h2>\n<p>O limite de 0,5 \u00e9 adequado como valor padr\u00e3o, mas \u00e9 \u00fatil inclu\u00ed-lo na configura\u00e7\u00e3o. Para tarefas diferentes, o custo de uma resposta falso positiva e falsa negativa \u00e9 diferente. Para modera\u00e7\u00e3o, \u00e9 mais seguro aumentar o limite; para a busca de vagas \u00e9 mais seguro baix\u00e1-la, para n\u00e3o perder mensagens \u00fateis.<\/p>\n<p>Tamb\u00e9m \u00e9 \u00fatil registrar a probabilidade em si, e n\u00e3o apenas o booleano resultante. Quando o classificador comete um erro, o log mostra se foi uma resposta segura ou uma decis\u00e3o na fronteira. Para quest\u00f5es de escolha, vale guardar as probabilidades e a confian\u00e7a: elas mostram o quanto o modelo oscila entre as op\u00e7\u00f5es.<\/p>\n<h2>Desempenho e mem\u00f3ria<\/h2>\n<p>A velocidade depende muito do tamanho do modelo e do hardware. Na CPU em meus testes obtive os seguintes n\u00fameros:<\/p>\n<ul>\n<li><b>tev1:0.8b<\/b> &#8211; fra\u00e7\u00e3o de segundos para resolver, cabe facilmente na mem\u00f3ria.<\/li>\n<li><b>tev1<\/b> &#8211; 4B, visivelmente mais lento, mas ainda adequado para tarefas interativas.<\/li>\n<li><b>\u00e1gil<\/b> &#8211; 9B em Q8_0, cerca de 10 GB de mem\u00f3ria. A primeira solicita\u00e7\u00e3o, incluindo o carregamento do modelo, levou cerca de 137 segundos, as solu\u00e7\u00f5es subsequentes levaram de 12 a 32 segundos na CPU.<\/li>\n<\/ul>\n<p>Nimble requer muita RAM. Em uma m\u00e1quina com 16 GB e Docker\/WSL com limite de cerca de 8 GB, o modelo n\u00e3o cabe: o sistema come\u00e7a a trocar e os containers param de responder. Aumentar o limite WSL para 12 GB por meio do arquivo .wslconfig ajudou:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>[wsl2]\nmemory=12GB\nswap=8GB\n<\/code><\/pre>\n<\/div>\n<p>Ap\u00f3s a altera\u00e7\u00e3o, voc\u00ea precisa de wsl &#8211;shutdown e reinicie o Docker Desktop. Mas mesmo com 12 GB, a reserva continua pequena: o modelo ocupa cerca de 10 GB e n\u00e3o sobra muito para o sistema.<\/p>\n<p>Por padr\u00e3o, o Ollama descarrega o modelo ap\u00f3s cinco minutos de inatividade, liberando mem\u00f3ria. Isso \u00e9 conveniente: o \u00e1gil n\u00e3o mant\u00e9m 10 GB ocupados o tempo todo, mas cada novo lan\u00e7amento ap\u00f3s uma pausa come\u00e7a a carregar o modelo novamente.<\/p>\n<h2>Quando usar modelos de decis\u00e3o<\/h2>\n<p>Os modelos de decis\u00e3o s\u00e3o adequados para tarefas em que voc\u00ea precisa de uma resposta r\u00e1pida e barata para uma pergunta claramente formulada:<\/p>\n<ul>\n<li>Classifica\u00e7\u00e3o de mensagens, tickets e solicita\u00e7\u00f5es.<\/li>\n<li>Roteamento por comandos ou executores.<\/li>\n<li>Modera\u00e7\u00e3o de conte\u00fado e verifica\u00e7\u00f5es de seguran\u00e7a.<\/li>\n<li>Solu\u00e7\u00f5es bin\u00e1rias e multivariadas r\u00e1pidas em jogos ou aplicativos interativos.<\/li>\n<\/ul>\n<p>Eles s\u00e3o pouco adequados para tarefas onde \u00e9 necess\u00e1rio texto detalhado: explica\u00e7\u00e3o, extra\u00e7\u00e3o de campos, resumo, gera\u00e7\u00e3o de respostas. Para este efeito, permanecem os modelos generativos habituais. O melhor resultado \u00e9 obtido quando combinados: um modelo de decis\u00e3o toma uma decis\u00e3o e um modelo generativo a explica ou extrai dados.<\/p>\n<h2>Total<\/h2>\n<p>Os modelos de decis\u00e3o no Ollama s\u00e3o uma ferramenta separada e mais restrita do que os LLMs regulares. Eles n\u00e3o substituem os modelos generativos, mas eliminam a parte rotineira do trabalho: respostas digitadas, probabilidades em vez de an\u00e1lise de texto e um formato previs\u00edvel. Se voc\u00ea j\u00e1 possui um pipeline de classifica\u00e7\u00e3o, a transi\u00e7\u00e3o se resume \u00e0 verifica\u00e7\u00e3o dos recursos do modelo, uma estrat\u00e9gia de chamada separada e perguntas instrucionais curtas.<\/p>\n<p>Fontes<br \/>\n<a href=\"https:\/\/ollama.com\/blog\/ollama-now-supports-jev-style-decision-models\" rel=\"noopener\" target=\"_blank\">https:\/\/ollama.com\/blog\/ollama-now-supports-jev-style-decision-models<\/a><br \/>\n<a href=\"https:\/\/ollama.com\/library\/nimble\" rel=\"noopener\" target=\"_blank\">https:\/\/ollama.com\/library\/nimble<\/a><br \/>\n<a href=\"https:\/\/ollama.com\/library\/tev1\" rel=\"noopener\" target=\"_blank\">https:\/\/ollama.com\/library\/tev1<\/a><br \/>\n<a href=\"https:\/\/typesafe.ai\" rel=\"noopener\" target=\"_blank\">https:\/\/typesafe.ai<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A partir da vers\u00e3o 0.35, Ollama suporta modelos de decis\u00e3o constru\u00eddos na API Jev do TypeSafe. Estes n\u00e3o s\u00e3o modelos de chat no sentido usual: eles n\u00e3o escrevem texto, mas respondem a um conjunto de perguntas digitadas sobre o estado transferido. Para classifica\u00e7\u00e3o, roteamento, modera\u00e7\u00e3o e triagem, isso acaba sendo mais r\u00e1pido e confi\u00e1vel do [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-200","post","type-post","status-publish","format-standard","hentry","category-notes"],"translation":{"provider":"WPGlobus","version":"3.0.6","language":"pt","enabled_languages":["en","ru","zh","de","ja","fr","es","pt","hi"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"es":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false},"hi":{"title":true,"content":true,"excerpt":false}}},"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=200"}],"version-history":[{"count":0,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/200\/revisions"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}