Ir al contenido

Odoo 19: traducción con IA y verificación cruzada – módulo ai_translation_consensus, en el que varias IA se controlan entre sí

3 de noviembre de 2026 | Odoo 19 Community | Desarrollo propio
3 de noviembre de 2026 por
Odoo 19: traducción con IA y verificación cruzada – módulo ai_translation_consensus, en el que varias IA se controlan entre sí

Módulo ai_translation_consensus para Odoo 19: varias IA traducen, se evalúan de forma anónima y una persona da la aprobación

Traducir un sitio web a diez, veinte o cuarenta idiomas es rápido con una sola IA. Más difícil es saber si se puede confiar en el resultado. Un único modelo de lenguaje se inventa de vez en cuando palabras, traduce nombres de productos o altera una cifra, y no se da cuenta. Por eso hemos escrito para Odoo 19 un módulo en el que varias IA y servicios de traducción trabajan sobre el mismo texto, se evalúan mutuamente y de forma anónima sus resultados y se ponen de acuerdo en la formulación que suena a la vez precisa y natural. Lo que no es inequívoco lo decide una persona.

El módulo se llama ai_translation_consensus y está disponible en GitHub como software libre bajo la licencia AGPL-3:

github.com/Alex0176/odoo-ai-translation-consensus

La idea: verificación cruzada en lugar de confianza

El módulo puede hacer dos cosas:

  • Traducir: completar las traducciones que faltan (u obsoletas) de cualquier campo traducible de Odoo, es decir, artículos de blog, páginas web, menús, productos y todo lo demás que Odoo almacena en varios idiomas. Las IA ven aquí no solo la frase aislada, sino los bloques vecinos y un extracto de toda la página. Así las palabras sueltas se entienden en su contexto correcto.
  • Corregir textos: revisar el texto en su propio idioma y proponer mejores formulaciones o correcciones. El original es siempre uno de los candidatos. Si gana el original, no se cambia nada.

El núcleo es la revisión mutua. Toda IA es buena juzgando textos ajenos, aunque ella misma se equivoque de vez en cuando. El módulo aprovecha esto: varios proveedores escriben una versión cada uno y, después, esos mismos proveedores evalúan todas las versiones sin saber de quién proceden. Un proveedor no evalúa su propia versión.

Así surge una propuesta

Proceso: traducir, revisar, evaluar, ponerse de acuerdo, aprobación por personas

  1. Traducir. Cada traductor escribe una versión en paralelo.
  2. Comprobaciones fijas. Sin IA se controla que las etiquetas HTML, las entidades, los marcadores de posición como %s o {}, las cifras y los enlaces se hayan mantenido sin cambios. Una versión que infrinja esto no puede ganar nunca, por muy fluida que suene.
  3. Evaluar. Las demás versiones se mezclan y se anonimizan. Cada revisor otorga a cada una una nota de precisión y otra de naturalidad (de 1 a 10), indica una favorita y puede proponer una mejora.
  4. Ponerse de acuerdo. La clasificación de una versión es 0,5 × nota media + 5 × proporción de votos de favorita. Se considera que hay acuerdo si la mejor versión tiene al menos el 60 % de los votos de favorita y una nota media de al menos 7,0.
  5. Segunda ronda. Sin acuerdo, las mejores versiones, junto con las propuestas de mejora de los revisores, pasan de nuevo a la evaluación.
  6. Persona. Si tampoco entonces queda claro, la propuesta espera una decisión.

Si solo hay servicios de traducción puros sin función de revisión (por ejemplo, DeepL), un resultado solo se considera acordado si al menos dos servicios han entregado exactamente el mismo texto. En la corrección de textos, los resultados deben seguir siendo claramente similares al original (similitud de al menos 0,6, mismas cifras). Los modelos gratuitos pequeños a veces responden a un lote con textos desplazados o ajenos. Esas respuestas se descartan en lugar de someterse a votación. Un glosario fija los nombres de marca y los términos establecidos.

Proveedores: con y sin clave

Los servicios gratuitos y de pago pueden participar en la misma votación. El módulo incluye ajustes predefinidos para muchos proveedores; todos están desactivados tras la instalación.

TipoTraduceRevisa / corrigeEjemplos
Interfaz compatible con OpenAIsísíOpenAI, Mistral, DeepSeek, xAI, Groq, Together, OpenRouter, Cerebras, Qwen, Moonshot, GitHub Models, Hugging Face, Ollama, LM Studio, vLLM, llama.cpp
Compatible con OpenAI sin clavesísíOllama en el propio servidor, Pollinations
AnthropicsísíClaude
Google Gemini, Coheresísí
Comando localsísíclaude -p o cualquier programa que lea de stdin y devuelva la respuesta
Servicios de traducciónsínoDeepL, Google Translate, Azure Translator, LibreTranslate, MyMemory, Lingva

Se introduce la clave (o el nombre de una variable de entorno que la contenga), se pulsa Probar conexión y se activa el proveedor. Los nombres de modelo de los ajustes predefinidos son puntos de partida; quien los utilice debería contrastarlos con la lista actual del proveedor. Con dos o más proveedores hay una verdadera verificación cruzada; con uno solo, nadie revisa su trabajo. El asistente lo advierte.

Un sitio web entero de una vez

Un asistente de inicio (menú Traducción con IA → Empezar aquí) explica los pasos y crea la primera regla. Si el módulo website está instalado, el módulo puente ai_translation_consensus_website se instala automáticamente con él. Añade el alcance «Un sitio web entero con todo lo que contiene»: se elige el sitio web y se dejan proponer los contenidos. El módulo examina todos los modelos con campos traducibles que pertenecen al sitio web (páginas, menús, blogs, productos, eventos, foros, cursos y más) y propone una regla por tipo de contenido, con los idiomas del sitio web como destino.

Asistente de inicio con el alcance sitio web entero y los tipos de contenido propuestos

  • Lo que no está instalado (foros, cursos, galerías) no aparece y se incorporará más adelante, en cuanto esté instalado.
  • Los modelos de tienda solo se proponen si el sitio web tiene una tienda. Solo se recogen los registros publicados.
  • Contactos, empresas, proveedores de pago, tarifas, métodos de envío, programas de fidelización y filtros de snippets, el módulo deliberadamente no los ofrece.
  • Los nombres de dirección de las páginas (seo_name) no se traducen.
  • Los tipos no deseados pueden eliminarse antes de crear las reglas.

Crear y buscar no cuesta nada: la regla solo enumera qué textos necesitan trabajo. Solo al procesar se llama a los proveedores y se generan costes.

Panel, costes e inicio automático

El panel muestra, por regla, cuántos textos están terminados, esperan una confirmación o a una persona, están en cola o han fallado. A ello se suman el desglose por idioma y proveedor, los costes hasta la fecha y los que aún se esperan, el tiempo restante estimado y el interruptor del procesamiento planificado.

Panel con progreso, costes, tokens e idiomas. Datos de ejemplo.

Las cifras de esta ilustración son datos de ejemplo y no dicen nada sobre los costes reales.

  • Los costes se calculan a partir de lo que los proveedores comunican realmente: tokens (OpenAI, Anthropic, Gemini, Cohere) o caracteres (DeepL, Google, Azure). Los tokens se muestran siempre; el dinero, solo si usted ha introducido el precio por millón de tokens (o caracteres) del proveedor. Los ajustes predefinidos no contienen precios, porque estos cambian. Los servicios que no comunican tokens se estiman a partir de la longitud del texto y se marcan como estimación.
  • Previsión: coste medio y tiempo de trabajo por texto multiplicados por el número de textos en cola. Es una estimación que mejora con los primeros lotes.
  • Inicio automático: las reglas con la opción Iniciar por sí solas cuando cambie un registro buscan, en cada ejecución de la acción planificada, solo registros modificados desde la última búsqueda. Con la acción planificada activada, un sitio web editado se vuelve a traducir, por tanto, sin intervención manual.
  • Aviso de finalización: cuando se completa el último texto pendiente de una regla, aparece una sola vez el mensaje «Todos los idiomas traducidos» (en la revisión, «Todos los textos revisados») en el canal AI Translation.

Aprobación por personas

De forma predeterminada, el módulo no escribe nada en sus registros sin su consentimiento. Cada propuesta muestra las versiones, quién las ha redactado, las puntuaciones y los comentarios de los revisores. Puede aceptar la propuesta, elegir otra versión, escribir una formulación propia o rechazarla.

Propuesta con tres candidatos, puntuaciones, votos favoritos y la decisión de una persona. Texto de ejemplo totalmente inventado.

El texto y los nombres de los proveedores de esta imagen son totalmente ficticios y sirven solo para mostrar la vista.

Quien confíe en una regla puede activar Aceptar automáticamente el consenso. Las propuestas sin consenso siguen esperando a una persona. Al aceptar, el módulo vuelve a comprobar si el texto original ha cambiado entretanto, repite las comprobaciones de marcado y escribe sin seguimiento y sin notificar a los seguidores.

Seguridad y protección de datos

  • Tras la instalación, todo está desactivado. Los proveedores y la acción programada están desactivados. Sin su intervención no se envía nada.
  • Los textos salen de su servidor en cuanto interviene un servicio alojado externamente. Una regla puede marcarse como Confidencial; entonces solo ven el texto los proveedores identificados como ejecutados en infraestructura propia.
  • Las claves se guardan en un campo que solo ven los administradores o en una variable de entorno a la que solo remite el nombre. En los mensajes de error se enmascaran y se envían en las cabeceras. Excepción: la clave opcional de MyMemory solo puede pasarse allí como parámetro de consulta.
  • El comando local ejecuta un programa y, por ello, está bloqueado hasta que el parámetro del sistema ai_translation_consensus.allow_command se establece en True. El comando se invoca sin shell y se ejecuta en un directorio temporal vacío.
  • Inyección de prompts: las tareas identifican el texto como datos. Las instrucciones contenidas en el texto traducido no se siguen, y un resultado que infrinja etiquetas o marcadores de posición se descarta.
  • Los servicios gratuitos tienen límites. Pollinations permite de forma anónima una respuesta cada 45 segundos. La opción de proveedor min_interval respeta ese intervalo, y se tienen en cuenta las respuestas del tipo «Inténtelo de nuevo más tarde».

Instalación

git clone https://github.com/Alex0176/odoo-ai-translation-consensus.git
ln -s /pfad/odoo-ai-translation-consensus/ai_translation_consensus /pfad/addons/
ln -s /pfad/odoo-ai-translation-consensus/ai_translation_consensus_website /pfad/addons/
odoo-bin -c odoo.conf -d <datenbank> -i ai_translation_consensus --stop-after-init

Se necesitan Odoo 19 y el paquete de Python requests. Se incluye una traducción al alemán. El módulo puente ai_translation_consensus_website se instala automáticamente si website está presente. Tras la instalación hay que reiniciar el servicio de Odoo, porque el módulo contiene código Python. Quien opere un sistema en producción debe instalar primero el módulo en una copia de la base de datos.

Los primeros pasos: abra el menú Traducción con IA → Proveedores, pruebe y active los servicios, luego pulse Empezar aquí y cree la primera regla. Con Buscar textos se generan las propuestas; con Procesar un lote se llama a los proveedores. Empiece con una regla pequeña, por ejemplo una única entrada de blog y dos idiomas, y revise el resultado y el coste antes de poner en cola un sitio web completo.

Límites

  • La calidad depende de los modelos que active. La revisión cruzada reduce los errores de modelos individuales, pero no ofrece ninguna garantía. Para textos jurídicos o críticos para la seguridad, el módulo no sustituye a un hablante nativo.
  • Los costes crecen rápidamente. Un texto cuesta una llamada por traductor, una llamada de revisión por revisor y, en caso de votación dividida, una segunda ronda. El contexto de la página aumenta la entrada de cada llamada. Una regla con 45 idiomas de destino multiplica el número de textos. Limite las ejecuciones con Registros por búsqueda, Propuestas nuevas por búsqueda y Propuestas por ejecución de cron, e incorpore como revisores modelos económicos o locales.
  • Solo campos con translate=True. El texto con formato se procesa por bloques (el mecanismo de términos de Odoo).
  • Los precios y los nombres de los modelos cambian. Los valores predeterminados no son una lista de precios actualizada.
  • Desarrollado para Odoo 19.0 Community. No se admiten otras versiones.

Preguntas frecuentes

¿Se traduce o se sobrescribe algo sin mi consentimiento?

No, siempre que no active Aceptar automáticamente el consenso. Incluso entonces, solo se escriben las propuestas con consenso. Los proveedores y la acción programada están desactivados tras la instalación.

¿Necesito claves para los proveedores de pago?

Solo para los proveedores que las exigen. Con Pollinations, MyMemory o un modelo que se ejecute en local (por ejemplo, Ollama) no hacen falta. Los servicios gratuitos suelen estar limitados y ser lentos; para un sitio web completo, normalmente solo sirven como complemento.

¿Cuánto cuesta una traducción?

Depende del proveedor, del modelo, de la longitud del texto y del número de idiomas, por lo que el módulo no fija cifras concretas. El panel muestra el consumo y los costes en cuanto haya introducido los precios, y estima el coste restante de los textos en cola.

¿Puedo mantener los textos confidenciales?

Sí, con la opción de regla Confidencial. Entonces trabajan únicamente los proveedores marcados como ejecutados en su propia infraestructura, por ejemplo un Ollama local.

¿Sustituye esto a la traducción propia de Odoo?

No. El módulo utiliza el multilingüismo de Odoo y escribe en las mismas traducciones que de otro modo mantendría a mano.

¿Bajo qué licencia se distribuye?

Bajo la AGPL-3. Los errores y las mejoras son bienvenidos como issue en el repositorio de GitHub .

Asistencia de Biricon IT Services

Nos encargamos de instalaciones de Odoo para pequeñas y medianas empresas: desde la implantación, pasando por adaptaciones y migraciones, hasta la operación diaria. Si gestiona su sitio web de Odoo en varios idiomas, quiere respaldar las traducciones con IA o poner un módulo en su instancia de producción con total seguridad, estaremos encantados de ayudarle. Otros desarrollos propios: Archivar una empresa junto con sus usuarios del portal, Números de documento con prefijo, año y contador y Registro Mercantil y verificación de direcciones para clientes austriacos.

Póngase en contacto ahora

Fecha: 3 de noviembre de 2026. Versión del módulo 19.0.1.0.0. Las imágenes muestran datos de ejemplo inventados.