Chunk Translator: dividir textos largos en partes para encargárselos a un LLM
(translate.winterjung.dev)Quería traducir una entrada de blog larga sin omitir ninguna oración, así que hice una pequeña herramienta HTML que divide el texto por párrafos para traducirlo y luego volver a unirlo.
- Cuando le pides a un llm como chatgpt que traduzca todo de una sola vez, a veces se salta oraciones una por una o resume por su cuenta, así que no lo hace bien de una vez.
- Podría intentar pulir más el prompt, pero más que eso quería obtener buenos resultados solo con copiar, pegar y presionar el botón de traducir, así que hice posible cortar textos largos en chunks y ejecutar la traducción en paralelo con modelos pequeños.
- Como opción, al enviar la solicitud a un modelo pequeño se puede adjuntar primero un resumen hecho por un modelo más inteligente para permitir una traducción más consciente del contexto.
- Si hay algo que mejorar en la traducción por chunk, puedes agregar instrucciones y volver a traducir cada chunk de forma individual.
- Como funciona sin servidor aparte y solo con una página HTML estática única, cada usuario necesita configurar su propio provider y API key. Como se puede ver en el inspector de red o en el código fuente, no se envía información sensible a ningún otro lugar aparte de proveedores de API de llm como openai u openrouter. Tampoco le agregué herramientas de analytics.
- Quería ofrecerlo para que pudieran probarlo aunque fuera como demo incluso sin API key, pero todavía estoy pensando cómo podría resolver esa parte.
El código está en el repositorio de GitHub, así que pueden descargarlo y usarlo (index.html se puede usar igual simplemente abriéndolo en el navegador), y son bienvenidas las contribuciones, los reportes de issues, las preguntas y el feedback.
3 comentarios
Justo era lo que necesitaba, gracias. Por ese problema, para subtítulos había algo llamado gui-subtrans que hacía solicitudes línea por línea. Pero para texto plano no se me ocurría ningún servicio adecuado (la página de traducción que ofrece OpenAI está casi rota =m =...), así que estaba en apuros. Está bastante bien..
Para uso personal, hice una app en SwiftUI que usa la Apple Translator API (funciona localmente) y que internamente divide las líneas para solicitar la traducción. Pensé que, si también fuera posible llamar a esa API desde el navegador, quizá estaría bien ofrecer una demo de esa forma. Pero como es una API del dispositivo, supongo que probablemente no se pueda...
Aunque también tiene una página web, parece útil para traducir documentos y otros usos. :)