Caso 05 · App móvil con IA conversacional

Un tutor de inglés con IA que recuerda quién eres

Open Fluent es una app para practicar inglés hablando con un tutor de IA. Recuerda lo que le cuentas y los errores que repites, pero solo guarda lo que tú apruebas. Está en beta privada, por invitación.

Flutter · NestJS · voz en el teléfono · varios modelos de IA
2
capas de memoria del tutor
852
pruebas automáticas en el servidor

El problema del cliente

Para soltarse en inglés hay que hablar todos los días, y las apps conocidas enseñan vocabulario pero no conversan. Los tutores de IA genéricos sí conversan, pero se olvidan de todo al cerrar la sesión: no saben qué te pasó ayer ni que siempre te equivocas con el mismo tiempo verbal.

Open Fluent es para un grupo cerrado de amigos que hablan español o portugués: dos sesiones de 10 minutos al día con un tutor que los recuerda, más rachas y un ranking para mantener la constancia. La regla del proyecto fue gastar lo mínimo posible en IA.

Arquitectura

  1. Hablar. La app reconoce la voz y lee las respuestas en voz alta con el motor del propio teléfono. Así la parte más usada no cuesta nada.
  2. Responder. El servidor manda la conversación a un modelo de IA y recibe la respuesta junto con las correcciones. Hay dos planes: el gratuito usa una cadena de cuatro modelos gratuitos y, si uno falla, pasa al siguiente; el pago usa modelos más rápidos.
  3. Recordar. Al terminar cada sesión, una sola llamada a la IA genera dos cosas. Una lista de datos personales con fecha (“tiene una entrevista el viernes”), que quedan pendientes hasta que el usuario los confirma o los descarta. Y una nota corta para el tutor con los errores que más se repiten, que el usuario puede editar o borrar. Solo lo confirmado entra en la próxima conversación.

Para elegir modelos definimos un criterio de admisión: 20 turnos de prueba con errores sembrados, y un modelo entra solo si devuelve respuestas bien formadas el 95 % de las veces y tarda menos de 8 segundos en el 90 % de los casos. Por ahora los modelos actuales se eligieron con mediciones manuales; el examen automático todavía no se ejecutó.

La decisión difícil y por qué

De “trae tu propia clave” a planes propios. Al principio cada usuario conectaba su propia cuenta de IA, así el proyecto no pagaba nada. En la práctica, ese paso espantaba a casi todos antes de la primera conversación. Lo reemplazamos por un enrutador propio de modelos con un plan gratuito y uno pago. Descartamos mantener las dos opciones porque duplicaba el trabajo sin resolver la fricción.

Respuestas flexibles en vez de formato estricto. Pedirle a la IA un formato rígido garantiza respuestas limpias, pero los modelos gratuitos rechazan ese modo. Elegimos un formato más flexible y una reparación automática de las respuestas mal armadas.

Sin reintentos automáticos. Sumar los reintentos de la librería a los del enrutador dejaba al usuario más de un minuto en silencio. En una conversación por voz es preferible fallar rápido y pasar al siguiente modelo.

Qué se rompió en el camino

  • El tutor no recordaba nada. Había cero recuerdos guardados en toda la base. Si a un solo dato le faltaba la fecha, se descartaba la memoria completa de la sesión. Ahora se descarta solo el dato inválido.
  • En iPhone, la app se cerraba al pedir el micrófono y, una vez resuelto eso, decía que no había reconocimiento de voz. El código buscaba el idioma escrito “en_US” y el iPhone lo llama “en-US”.
  • El tutor hablaba en silencio en iPhone, porque el reconocimiento de voz dejaba el audio del teléfono en un modo que no reproduce sonido.
  • Apple y Google rechazaron la app en la primera revisión: Google porque el botón de inicio de sesión no respondía, y los dos porque faltaba una cuenta de prueba para los revisores.

Resultado

  • La app funciona en Android e iOS y está en beta privada, por invitación. La publicación en las tiendas está en revisión.
  • Tiene 852 pruebas automáticas en el servidor y 52 en la app.
  • La memoria en dos capas funciona y el usuario decide qué se recuerda de él.