{"id":206,"date":"2026-05-08T21:11:00","date_gmt":"2026-05-08T21:11:00","guid":{"rendered":"https:\/\/rfog.es\/?p=206"},"modified":"2026-05-08T21:11:00","modified_gmt":"2026-05-08T21:11:00","slug":"odisea-traductor-ia-bugs-gemini","status":"publish","type":"post","link":"https:\/\/rfog.es\/?p=206","title":{"rendered":"(El bueno) 2021LM &#8211; Sobre la traducci\u00f3n con IA (I)"},"content":{"rendered":"<p><small><em>Este texto ha sido generado por Gemini 2.5\/3.1 a partir del audio del autor. El contenido y las ideas son \u00edntegramente del autor; la redacci\u00f3n ha sido asistida por IA.<\/em><\/small><\/p>\n<hr \/>\n<p>\u00bfQu\u00e9 pasa, gallinicas m\u00edas? Aqu\u00ed vuestro reportero m\u00e1s dicharachero de barrio S\u00e9samo, grabando este audio directamente desde un S24 Ultra. \u00bfLa raz\u00f3n? Pues que a uno se le olvid\u00f3 poner a cargar el iPhone anoche y esta ma\u00f1ana andaba con la bater\u00eda justa para ir a la compra. Ya sab\u00e9is que los viernes no trabajo, as\u00ed que me tocaba a m\u00ed hacer los recados del fin de semana.<\/p>\n<p>La cosa es que tuve que ir dos veces. La primera fui demasiado temprano y, claro, Inconveniente me record\u00f3 que faltaban las tortas para los burritos. As\u00ed que, vuelta al s\u00faper. Y fue justo ah\u00ed, en mitad del segundo viaje, cuando me di cuenta del percal de la bater\u00eda. Menos mal que los iPhone son como son: te dicen que no tienen bater\u00eda, pero con un 1% aguantan medio d\u00eda. Una peque\u00f1a odisea matutina que no era m\u00e1s que el preludio de la odisea tecnol\u00f3gica que os vengo a contar.<\/p>\n<p>Porque, como siempre, primero viene el <em>hype<\/em>, la expectaci\u00f3n, y luego llega el t\u00edo de la rebaja. Hoy os voy a hablar de una aplicaci\u00f3n de traducci\u00f3n que, sinceramente, tiene m\u00e1s pegas que un colegio en septiembre. Pero antes, un peque\u00f1o inciso.<\/p>\n<h2>Par\u00e9ntesis Kafkiano: Una Charla con Gemini<\/h2>\n<p>Pr\u00f3ximamente vais a ver un par de \u00abpataticas\u00bb (mis peque\u00f1os experimentos sonoros) muy estramb\u00f3ticos, creados con Notebook LM de Google. Resulta que el otro d\u00eda, mientras esperaba una llamada, me li\u00e9 en una conversaci\u00f3n surrealista con Gemini. Empec\u00e9 preguntando por la constante de la gravitaci\u00f3n universal y terminamos debatiendo sobre el sentido de la vida. Una locura.<\/p>\n<p>Publicar\u00e9 la conversaci\u00f3n completa en mi blog, rfog.es, para que ve\u00e1is lo kafkiano que puede llegar a ser un LLM cuando est\u00e1 de dulce. Y que conste, para los que se quejan, que a m\u00ed Gemini me est\u00e1 funcionando de cojones, tanto en lo personal como en el trabajo. Sin ir m\u00e1s lejos, el otro d\u00eda me salv\u00f3 el culo con una API REST. Estaba convencido de que el fallo era del servidor, pero Gemini me gener\u00f3 un script <code>curl<\/code> y encontr\u00f3 el problema en mi c\u00f3digo: un valor que, seg\u00fan la documentaci\u00f3n, ten\u00eda que ser &#8216;1&#8217; aleatoriamente. \u00a1Toma ya!<\/p>\n<h2>La Herramienta de Traducci\u00f3n: Un Pozo de Problemas<\/h2>\n<p>Volvamos al l\u00edo. El programa de traducci\u00f3n del que os hablaba es un desastre. Para empezar, se queda colgado sin motivo aparente. Simplemente se para, sin errores en el log ni nada. Sospecho que se queda esperando una respuesta del LLM local que nunca llega, y la \u00fanica soluci\u00f3n es matar el proceso del navegador y todas las consolas abiertas. Un simple reinicio no basta, hay que aniquilarlo todo.<\/p>\n<p>Pens\u00e9 que podr\u00eda ser culpa de mi LLM local. Aunque uso un modelo potente de 7 u 8 billones de par\u00e1metros, a veces falla diciendo que los <em>placeholders<\/em> no funcionan bien y que necesitar\u00eda un modelo superior. Prob\u00e9 con uno de 109 billones de par\u00e1metros y&#8230; el mismo fallo. El problema no es el modelo; es el software que no recoge bien la respuesta, porque yo veo en la consola de LM Studio que la respuesta se ha generado. Un bug de esos que los barbudos dejan para el final por lo complicados que son.<\/p>\n<h2>Plan B: \u00bfY si Pagamos por la API de Gemini?<\/h2>\n<p>Cansado del LLM local, decid\u00ed probar con la API de Google. Me gener\u00e9 un token y a correr. El primer modelo de Gemini que prob\u00e9 estaba obsoleto. \u00bfMe avis\u00f3 el programa? No. Tuve que descubrirlo yo mirando la consola despu\u00e9s de media hora. El segundo modelo que eleg\u00ed, m\u00e1s moderno, daba otro error cr\u00edptico en un campo que imped\u00eda su uso. De nuevo, cero feedback en la interfaz.<\/p>\n<p>Finalmente, con Gemini 1.5 Lite, la cosa empez\u00f3 a funcionar. \u00a1Aleluya! Pero la alegr\u00eda dur\u00f3 dos minutos. La API empez\u00f3 a devolver mensajes de \u00abestoy muy ocupado, prueba en otro momento\u00bb. \u00a1Pero si estoy pagando tokens, co\u00f1o! Me da igual que tardes m\u00e1s o menos, \u00a1estoy gastando dinero! \u00bfEncima de que pago, no funciona? Venga, hombre, no me toques los cojones.<\/p>\n<h2>Victoria P\u00edrrica y Fallos Inexcusables<\/h2>\n<p>Tras un sinf\u00edn de arranques, paradas y \u00abmataciones\u00bb de procesos, consegu\u00ed traducir una revista de ciencia ficci\u00f3n de 200 p\u00e1ginas (lo que equivale a un libro de 400). El coste fue rid\u00edculo, unos 50 c\u00e9ntimos. Pero el proceso fue un infierno. El programa no reintenta bien los fallos y, para colmo, no hace algo tan b\u00e1sico como cambiar la etiqueta de idioma en los archivos XHTML de &#8216;en&#8217; a &#8216;es&#8217;, lo que rompe la separaci\u00f3n de s\u00edlabas y otras funciones en los lectores de eBooks.<\/p>\n<p>Podr\u00eda forquear el proyecto, que es Python, y arreglarlo. \u00bfGanas? Pocas, o ninguna. Si tengo que hacerlo, me monto yo mi propia herramienta en C# y me aseguro de gestionar bien los errores. Como dice mi jefe, el 80% del desarrollo lo haces enseguida. Del 20% restante, el 10% cuesta bastante, el 5% cuesta mucho, y el \u00faltimo 5% es ese grano en el culo que no te deja sentarte durante semanas. Este programa se qued\u00f3 en el 80%.<\/p>\n<p>Sinceramente, \u00bfqu\u00e9 se puede esperar de Python? Esta mierda y esta basura. Tienes que estar encima constantemente. Y para eso, pues ya me dir\u00e9is. En fin, no olvid\u00e9is esos hechos habitualizaros y recordad los \u00abpataticas\u00bb kafkianos que se vienen.<\/p>\n<p>\u00a1Que no os la pique un pollo belga! Ademonio.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cr\u00f3nica de mis problemas al usar un software de traducci\u00f3n con IA. Desde fallos con LLMs locales hasta errores con la API de Gemini. Una historia de bugs.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[91,45,24,93,109],"class_list":["post-206","post","type-post","status-publish","format-standard","hentry","category-podcastexto","tag-desarrollo-de-software","tag-gemini-api","tag-inteligencia-artificial","tag-llm-local","tag-traduccion-automatica"],"_links":{"self":[{"href":"https:\/\/rfog.es\/index.php?rest_route=\/wp\/v2\/posts\/206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rfog.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rfog.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rfog.es\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/rfog.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=206"}],"version-history":[{"count":1,"href":"https:\/\/rfog.es\/index.php?rest_route=\/wp\/v2\/posts\/206\/revisions"}],"predecessor-version":[{"id":207,"href":"https:\/\/rfog.es\/index.php?rest_route=\/wp\/v2\/posts\/206\/revisions\/207"}],"wp:attachment":[{"href":"https:\/\/rfog.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rfog.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rfog.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}