Yoyak: un CLI simple para resumir páginas web basado en LLM
(github.com/dahlia)Probé dedicar medio día a crear y publicar como app de CLI una herramienta simple para resumir páginas web basada en LLM. Las tecnologías que usé parecen ser Deno, LangChain.js y cheer-reader (un reemplazo de Readability.js).
Para instalarlo, necesitas Deno:
deno install --global --allow-net --allow-env jsr:@hongminhee/yoyak/cli
Antes de usarlo por primera vez, debes configurar el modelo que vas a usar y la API key:
yoyak set-model gemini-2.0-flash-exp # pide la API key por entrada estándar
Después de eso, solo agrega la URL de la página web que quieras resumir detrás del comando yoyak summary.
yoyak summary https://github.com/dahlia/yoyak
Si también quieres traducir, agrega después de la opción -l un código de idioma en formato ISO 639-1 (por ejemplo, coreano → ko):
yoyak summary -l ko https://github.com/dahlia/yoyak
Si solo quieres hacer scraping sin resumir, usa el comando yoyak scrape (la salida es en formato Markdown). Si quieres solo traducir sin resumir, puedes usar la opción -l con el comando yoyak scrape.
Me enfoqué únicamente en las funciones de resumen y traducción, sin extras. Espero que les resulte útil.
10 comentarios
Hola, gracias por crear una función tan buena.
Quisiera procesar un poco la cadena que se obtiene, por ejemplo agregar saltos de línea para mejorar la legibilidad.
¿Habrá alguna forma de hacerlo? (Si la guardo en un archivo o especifico la codificación, el texto se sigue viendo corrupto)
Ah, ya lo resolví. Gracias.
gemini-2.0-pro-exp-02-05
gemini-2.0-flash-thinking-exp-01-21
gemini-2.0-flash-lite-preview-02-05
De verdad, de verdad, cuando tengas tiempo, creo que sería aún mejor agregarlo en la próxima versión.
Lo agregué. Aún no he lanzado la versión 0.2.0, pero si instalas la versión 0.2.0-dev.5+a6daf279, puedes probarla por adelantado.
Excelente. Funciona bien.
Se siente realmente bien tenerlo hecho como CLI.
BUEN TRABAJO 👍
¡Qué genial! 👍🏻
¡Qué útil que permita resumir junto con la traducción! Lo usaré mucho.
¿De casualidad también podrían ofrecer una opción de
endpointpersonalizado para invocar modelos locales o modelos autoalojados?Intentaré agregarlo pronto. ¡Gracias!