Anuncio oficial bot LLM de foro.elhacker.net
PresentaciónHola, soy StringManolo un usuario mas del foro y llevo un par de días hablando con ElBrujo (admin/dueño de elhacker.net) sobre una API que instaló en el dominio. De ahí surgió la idea de crear un chat / bot para el foro utilizando la API y decidí desarrollarla. De ahí nació AIehnBOT.
Que es ?AIehnBOT es un programa en javascript que corre en el navegador de los usuarios para leer todas los mensajes visibles del tema que estás leyendo, enviarlos a un LLM (Modelo Largo de Lenguaje) usando una API JSON e inyectando la respuesta en la página web. De esta forma, los usuarios pueden ver, a demás de las respuestas de los otros usuarios, una respuesta extra creada por el bot al final del tema. El bot responde en base a todos los mensajes del tema y su título.
Cómo lo activoPuedes ir a
perfil (debes haber ingresado en tu cuenta) usando el botón/enlace Perfil de la barra navegación del foro y clickar en la opción
Configurar LLM que se muestra a la izquierda. O visitar directamente el panel de configuración clickando
aquí.
Se te abrirá un panel de configuración con distintas opciones. Marca la casilla Habilitar Bot y pulsa el botón Guardar.
Si utilizar un tema personalizado del foro, el bot no funcionará, si quieres usar/probar el bot, cambia al tema clásico.
Instrucciones de usoTras habilitar el bot, cada vez que visites un tema, el bot empezará a responder a dicho tema.
La respuesta es única para ti, si quieres que otros usuarios la vean, puedes copiar el texto, clickar en responder, y pegarlo entre:
[quote=AIehnBOT]
Aqui pegas la respuesta del bot.
[/quote]
Aqui tu respuesta al tema / bot.
Como funciona a nivel del usuarioSi eres un usuario del foro e hiciste Log In en tu cuenta, el bot lee los temas que visitas y te responde.
Que características tiene ?- Habilitarlo o Deshabilitar
- Navegar hasta la respuesta del bot automáticamente[
- Prompt Configurable
- Imagen del bot Configurable
- Firma del bot Configurable
Como funciona a nivel de programadorEl bot está metido con un <script src="./archivo.js"></script>
Tiene varias condiciones que comprueba (por ejemplo si ingresaste en la cuenta, si estás viendo el perfil, respondiendo a un tema, etc)
El bot hace un querySelector del título del tema, del los autores de cada mensaje y sis mensajes.
Después arma un prompt (string / JSON) que incluye $PROMPT + $TITULO_TEMA + lista de $AUTOR: $MENSAJE + $REGLAS_RESPUESTA y se la envia a un modelo Gemma3 27B usando la API de OLLAMA.
El script crea un placeholder para la respuesta (string con HTML imitando la estructura de tablas del foro con atributo ID custom) usando un query selector. La API responde un stream / chunks de objetos JSON similar a un long polling.
La respuesta se va inyectando por chunks escapada en el div/placeholder.
Cuando la API envía el último chunk, se procesa toda la respuesta del LLM en bloque para parsear el Markdown recibido y traducirlo a HTML imitando el HTML que genera SMF2.0 para BBCODE (rollo transpiler)
El script también inyecta en foro.elahcker.net/profile.html la opción de configuración del LLM y detecta el evento hashchange para inyectar la pagina de configuración del LLM.
Los valores de la página de configuración se guardan en localStorage de tu navegador, ya que el script es 100% FrontEnd, solo utiliza la API para las respuestas del LLM como BackEnd. Es decir consume la API.
El script no utiliza ningún framework ni librería externa.
Sé programar en javascript, puedo modificarlo?Si, el bot/script se puede correr en 3 contextos distintos:
- En el propio foro, habiltando el bot desde el Perfil
- En navegador custom o tu navegador habitual con una extensión
- En un servidor local que sirva la web
Si eres desarrollador y quieres customizarlo mas aún, (por ejemplo puedes cambiar las constantes para que corra incluso cuando no ingresaste en la cuenta, editar los estilos, cambiar el modelo, añadir mas opciones de configuración, etc) puedes correr el script con una extensión como EvilMonkey en tu navegador.
Yo personalmente recomiendo el navegador
Cromite (abajo en releasses) está la descarga (funciona en Android), añadir/activar el script desde Setting/Ajustes -> UserScripts.
Repositorio OficialVer
Repositorio AIehnBOT en github
Distintos Archivos del repositorioEl repositorio incluye el script que corre en el foro (backend), el que corre en navagador (cromite) y el que corre en un servidor de pruebas (localhost)
Reporte de fallosPara reportar fallos comunes que no tengan gravedad para el resto de usuarios en el script/bot, puedes hacerlo en este propio tema como respuesta o en el repositiorio oficial de github abriendo un nuevo issue.
Por ejemplo, un fallo del que soy consciente es que el script no funciona con temas custom del foro (porque modifican el html del foro y mi script actual no tiene los selectores para adaptarse a los cambios que hacen distintos temas.
Reporte de fallos de SeguridadPara fallos de seguridad, por ejemplo XSS, HTMLi, CSSi, prompt inyection, DOS, markdown malicioso, scan de recursos locales, etc.
No los comentes en este tema o en los issues de github antes de que yo haga el parche y confirme que el foro está seguroRepórtamelo utilizando los propios mensajes privados del foro o por Telegram
@StringManolo o alternativamente a ElBrujo (el admin de ls web).
Si reportas algún bug, tras confirmarlo y parchearlo añadiré tu nombre al script con el tipo de bug reportado, el parche, etc. El bug debe contener un PoC en el que se demuestre como se puede inhabilitar el bot o la API a otro usuario, extraer data etc.
Si vas a atacar el bot (por ejemplo rollo Fuzzer), recomiendo que lo hagas con el script corriendo local utilizando Cromite / EvilMonkey para no molestar a otros usuarios del foroHice pruebas extensivas de la seguridad del script en distintas versiones. Si de todas formas tienes dudas, puedes deshabilitarlo desde ajustes.
ColaborarPara colaborar desarrollando, haz pull request con los cambios que hiciste a mi repo y una breve descripción de lo que pretendes conseguir con ellos y los reviso. Pruébalos en local primero con Cromite / EvilMonkey. Si los cambios son validados por mi, se integrarán automáticamente en el foro.
Sugerir nuevas característicasPara suguerir cambios, nuevas características, etc, puedes utilizar los Issues en github del repo oficial o comentarlos en este tema.
Futuro del botA priori no espero realizar grandes cambios en el futuro (excepto parches de seguridad y mejora a la estabilidad), es un hobby y tengo literalmente cientos de proyectos personales.
Este post es para difundir el bot para quien lo quiera usar y animar a otros usuarios a contribuir y mejorarlo.
Gracias por leer.