19 puntos por letaem77a 2025-04-14 | 8 comentarios | Compartir por WhatsApp

> "En este artículo se comprobará qué tan precisamente puede responder un LLM preguntas relacionadas con una base de código cuando se comprime una base de código TypeScript con muchos archivos en un solo archivo JavaScript mediante bundling y luego se le entrega al LLM."

  • Preparación de una base de código de servidor web basada en NestJS
  • Compresión de código (bundling) con esbuild
  • El código comprimido se inserta en el prompt
  • Envío del prompt a ChatGPT o3-mini
  • Verificación de qué tan exactamente responde a preguntas relacionadas con la base de código
  1. Prueba de generación de Swagger: en la mayoría de los intentos, logró documentar correctamente 19 o más de los 21 endpoints
  2. Prueba de solicitud de explicación sobre endpoints de API: generó con éxito manuales para no desarrolladores y desarrolladores
  • Existen limitaciones
  • Conclusión
    > "Para hacer RAG de toda la base de código con un LLM, se diseñó una prueba en la que toda la base de código se comprime en un solo archivo y se entrega al LLM.
    >
    > Al comprimir la base de código usando herramientas de bundling existentes tal como están, el LLM pudo llevar a cabo la documentación de API de toda la base de código o redactar manuales detallados sobre APIs específicas.
    >
    > Se prevé que la pérdida de información que ocurre durante la compresión de la base de código pueda complementarse mediante búsqueda semántica adicional sobre los archivos originales."

8 comentarios

 
mendong 2025-04-14

¿Se puede considerar RAG consultar a un LLM poniendo en el prompt un archivo empaquetado o adjuntándolo a la aplicación? Tengo curiosidad por saber qué parte corresponde a la recuperación.

 
labeldock 2025-04-14

Yo también pienso algo parecido.

 
bejunth 2025-04-14

¿No sería que el LLM hace retrieval basándose en el archivo empaquetado y luego trae el código original?

 
winterjung 2025-04-14

Interesante. Parece que incluso con JS minificado lo entiende bastante bien hasta cierto punto. También estaría bien aprovechar herramientas como las presentadas en https://es.news.hada.io/topic?id=19552 o https://es.news.hada.io/topic?id=19540 para proporcionar la estructura de directorios como contexto adicional.

 
apkas 2025-04-14

Como últimamente uso muchísimo los llm para programar, siempre me preocupa cómo transmitir información de forma eficiente, así que gracias por este experimento tan interesante.

También hubo intentos en el extranjero de extraer la sintaxis del codebase como un grafo y consultarla,
y el bundling parece un método más fácil de aplicar de manera general. (si el lenguaje soporta bundling)
https://x.com/daniel_mac8/status/1908332949251948808

Pero como últimamente Gemini está rindiendo demasiado bien, creo que sería aún más interesante si lo comparan con o3.

 
unqocn 2025-04-14

Lo leí con interés. Poder extraer la lógica de negocio hasta este nivel a partir del código fuente empaquetado... parece que también podría reducir de forma drástica el costo de hacer ingeniería inversa de aplicaciones web escritas como SPA.

 
xguru 2025-04-14

Uh, quise leerlo, pero el blog ahorita está dando un error 500.

 
letaem77a 2025-04-14

Parece que mi blog está inestable. Si no pueden acceder, pueden leer el contenido en este gist.github.com.