{"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\/es\/2026\/11\/01\/ollama-jev-decision-models\/","title":{"rendered":"Modelos de soluci\u00f3n Jev en Ollama: uso pr\u00e1ctico \/v1\/systemone"},"content":{"rendered":"<p>A partir de la versi\u00f3n 0.35, Ollama admite modelos de decisi\u00f3n creados en la API Jev de TypeSafe. Estos no son modelos de chat en el sentido habitual: no escriben texto, sino que responden a una serie de preguntas escritas sobre el estado transferido. Para clasificaci\u00f3n, enrutamiento, moderaci\u00f3n y clasificaci\u00f3n, esto resulta ser m\u00e1s r\u00e1pido y confiable que pedirle a un LLM normal que devuelva JSON y luego analice su respuesta.<\/p>\n<p>En esta publicaci\u00f3n, veremos qu\u00e9 son los modelos de decisi\u00f3n, c\u00f3mo funcionan a nivel HTTP, qu\u00e9 modelos ya est\u00e1n disponibles y c\u00f3mo integrarlos en el c\u00f3digo existente para que los modelos generativos regulares sigan funcionando.<\/p>\n<h2>\u00bfEn qu\u00e9 se diferencian los modelos de decisi\u00f3n de los habituales?<\/h2>\n<p>Un LLM normal recibe un mensaje y genera texto token por token. Incluso si le pides que responda en una palabra, la generaci\u00f3n todav\u00eda ocurre en el interior y el formato de la respuesta debe controlarse mediante un diagrama, instrucciones y verificaci\u00f3n posterior. El modelo de decisi\u00f3n funciona de manera diferente: pasa estados y preguntas con tipos, y el modelo devuelve probabilidades y opciones seleccionadas. Sin texto libre, sin an\u00e1lisis JSON de la respuesta.<\/p>\n<p>El nuevo punto final se llama \/v1\/systemone. En una solicitud, puede hacer varias preguntas a la vez y el modelo las responder\u00e1 todas. Esto es conveniente para tareas en las que es necesario tomar varias decisiones relacionadas: por ejemplo, determinar el equipo, la necesidad de devoluci\u00f3n y la urgencia del billete.<\/p>\n<h2>Qu\u00e9 modelos est\u00e1n disponibles<\/h2>\n<p>Ahora puedes ejecutar tres modelos de decisi\u00f3n a trav\u00e9s de Ollama:<\/p>\n<ul>\n<li><b>nimble<\/b> es un modelo abierto con 9 mil millones de par\u00e1metros de Bespoke Labs. Es el m\u00e1s grande y preciso disponible.<\/li>\n<li><b>tev1<\/b> es un modelo experimental con 4 mil millones de par\u00e1metros de Together AI.<\/li>\n<li><b>tev1:0.8b<\/b> es un modelo experimental con 800 millones de par\u00e1metros de Together AI. El m\u00e1s r\u00e1pido y sencillo.<\/li>\n<\/ul>\n<p>Todos funcionan localmente, no requieren pago y no env\u00edan datos a un servicio externo. Se admiten Ollama 0.35 y posteriores.<\/p>\n<h2>Instalaci\u00f3n<\/h2>\n<p>Primero revisa la versi\u00f3n de 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>Luego descargue el modelo deseado. Para el m\u00e1s 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 la versi\u00f3n completa de 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>El modelo \u00e1gil ocupa alrededor de 9,5 GB de espacio en disco, por lo que es una buena idea liberar algo de espacio antes de descargar. tev1:0.8b ocupa menos de un gigabyte.<\/p>\n<h2>Primera solicitud mediante curl<\/h2>\n<p>El ejemplo m\u00e1s sencillo es determinar si un texto es un anuncio de empleo:<\/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>La respuesta se ve as\u00ed:<\/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>El campo noul es una probabilidad de 0 a 1. La decisi\u00f3n se toma en comparaci\u00f3n con un umbral, normalmente 0,5. A diferencia del modelo generativo, no es necesario pedir una respuesta en formato JSON y luego comprobar que el modelo no la ha roto.<\/p>\n<h2>Tipos de preguntas<\/h2>\n<p>Los modelos de decisi\u00f3n admiten tres tipos de preguntas.<\/p>\n<p><b>noul<\/b> es una pregunta binaria. Devuelve la probabilidad de que una afirmaci\u00f3n sea verdadera:<\/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>elecci\u00f3n<\/b>: seleccionar una opci\u00f3n de un conjunto determinado. Devuelve la opci\u00f3n seleccionada, las probabilidades de todas las opciones y la confianza:<\/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>puntuaci\u00f3n<\/b>: calificaci\u00f3n en una escala. Devuelve el n\u00famero, la leyenda y las probabilidades de cada punto de 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>Una solicitud puede contener varias preguntas de diferentes tipos a la vez. Esto es lo que hace que los modelos de decisi\u00f3n sean convenientes para la clasificaci\u00f3n: una operaci\u00f3n, un estado, varias decisiones independientes.<\/p>\n<h2>Python sin bibliotecas adicionales<\/h2>\n<p>Para solicitudes, la urllib est\u00e1ndar es suficiente; no se requiere un SDK separado:<\/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>Si necesita un SDK oficial de Python, se llama typesafe-sdk. Para localhost, se puede dirigir a Ollama con las variables de entorno TYPESAFE_BASE_URL, TYPESAFE_API_KEY y TYPESAFE_DEFAULT_MODEL. Pero para tareas sencillas, una solicitud HTTP directa es suficiente.<\/p>\n<h2>C\u00f3mo entender que un modelo apoya la decisi\u00f3n<\/h2>\n<p>Los modelos de decisi\u00f3n no pueden responder a trav\u00e9s de \/api\/generate o \/api\/chat. Si env\u00eda dicha solicitud, Ollama devolver\u00e1 un error 400 con un 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>Esto es importante si ya tiene c\u00f3digo que funciona con modelos normales a trav\u00e9s de \/api\/generate: si cambia el modelo a un modelo de decisi\u00f3n, dejar\u00e1 de funcionar. Es mejor conocer las capacidades del modelo de antemano a trav\u00e9s de \/api\/show y elegir el m\u00e9todo de llamada apropiado:<\/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>Los modelos de decisi\u00f3n s\u00f3lo tendr\u00e1n decisi\u00f3n en sus capacidades. Los modelos normales tendr\u00e1n terminaciones, herramientas u otras caracter\u00edsticas all\u00ed. Si Ollama no est\u00e1 disponible, es razonable considerar el modelo normal y utilizar la ruta generativa.<\/p>\n<h2>C\u00f3mo incrustar en c\u00f3digo existente<\/h2>\n<p>La forma m\u00e1s sencilla no es reescribir el clasificador, sino dividirlo en dos estrategias. La estrategia generativa funciona como antes: recopila el mensaje, lo env\u00eda a \/api\/generate y analiza el JSON. La estrategia de decisi\u00f3n env\u00eda el estado y la pregunta escrita a \/v1\/systemone y compara la probabilidad con un umbral.<\/p>\n<p>La elecci\u00f3n de la estrategia ocurre en un solo lugar, al crear un clasificador:<\/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>Este enfoque tiene varias ventajas. Los modelos generativos contin\u00faan funcionando sin cambios. El modelo de decisi\u00f3n se puede habilitar cambiando una variable de entorno. Y toda la diferencia entre los dos m\u00e9todos se concentra en dos clases peque\u00f1as y no se distribuye por toda la aplicaci\u00f3n.<\/p>\n<p>Para una clasificaci\u00f3n binaria, la estrategia de decisi\u00f3n se parece a esto:<\/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>Tenga en cuenta que el modelo de decisi\u00f3n no devuelve una explicaci\u00f3n. Si su formato de resultado tiene un campo de motivo, puede construirlo a partir de la probabilidad: por ejemplo, almacene la probabilidad misma o una cadena como &#8220;el modelo calific\u00f3 el mensaje en 0,935 como una vacante&#8221;. Esto es m\u00e1s honesto que inventar una raz\u00f3n que el modelo no dio.<\/p>\n<h2>Las instrucciones deben ser una pregunta<\/h2>\n<p>\u00c9sta es la conclusi\u00f3n pr\u00e1ctica m\u00e1s importante. Los modelos de decisi\u00f3n no entienden indicaciones largas del estilo de \u201custed clasifica los mensajes, responda verdadero si&#8230;, falso en caso contrario\u201d. Quieren una pregunta breve y directa.<\/p>\n<p>En el mismo mensaje sobre una vacante, recib\u00ed las siguientes probabilidades:<\/p>\n<ul>\n<li>Pregunta directa &#8220;\u00bfEste mensaje es una oferta de trabajo?&#8221; \u2014 0,921.<\/li>\n<li>Instrucciones largas que explican lo que se considera una vacante: 0,026.<\/li>\n<li>Instrucciones largas con una pregunta al final: 0,391.<\/li>\n<\/ul>\n<p>La diferencia es casi treinta veces. El modelo no se equivoca en la clasificaci\u00f3n, simplemente no entiende lo que quieren de \u00e9l cuando la pregunta est\u00e1 escondida dentro de un p\u00e1rrafo. Por lo tanto, para los modelos de decisi\u00f3n vale la pena mantener instrucciones breves separadas y dejar indicaciones largas para los modelos generativos.<\/p>\n<p>Es conveniente crear una variable de entorno 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>Y utilice un mensaje normal s\u00f3lo para la ruta generativa.<\/p>\n<h2>Umbral y probabilidades<\/h2>\n<p>El umbral de 0,5 es adecuado como valor predeterminado, pero es \u00fatil incluirlo en la configuraci\u00f3n. Para diferentes tareas, el costo de una respuesta falsa positiva y falsa negativa es diferente. Por moderaci\u00f3n, es m\u00e1s seguro elevar el umbral; para buscar vacantes, es m\u00e1s seguro bajarlo para no perderse mensajes \u00fatiles.<\/p>\n<p>Tambi\u00e9n es \u00fatil registrar la probabilidad en s\u00ed, y no s\u00f3lo el valor booleano resultante. Cuando el clasificador comete un error, el registro muestra si fue una respuesta segura o una decisi\u00f3n en el l\u00edmite. Para las preguntas de elecci\u00f3n, vale la pena guardar las probabilidades y la confianza: muestran cu\u00e1nto fluct\u00faa el modelo entre opciones.<\/p>\n<h2>Rendimiento y memoria<\/h2>\n<p>La velocidad depende en gran medida del tama\u00f1o del modelo y del hardware. En la CPU en mis pruebas obtuve los siguientes n\u00fameros:<\/p>\n<ul>\n<li><b>tev1:0.8b<\/b>: fracciones de segundo para resolver, cabe f\u00e1cilmente en la memoria.<\/li>\n<li><b>tev1<\/b> &#8211; 4B, notablemente m\u00e1s lento, pero a\u00fan adecuado para tareas interactivas.<\/li>\n<li><b>\u00e1gil<\/b>: 9B en Q8_0, aproximadamente 10 GB de memoria. La primera solicitud, incluida la carga del modelo, tard\u00f3 unos 137 segundos, las soluciones posteriores tardaron entre 12 y 32 segundos en la CPU.<\/li>\n<\/ul>\n<p>Nimble requiere mucha RAM. En una m\u00e1quina con 16 GB y Docker\/WSL con un l\u00edmite de unos 8 GB, el modelo no encaja: el sistema comienza a intercambiar y los contenedores dejan de responder. Aumentar el l\u00edmite de WSL a 12 GB a trav\u00e9s del archivo .wslconfig ayud\u00f3:<\/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>Despu\u00e9s del cambio, necesita wsl &#8211;shutdown y reinicie Docker Desktop. Pero incluso con 12 GB, la reserva sigue siendo peque\u00f1a: el modelo ocupa unos 10 GB y no queda mucho para el sistema.<\/p>\n<p>De forma predeterminada, Ollama descarga el modelo despu\u00e9s de cinco minutos de inactividad, liberando memoria. Esto es conveniente: \u00e1gil no mantiene ocupados 10 GB todo el tiempo, pero cada nuevo lanzamiento, despu\u00e9s de una pausa, comienza a cargar el modelo nuevamente.<\/p>\n<h2>Cu\u00e1ndo utilizar modelos de decisi\u00f3n<\/h2>\n<p>Los modelos de decisi\u00f3n son muy adecuados para tareas en las que se necesita una respuesta r\u00e1pida y econ\u00f3mica a una pregunta claramente formulada:<\/p>\n<ul>\n<li>Clasificaci\u00f3n de mensajes, tickets y solicitudes.<\/li>\n<li>Enrutamiento por comandos o ejecutores.<\/li>\n<li>Moderaci\u00f3n de contenido y controles de seguridad.<\/li>\n<li>Soluciones binarias y multivariadas r\u00e1pidas en juegos o aplicaciones interactivas.<\/li>\n<\/ul>\n<p>No son adecuados para tareas en las que se necesita texto detallado: explicaci\u00f3n, extracci\u00f3n de campos, resumen, generaci\u00f3n de respuestas. Para ello se mantienen los modelos generativos habituales. El mejor resultado se obtiene cuando se combinan: un modelo de decisi\u00f3n toma una decisi\u00f3n y un modelo generativo la explica o extrae datos.<\/p>\n<h2>Total<\/h2>\n<p>Los modelos de decisi\u00f3n en Ollama son una herramienta separada y m\u00e1s limitada que los LLM normales. No reemplazan a los modelos generativos, pero eliminan la parte rutinaria del trabajo: respuestas escritas, probabilidades en lugar de an\u00e1lisis de texto y un formato predecible. Si ya tiene un canal de clasificaci\u00f3n, la transici\u00f3n se reduce a verificar las capacidades del modelo, una estrategia de llamadas separada y preguntas breves de instrucci\u00f3n.<\/p>\n<p>Fuentes<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 de la versi\u00f3n 0.35, Ollama admite modelos de decisi\u00f3n creados en la API Jev de TypeSafe. Estos no son modelos de chat en el sentido habitual: no escriben texto, sino que responden a una serie de preguntas escritas sobre el estado transferido. Para clasificaci\u00f3n, enrutamiento, moderaci\u00f3n y clasificaci\u00f3n, esto resulta ser m\u00e1s r\u00e1pido [&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":"es","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\/es\/wp-json\/wp\/v2\/posts\/200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=200"}],"version-history":[{"count":0,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/posts\/200\/revisions"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}