Una configuración para permitir almacenar datos JSON persistentes en artefactos

Propongo humildemente la implementación de una configuración de consola de Rails que permitiría a los administradores habilitar la capacidad de que los artefactos de IA almacenen datos persistentes en un solo archivo JSON. Esto, por supuesto, podría introducir inadvertidamente algunos problemas/riesgos, al igual que la configuración para habilitar la eliminación permanente de temas — :warning: por eso se habilita a través de la consola de Rails.

Los artefactos de IA son muy útiles y aumentan en gran medida la calidad de las discusiones; sin embargo, su utilidad puede triplicarse si pudieran almacenar permanentemente datos simples y manipularlos de maneras sencillas :eyes:.

Mi Caso de Uso Personal

Mi instancia de Discourse se utiliza como un LMS (para la educación del inglés) y un laboratorio virtual para experimentos para mi investigación científica en IA. Cada uno de mis clientes/estudiantes tiene su propia categoría privada (se concede acceso a través de su grupo privado) donde tenemos todo guardado y rastreado (materiales de aprendizaje, etc.). Una pequeña parte de mi investigación consiste en averiguar cómo diseñar un sistema que pueda crear de forma autónoma y exitosa contenido educativo para un alumno dada su “Biografía del Alumno” (como se muestra en las capturas de pantalla a continuación) y una especie de grafo de conocimiento (mantendré el resto confidencial por ahora).

Mi intención es utilizar la API de Discourse para obtener esos datos JSON (la biografía del alumno del artefacto) del contenido del tema (probablemente necesitaré algunas expresiones regulares complejas aquí) y luego alimentarla a mi arquitectura cognitiva, que está construida con FastAPI y se ejecuta en el mismo servidor con un proxy inverso. La arquitectura cognitiva hace su magia, luego crea nuevo contenido para ese alumno, luego crea un nuevo tema con ese contenido en la categoría privada de ese alumno.

Aquí hay una visualización rápida y sucia de lo que estoy hablando:

    flowchart TD
    A[Instancia de Discourse<br/>LMS + Laboratorio de Investigación de IA] --&gt; B[Categorías Privadas de Estudiantes<br/>con Control de Acceso por Grupo]
    
    B --&gt; C[Biografía del Alumno<br/>almacenada en Contenido del Tema<br/>Formato JSON]
    
    C --&gt; D[API de Discourse<br/>Obtener Contenido del Tema]
    
    D --&gt; E[Expresión Regular<br/>Extraer Datos JSON]
    
    E --&gt; F[Biografía del Alumno<br/>Datos Extraídos]
    
    F --&gt; G[Arquitectura Cognitiva FastAPI<br/>Mismo Servidor + Proxy Inverso]
    
    H[Grafo de Conocimiento<br/>Datos de Investigación Confidenciales] --&gt; G
    
    G --&gt; I[Generación de Contenido IA<br/>Aquí sucede la Magia ✨]
    
    I --&gt; J[Nuevo Contenido Educativo<br/>Personalizado para el Alumno]
    
    J --&gt; K[Crear Nuevo Tema<br/>a través de la API de Discourse]
    
    K --&gt; L[Contenido Publicado en<br/>Categoría Privada del Estudiante]
    
    L --&gt; M[Materiales de Aprendizaje<br/>Rastreados y Guardados]
    
    M --&gt; N[Bucle Continuo de Aprendizaje<br/>e Investigación]
    
    N -.-> C
    
    style A fill:#e1f5fe
    style G fill:#f3e5f5
    style I fill:#fff3e0
    style L fill:#e8f5e8


Técnicamente, todo esto se puede lograr (y de manera más elegante) permitiendo http en los artefactos, pero sospecho que es aún más arriesgado que almacenar datos.

:heart: Tengo la plena intención de hacer de código abierto esta tecnología una vez que la tenga funcionando y probada a fondo.


Este artefacto de biografía del alumno funciona a la perfección, excepto por el hecho de que los datos introducidos desaparecen después de refrescar la página :see_no_evil_monkey:

cómo se ven los campos de datos en el artefacto

3 Me gusta

Ya he estado pensando en esta función súper potente, detrás de una configuración del sitio quiero permitir el almacenamiento de artefactos de pares clave-valor, vinculados al usuario actual

Esto desbloquea una enorme cantidad de casos de uso, incluido este

5 Me gusta

¡Oh, querido señor Sam, eso sería una bendición!

¿En su implementación, “limitado al usuario actual” implica que solo un usuario podrá editar/ver los datos guardados? Pregunto porque dependiendo de cómo lo haga, es posible que tenga que modificar mi enfoque. En mi caso de uso, me gustaría que los datos fueran editables tanto por yo como por el estudiante. Ningún otro usuario podría editarlos, ni siquiera verlos, porque el artefacto estaría en la categoría privada de ese estudiante de todos modos.

1 me gusta

Estoy pensando en la API de JS en este momento, pero de todos modos siempre podrás acceder a los datos en el explorador de datos porque estarán en una tabla. (ID de usuario, ID de artefacto, versión del artefacto, clave, valor, público (boolean))

Déjame reflexionar un poco sobre esto porque tengo muchas preguntas en mente que estoy respondiendo.

  • ¿Espacio público para anónimos? sí o no? ¿Cuáles son los límites?
  • ¿Acceso de administrador a todo a través del artefacto?
  • Información pública vs privada (por ejemplo: encuestas)

Ampliaré aquí cuando tenga la forma de responder.

3 Me gusta

Expandiendo esta noción de datos persistentes en artefactos… sería estupendo si pudiéramos “reutilizar” artefactos (o registrar manualmente otros nuevos) con solo ligeras modificaciones de datos JSON en cada uno. Por ejemplo:

Como ya se mencionó, cada uno de mis estudiantes tiene su propia categoría privada, lo que significa que tienen sus propios materiales y cuestionarios. Hoy probé a crear un artefacto de cuestionario.

Enfoque actual para hacer cuestionarios

(El tema se crea como un tema de wiki para que el estudiante pueda seleccionar su casilla de respuesta.)

Versión del artefacto

La razón por la que sería útil es porque podríamos tener un “motor de cuestionarios” que funcione bien (el miniprograma en sí) y luego simplemente reemplazar los verbos frasales (o cualquier otro dato) usando un objeto JSON diferente. Así, los datos cambian pero el código no, si eso tiene sentido.

1 me gusta