Un'impostazione per consentire la memorizzazione di dati JSON persistenti negli artifacts

Propongo umilmente l’implementazione di un’impostazione della console rails che consentirebbe agli amministratori di abilitare la capacità per gli artefatti AI di archiviare dati persistenti in un singolo file JSON. Ciò potrebbe ovviamente introdurre involontariamente alcuni problemi/rischi, proprio come l’impostazione per abilitare l’eliminazione permanente degli argomenti — :warning: da qui l’abilitazione tramite la console rails.

Gli artefatti AI sono molto utili e aumentano notevolmente la qualità delle discussioni, tuttavia la loro utilità può essere triplicata se fossero in grado di archiviare permanentemente dati semplici e manipolare tali dati in modi semplici :eyes:

Il mio caso d’uso personale

La mia istanza Discourse viene utilizzata come LMS (per l’educazione all’inglese) e come laboratorio virtuale per esperimenti per la mia ricerca scientifica sull’IA. Ciascuno dei miei clienti/studenti ha la propria categoria privata (l’accesso viene concesso tramite il loro gruppo privato) dove tutto viene salvato e tracciato (materiali didattici, ecc.). Una piccola parte della mia ricerca consiste nel capire come progettare un sistema che possa creare in modo autonomo e di successo contenuti didattici per uno studente data la sua “Biografia dello Studente” (come mostrato negli screenshot seguenti) e una sorta di grafo della conoscenza (il resto lo manterrò riservato per ora).

La mia intenzione è utilizzare l’API di Discourse per recuperare tali dati JSON (la biografia dello studente dall’artefatto) dal contenuto dell’argomento (probabilmente avrò bisogno di espressioni regolari piuttosto complesse qui) quindi fornirla alla mia architettura cognitiva che è costruita con FastAPI e in esecuzione sullo stesso server con un reverse proxy. L’architettura cognitiva fa la sua magia, quindi crea nuovi contenuti per quello studente, quindi crea un nuovo argomento con quel contenuto nella categoria privata di quello studente.

Ecco una visualizzazione rapida e grezza di ciò di cui sto parlando:

    flowchart TD
    A[Istanza Discourse<br/>LMS + Laboratorio di Ricerca AI] --
    > B[Categorie Private Studenti<br/>con Controllo Accesso Gruppi]
    
    B --
    > C[Biografia Studente<br/>Archiviata nel Contenuto Argomento<br/>Formato JSON]
    
    C --
    > D[API Discourse<br/>Recupera Contenuto Argomento]
    
    D --
    > E[Espressione Regolare<br/>Estrai Dati JSON]
    
    E --
    > F[Biografia Studente<br/>Dati Estratti]
    
    F --
    > G[Architettura Cognitiva FastAPI<br/>Stesso Server + Reverse Proxy]
    
    H[Grafo della Conoscenza<br/>Dati di Ricerca Riservati] --
    > G
    
    G --
    > I[Generazione Contenuti AI<br/>La Magia Succede Qui ✨]
    
    I --
    > J[Nuovi Contenuti Didattici<br/>Personalizzati per lo Studente]
    
    J --
    > K[Crea Nuovo Argomento<br/>tramite API Discourse]
    
    K --
    > L[Contenuto Pubblicato in<br/>Categoria Privata Studente]
    
    L --
    > M[Materiali Didattici<br/>Tracciati e Salvati]
    
    M --
    > N[Ciclo Continuo di Apprendimento<br/>e Ricerca]
    
    N -.
    -> C
    
    style A fill:#e1f5fe
    style G fill:#f3e5f5
    style I fill:#fff3e0
    style L fill:#e8f5e8


Tecnicamente tutto ciò può essere realizzato (e in modo più elegante) consentendo http negli artefatti, ma sospetto che sia ancora più rischioso che archiviare dati.

:heart: Ho intenzione di rendere open source questa tecnologia una volta che l’avrò fatta funzionare e testata a fondo.


Questo artefatto di biografia dello studente funziona perfettamente tranne per il fatto che i dati inseriti scompaiono dopo aver aggiornato la pagina :see_no_evil_monkey:

come appaiono i campi dati nell’artefatto

3 Mi Piace

Ho già pensato a questa funzionalità estremamente potente, dietro una impostazione del sito voglio consentire l’archiviazione di artefatti di coppie chiave-valore, legate all’utente corrente

Questo apre una quantità enorme di casi d’uso, incluso questo

5 Mi Piace

Ohhh caro signor Sam, sarebbe una benedizione!

Nella tua implementazione, per “bound to current” utente si intende che solo un utente potrebbe modificare/vedere i dati salvati? Chiedo perché, a seconda di come lo fai, potrei dover modificare il mio approccio. Nel mio caso d’uso, vorrei che i dati fossero modificabili sia da me che dallo studente. Nessun altro utente potrebbe modificarli, o anche vederli, perché l’artefatto sarebbe comunque nella categoria privata di quello studente.

1 Mi Piace

Al momento sto valutando l’API JS, ma indipendentemente da ciò, potrai sempre accedere ai dati in data explorer poiché saranno in una tabella. (user id, artifact id, artifact version, key, value, public (bool))

Lasciami riflettere un po’ su questo perché ho un sacco di domande a cui sto rispondendo nella mia testa.

  • spazio pubblico per anon? sì o no? quali sono i limiti
  • accesso admin a tutto tramite artefatto?
  • informazioni pubbliche vs private (es. sondaggi)

Espanderò qui man mano che le risposte si formeranno.

3 Mi Piace

Kind of expanding on this notion of persistent data in artifacts… it would be dandy if we could somehow “reuse” artifacts (or manually register new ones) with just slight JSON data modifications in each one. For example:

As already mentioned, each of my students has their own private category which means they have they their own materials and quizzes. Today I tested out creating a quiz artifact.

Current approach for making quizzes

(The topic is created as a wiki topic so the student can actually select their answer checkbox.)

Artifact version

The reason why it would be useful is because we could then have one “quiz engine” which works well (the actual mini-program) then just replace the phrasal verbs (or whatever other data) by using a different JSON object. So the data changes but the code doesn’t, if that makes sense.

1 Mi Piace