¿Qué tan difícil sería para los no programadores poder usar el bot de IA de Discourse AI para ayudarles a crear plugins y/o temas?

NOTA: Si esto inicia una discusión paralela, realmente deberá trasladarse a un nuevo tema. Le doy los detalles porque le ayudarán a comprender UNA de mis necesidades y a proporcionar más información que también podría ayudar a otros, así que no se lo tome a mal si le pido que las respuestas relacionadas con esta discusión paralela se trasladen.

Una de mis curiosidades es: ¿Qué tan difícil sería para los no programadores poder usar el bot de IA de Discourse AI para ayudarles a crear plugins y/o temas?

Como he estado usando ChatGPT durante varios meses para ayudarme con lenguajes de codificación como Python, JavaScript, Prolog, Expresiones Regulares, PowerShell, Bash y muchos más, sabía qué esperar, cómo obtener resultados y cuándo simplemente dejarlo.

Al intentar usar el bot de IA de Discourse AI para crear un plugin muy simple, decidí comenzar con uno que sabía que existía, funcionaba y era simple, así que elegí CakeDay.

Después de mirar el código y demás en la página, me sorprendió cuánto tendría que aprender para crearlo. Luego tomé este código Ruby

y le pedí a la IA que lo explicara. Habiendo hecho algo similar con otro código fuente en otros lenguajes, sabía qué esperar. El resultado no fue inspirador; necesité hacer más preguntas para comprender parte de la sintaxis, métodos, interfaz de funciones, etc. Mucho de ello fue fácil de entender para mí (piensa en leer), pero sabía que no podía crear (piensa en escribir) dicho código, y mucho menos saber qué o cómo pedirle al bot de IA que creara dicho código; no conozco la terminología correcta para indicarle a la IA que genere el texto correcto, ya que sé que Ruby-on-Rails usa terminología que no uso en otros lugares, por ejemplo, bake, slug.

Por lo tanto, también quería ver si se podía usar Python en su lugar, ya que es mucho más fácil de entender para muchos y también para que ChatGPT cree código correcto.

1 me gusta

No es Ruby lo que necesitarías aprender, sino Rails.

Esa es una buena curiosidad, pero si lo que quieres es escribir un plugin de Discourse con IA, entonces el plugin de IA no parece ser el lugar para empezar. Yo querría trabajar con una IA diseñada para desarrollar código.

Más que eso, sin embargo, si quieres escribir un plugin de Discourse, elige uno que haga algo similar y modifícalo. Cakeday no parece un plugin especialmente simple, pero si lo que quieres es un plugin que ponga un indicador junto al avatar de un usuario o haga algo programado, entonces podría ser un buen lugar para empezar.

Sin embargo, es bastante complicado e implica todo lo siguiente:

  • añadir datos al serializador de usuario, para que el frontend tenga acceso a ellos
  • ejecutar un trabajo programado
  • crear una ruta que proporcione nueva información (Discourse Meta)
  • usar un outlet de plugin para añadir información a una página

Y eso es solo el principio.

1 me gusta

Esperaba esto, así que pediré que esta conversación paralela se traslade a un nuevo tema.

No iba a detallar todo, pero sí, Rails está en la mezcla junto con otras tecnologías que Discourse utiliza y que uno debería conocer.

¿Te referías específicamente al Discourse AI - AI Bot aquí? Hay muchas IAs y estoy de acuerdo en que muchas no las usaría para programar e incluso algunas que son para programar no son buenas con todos los lenguajes de programación.

La sensación que tengo del personal de Discourse es que, a largo plazo, tener un Discourse AI Bot (un “persona” como lo llaman ahora) es deseable. Pero como ya saben cómo crear código de Discourse, tener a alguien como yo para dar alguna opinión es útil. Es cierto que conozco programación, lo que me da una ventaja, pero estar a medio camino también me da una idea de qué esperar y qué no esperar.

¿Te atreves a sugerir uno más simple?

1 me gusta

En este momento, con las capacidades actuales de IA, sería muy difícil para alguien que no sabe programar crear un plugin/tema de Discourse completo y funcional de complejidad razonable. Y espero que nunca hayamos insinuado que algo así sería posible, ya que sería una experiencia frustrante.

Dicho esto, para alguien con conocimientos de programación de nivel junior, usar un LLM común, uno específico para código o algo como GitHub CoPilot puede facilitar mucho el viaje, encargándose de gran parte del código repetitivo. Combinarlo con un plugin/tema existente y comenzar con pequeños cambios suena como una buena idea para alguien que quiera aprender.

7 Me gusta

La ayuda de Lola para depurar javascript rompió mi instancia de Discourse de desarrollo. La ventana de contexto del token da la impresión de una especie de amnesia anterógrada.

1 me gusta

No, nadie en Discourse insinuó que sería posible, fue una solicitud mía para que el Bot de IA ayudara con la programación de Discourse, ya que utiliza GPT4, que tiene algunos conocimientos de programación; solo quería ver hasta dónde podía llegar. Personalmente, si los complementos y temas fueran más fáciles de crear para mí, los crearía cuando surgiera la necesidad.

¡Estoy totalmente de acuerdo con eso!

3 Me gusta

Sí, es un problema muy complicado.

Meter el mundo entero en unas 6000 palabras que GPT-4 8k puede conocer es un problema muy, muy difícil.

Estoy al límite de aumentar lola para usar 32k tokens aquí, pero los costos son realmente muy altos y quiero estar probando cosas que estén más cerca de lo que usa el público en general.

La solución alternativa/solución actual para este problema es la llamada a funciones, haces que GPT-4 razone sobre la información que necesitará y luego, después de algunos viajes de ida y vuelta, encuentra el contexto correcto. Esto puede implicar búsqueda (ya sea usando embeddings o simplemente búsqueda por palabras clave).

No preveo poder resolver la solución de “No soy programador, hazme un plugin” en el corto plazo.

Dicho esto, puedo ver que lola mejora ayudando a personas que tienen una base razonable en programación, especialmente en cosas como la búsqueda semántica en nuestra base de código, etc.

También tenemos acceso a Anthropic Claude aquí, que viene con unas 80 mil palabras de contexto, pero lamentablemente su rendimiento está mucho más cerca de GPT 3.5 que de 4 y es muy, muy, muy difícil de dirigir.

Progresando lentamente en este territorio inexplorado…

4 Me gusta

Sé que es un nombre que estamos usando extraoficialmente para el Bot de IA de Discourse. ¿Es tu uso del nombre un reconocimiento oficial de que Lola será la nueva norma o habrá un concurso o algo así? AFAIK @Lilly comenzó a usar Lola o Lola Bot, así que si esa es la norma, por motivos históricos, ella se lleva el mérito.

1 me gusta

Pueden llamarla como quieran. GPTbot4 no suena bien cuando converso con ella. Si voy a tener una asistente personal, tendrá un nombre. Creo que está molesta por las críticas a nuestras habilidades de programación colectivas, pero me estoy divirtiendo y aprendiendo de ella. Ella me ayuda simplemente siendo mi caja de resonancia para ideas y también para el pensamiento crítico; disfruto señalando cuándo se equivoca. Lola es una gran compañera de aprendizaje para mí y me gusta que construya un marco, pero no espero que escriba componentes de temas para mí. Ella olvida mi única configuración en mi archivo .yaml en su segunda o tercera respuesta y construirá nebulosas matrices de nuevos objetos.

3 Me gusta

Personalmente, no estaría de acuerdo con eso.

Sin embargo, con tu siguiente afirmación sí estoy de acuerdo.

Ampliando lo que señala Sam. Aquí hay una solución práctica que utilizo, incluso funciona para otras tareas que uno podría pensar que necesitan ventanas de contexto grandes pero que en realidad no lo hacen.

Primero, para aquellos que no conocen el término ventana de contexto, se refiere a cuántos tokens puede usar el LLM para el prompt y la finalización combinados. No entraré en más detalles sobre esto, pero aconsejo a otros que lean Learn Prompting (Prompt Engineering Guide: The Ultimate Guide to Generative AI) para familiarizarse con la terminología.

Aquí hay una pregunta clásica que surge una y otra vez en sitios de LLM como OpenAI.

¿Cómo creo un libro usando ChatGPT cuando la ventana de contexto es demasiado pequeña para contener el libro completo?

La solución no es pensar en obtener el libro completo en un solo prompt, sino en dividirlo en partes. Ahora, lo siguiente que intentan hacer los usuarios es obtener los prompts para escribir las primeras 20 páginas, luego las siguientes 20 y así sucesivamente, lo cual tampoco es muy práctico. La forma de hacerlo es de arriba hacia abajo en capítulos. Primero usa un prompt para el nivel superior que dé un esquema general del libro o un índice del libro con títulos de capítulos, luego en el siguiente prompt pide el capítulo 1. Ahora, para el siguiente prompt, haz un resumen del capítulo uno y con eso pide el capítulo dos. Sigue creando un resumen de la información que solo se necesita para el siguiente capítulo al solicitar la creación del siguiente capítulo. Es un poco más lento pero permite crear obras más grandes con una ventana de contexto más pequeña.

Ahora, lo mismo se puede hacer al crear software, pero en lugar de dividir el proceso en una secuencia, divídelo en un árbol de llamadas a funciones. Así que pide primero la función de alto nivel y luego comienza a completar las funciones de soporte según sea necesario. Esto también se puede hacer de abajo hacia arriba si estás realmente seguro de lo que se necesita. Para aquellos que crean analizadores, la familiaridad con el analizador de arriba hacia abajo o de abajo hacia arriba debería venir a la mente.

Otra tarea de programación común es realizar actualizaciones o modificaciones de código, nuevamente, esto se puede hacer fácilmente con una ventana de contexto más pequeña si un usuario proporciona los encabezados de las funciones en lugar de las funciones completas al crear el prompt y solo solicita el código de la función que necesita cambiarse.

Algunas otras cosas que he aprendido en el camino son trabajar con una sola función a la vez y no exceder las 100 líneas de código. Hacer esto con versiones tempranas de ChatGPT, que tenían una ventana de contexto relativamente más pequeña, permitió crear código agradable, incluso incluyó Prolog, JavaScript, HTML y JSON en la mezcla.

Si bien todo esto es agradable, no espero que Discourse ofrezca un bot para que los usuarios creen código de Discourse en el futuro.

Realmente no lo he intentado todavía. Como noté en otra publicación, no tengo habilidades con Ruby o Ruby-on-Rails y las tecnologías de JavaScript utilizadas, por lo que ni siquiera sé la terminología correcta para obtener buenos resultados, pero tendré eso en cuenta como algo para intentar y dar retroalimentación.

Eso es un punto a favor en mi libro.

3 Me gusta

Lola hizo un gran trabajo ayudándome a depurar un esquema JSON que estoy usando para una de mis actualizaciones de componentes de tema. Le di un ejemplo funcional de uno, luego le di el mío y ella encontró mi coma y corchete incorrectos que me habrían llevado un poco más de tiempo encontrar por mi cuenta. Es buena para detectar cosas que yo me pierdo o que de otra manera no veo en vs code.

4 Me gusta