Un paramètre pour autoriser le stockage de données JSON persistantes dans les artefacts

Je propose humblement la mise en œuvre d’un réglage dans la console Rails qui permettrait aux administrateurs d’activer la capacité pour les artefacts d’IA de stocker des données persistantes dans un seul fichier JSON. Cela pourrait bien sûr introduire involontairement certains problèmes/risques, tout comme le réglage permettant de supprimer définitivement les sujets — :warning: c’est pourquoi il est activé via la console Rails.

Les artefacts d’IA sont très utiles et améliorent grandement la qualité des discussions, cependant leur utilité peut être multipliée par trois s’ils pouvaient stocker de manière permanente des données simples et manipuler ces données de manière simple :eyes:.

Mon cas d’utilisation personnel

Mon instance Discourse est utilisée comme LMS (pour l’enseignement de l’anglais) et comme laboratoire virtuel pour des expériences dans le cadre de mes recherches scientifiques en IA. Chacun de mes clients/étudiants a sa propre catégorie privée (l’accès est accordé via son groupe privé) où tout est sauvegardé et suivi (matériel pédagogique, etc.). Une petite partie de ma recherche consiste à trouver comment concevoir un système qui peut créer de manière autonome et réussie du contenu éducatif pour un apprenant, étant donné sa « biographie d’apprenant » (comme montré dans les captures d’écran ci-dessous) et une sorte de graphe de connaissances (je vais garder le reste confidentiel pour l’instant).

Mon intention est d’utiliser l’API Discourse pour récupérer ces données JSON (la biographie de l’apprenant de l’artefact) à partir du contenu du sujet (probablement besoin d’expressions régulières poussées ici), puis de les fournir à mon architecture cognitive construite avec FastAPI et exécutée sur le même serveur avec un proxy inverse. L’architecture cognitive fait sa magie, puis crée du nouveau contenu pour cet apprenant, puis crée un nouveau sujet avec ce contenu dans la catégorie privée de cet apprenant.

Voici une visualisation rapide et rudimentaire de ce dont je parle :

    flowchart TD
    A[Instance Discourse<br/>LMS + Labo Recherche IA] --&gt; B[Catégories Privées Étudiants<br/>avec Contrôle d'Accès par Groupe]
    
    B --&gt; C[Biographie Apprenant<br/>stockée dans le Contenu du Sujet<br/>Format JSON]
    
    C --&gt; D[API Discourse<br/>Récupérer Contenu Sujet]
    
    D --&gt; E[Expression Régulière<br/>Extraire Données JSON]
    
    E --&gt; F[Biographie Apprenant<br/>Données Extraites]
    
    F --&gt; G[Architecture Cognitive FastAPI<br/>Même Serveur + Proxy Inverse]
    
    H[Graphe de Connaissances<br/>Données de Recherche Confidentielles] --&gt; G
    
    G --&gt; I[Génération Contenu IA<br/>La Magie se Passe Ici ✨]
    
    I --&gt; J[Nouveau Contenu Éducatif<br/>Personnalisé pour l'Apprenant]
    
    J --&gt; K[Créer Nouveau Sujet<br/>via API Discourse]
    
    K --&gt; L[Contenu Publié dans<br/>la Catégorie Privée de l'Étudiant]
    
    L --&gt; M[Matériel Pédagogique<br/>Suivi & Sauvegardé]
    
    M --&gt; N[Boucle Continue d'Apprentissage<br/>& Recherche]
    
    N -.--&gt; C
    
    style A fill:#e1f5fe
    style G fill:#f3e5f5
    style I fill:#fff3e0
    style L fill:#e8f5e8


Techniquement, tout cela peut être réalisé (et de manière plus élégante) en autorisant http dans les artefacts, mais je soupçonne que c’est encore plus risqué que de stocker des données.

:heart: J’ai bien l’intention de rendre cette technologie open source une fois que j’aurai tout mis en place et testé en profondeur.


Cet artefact de biographie d’apprenant fonctionne parfaitement, à l’exception du fait que les données saisies disparaissent après le rafraîchissement de la page :see_no_evil_monkey:

à quoi ressemblent les champs de données dans l’artefact

3 « J'aime »

Je réfléchis déjà à cette fonctionnalité extrêmement puissante, derrière un paramètre de site, je souhaite permettre le stockage d’artefacts de paires clé-valeur, liées à l’utilisateur actuel

Cela ouvre une immense gamme de cas d’utilisation, y compris celui-ci

6 « J'aime »

Ohhh cher M. Sam, ce serait une bénédiction !

Dans votre implémentation, l’utilisateur “lié au sein actuel” implique-t-il qu’un seul utilisateur pourra modifier/voir les données enregistrées ? Je demande parce qu’en fonction de la façon dont vous faites cela, je pourrais devoir modifier mon approche. Dans mon cas d’utilisation, je voudrais que les données soient modifiables à la fois par moi et l’étudiant. Aucun autre utilisateur ne pourrait y accéder ou même le voir, car l’artéfact serait de toute façon dans la catégorie privée de cet étudiant.

1 « J'aime »

Je réfléchis en ce moment à l’API JS, mais de toute façon, vous pourrez toujours accéder aux données dans l’explorateur de données parce que ce sera dans un tableau. (identifiant utilisateur, identifiant de l’objet, version de l’objet, clé, valeur, public (bool))

Laissez-moi réfléchir à cela un peu parce que j’ai toute une série de questions auxquelles je réponds dans ma tête.

  • Espace public pour anonyme ? oui ou non ? quelles sont les limites
  • accès administrateur à tout via l’objet ?
  • informations publiques vs privées (par exemple : sondages)

Je développerai ici en tant que formulaire de réponse.

3 « J'aime »

Pour élargir cette notion de données persistantes dans les artefacts… ce serait formidable si nous pouvions d’une manière ou d’une autre « réutiliser » des artefacts (ou en enregistrer manuellement de nouveaux) avec de simples modifications de données JSON dans chacun d’eux. Par exemple :

Comme mentionné précédemment, chacun de mes étudiants a sa propre catégorie privée, ce qui signifie qu’ils ont leurs propres matériels et quiz. Aujourd’hui, j’ai testé la création d’un artefact de quiz.

Approche actuelle pour créer des quiz

(Le sujet est créé comme un sujet wiki afin que l’étudiant puisse réellement sélectionner sa case à cocher.)

Version de l'artefact

La raison pour laquelle ce serait utile est que nous pourrions alors avoir un « moteur de quiz » qui fonctionne bien (le mini-programme lui-même), puis simplement remplacer les verbes à particule (ou toute autre donnée) en utilisant un objet JSON différent. Ainsi, les données changent mais le code ne change pas, si cela a du sens.

1 « J'aime »