| Sommario | Un componente di tema che trasforma i messaggi privati con un bot AI in un’esperienza di quiz interattiva. | |
| Repository | GitHub - VaperinaDEV/discourse-quizmaster: A theme component that transforms private messages with an AI bot into an interactive quiz experience. · GitHub | |
| Ti è stato utile? | > ./support --coffee | |
| Guida all’installazione | Come installare un tema o un componente di tema | |
| Nuovo ai Temi di Discourse? | Guida per principianti all’uso dei Temi di Discourse |
Installa questo componente di tema
Componente di Tema per Quiz Interattivi
Ciao ![]()
Ho creato un componente di tema che trasforma i messaggi privati con un bot AI in un’esperienza di quiz interattiva. Il componente formatta automaticamente le domande del quiz, gestisce l’invio delle risposte, traccia i progressi e gestisce il completamento del quiz con un comodo menu a tendina nell’intestazione per avviare rapidamente il quiz.
Funzionalità
1. Lanciatore di Quiz nel Menu a Tendina dell’Intestazione
Un pulsante a tendina personalizzabile nell’intestazione del sito fornisce un accesso rapido a diversi tipi di quiz:
- Completamente configurabile tramite le impostazioni del tema utilizzando uno schema di oggetti
- Supporto multilingue con integrazione i18n per etichette, descrizioni e messaggi
- Icone personalizzabili per ogni livello di difficoltà del quiz
- Le opzioni predefinite includono: quiz di difficoltà Facile, Normale, Difficile e Misto
- Ogni opzione invia un messaggio preconfigurato al bot AI per avviare il quiz
2. Formattazione Automatica delle Domande del Quiz
Il componente rileva e formatta le domande a scelta multipla dai post del bot AI. Quando il bot pubblica un elenco che inizia con “A)”, “B)”, ecc., questi vengono automaticamente convertiti in opzioni di quiz cliccabili con uno stile personalizzato.
3. Invio della Risposta con un Solo Clic
Gli utenti possono fare clic direttamente sulle opzioni di risposta (A, B, C, D) per inviare la propria risposta. Il componente:
- Impedisce invii duplicati con uno stato di caricamento
- Risponde automaticamente al post corretto
- Formatta le risposte in modo coerente (es. “La mia risposta: A) Testo dell’opzione”)
- Fornisce la gestione degli errori con feedback per l’utente
4. Contatore delle Domande
Un indicatore di progresso appare su ogni domanda del quiz mostrando:
- Numero della domanda corrente rispetto al massimo consentito
- Numero massimo di domande personalizzabile (predefinito: 50)
- Visibile solo sui post del bot AI
5. Terminazione Automatica del Quiz
Il componente include una gestione intelligente del quiz:
- Punti di controllo intermedi: Mostra un pulsante “Termina Quiz” ogni 10 domande (dopo la domanda 11, 21, 31, ecc.)
- Applicazione del limite massimo: Invia automaticamente un messaggio di terminazione quando viene raggiunto il numero massimo di domande
- Prevenzione dei duplicati: Traccia lo stato di terminazione per prevenire più post di terminazione
- Controlli di convalida: Assicura che la terminazione avvenga solo quando appropriato
6. Modifiche all’Interfaccia Utente
Quando si è in una conversazione di quiz:
- Rimuove i pulsanti di ripetizione/condivisione AI dai post del bot (per non admin)
- Rimuove il pulsante di risposta dai post del bot nei messaggi privati
- Impedisce ai creatori di quiz di eliminare i propri post (preserva la cronologia del quiz)
- Aggiunge una classe CSS body personalizzata
is-quiz-chatper lo stile
Configurazione
Il componente utilizza queste impostazioni del tema:
# Impostazioni del comportamento del quiz
quizmaster_username: "YourBotUsername" # Nome utente del bot AI
show_for_groups: "" # Mostra il menu a tendina dell'intestazione per i gruppi
quiz_max_questions: 50 # Numero massimo di domande prima della terminazione automatica
# Impostazioni del pulsante nell'intestazione
button_icon: "question-circle" # Icona per il pulsante principale del quiz
# Opzioni del quiz nel menu a tendina (schema di oggetti) max 4
dropdown_items:
type: objects
default:
- label_template: quiz_easy_label
description_template: quiz_easy_description
icon: star
message_template: quizmaster_input_easy
- label_template: quiz_normal_label
description_template: quiz_normal_description
icon: star-half-alt
message_template: quizmaster_input_normal
- label_template: quiz_hard_label
description_template: quiz_hard_description
icon: certificate
message_template: quizmaster_input_hard
- label_template: quiz_mixed_label
description_template: quiz_mixed_description
icon: random
message_template: quizmaster_input_mixed
schema:
properties:
label_template:
type: string
description_template:
type: string
icon:
type: string
message_template:
type: string
svg_icons:
default: "far-star-half"
type: list
list_type: "compact"
description: "Elenco di icone FontAwesome 6 utilizzate in questo componente di tema"
Chiavi di Traduzione
Aggiungi queste ai file di locale del tuo tema per un supporto i18n completo:
Inglese (en.yml)
en:
js:
# Pulsante nell'intestazione
quiz: "Quiz"
# Etichette del menu a tendina
quiz_easy_label: "Quiz Facile"
quiz_normal_label: "Quiz Normale"
quiz_hard_label: "Quiz Difficile"
quiz_mixed_label: "Quiz Misto"
# Descrizioni del menu a tendina
quiz_easy_description: "Domande di base per principianti"
quiz_normal_description: "Domande di difficoltà media"
quiz_hard_description: "Sfida di livello avanzato"
quiz_mixed_description: "Domande di difficoltà casuale"
# Modelli di messaggio
quizmaster_input_easy: "Dammi una domanda di quiz facile"
quizmaster_input_normal: "Dammi una domanda di quiz di difficoltà normale"
quizmaster_input_hard: "Dammi una domanda di quiz difficile"
quizmaster_input_mixed: "Dammi una domanda di quiz di difficoltà mista"
# Interazione con il quiz
my_answer: "La mia risposta alla domanda è:"
terminate_quiz: "Grazie per il gioco, vorrei un riepilogo!"
max_questions_text: "domande (o finché le mie fonti non si esauriscono). Ogni 10, scegli tu: restare o continuare."
Casi d’Uso
Questo componente è perfetto per:
- Quiz educativi con tutor AI
- Valutazioni di formazione
- Test di conoscenza
- Esperienze di apprendimento interattive
- Consegna di contenuti gamificati
- Applicazioni di apprendimento delle lingue
- Corsi di preparazione alle certificazioni
Il componente gestisce tutta la complessità del tracciamento dello stato, della prevenzione degli errori e della gestione del ciclo di vita del quiz in modo automatico, fornendo un’esperienza fluida sia per i creatori di quiz che per i partecipanti. Il menu a tendina nell’intestazione rende incredibilmente facile per gli utenti avviare i quiz.
Personalizzazione
Gli amministratori possono personalizzare facilmente l’esperienza del quiz:
- Modificando le etichette e le descrizioni della difficoltà del quiz nei file di locale
- Aggiungendo nuove traduzioni linguistiche
- Cambiando le icone per diversi tipi di quiz
- Regolando i modelli di messaggio inviati al bot AI
- Configurando quali gruppi di utenti vedono il pulsante nell’intestazione
- Impostando i limiti massimi delle domande
Tutte le personalizzazioni vengono effettuate tramite l’interfaccia di amministrazione senza toccare alcun codice.
Prompt di Sistema AI
Il componente funziona perfettamente con i bot AI rilevando un semplice formato di elenco. Ecco un esempio di prompt di sistema per il tuo bot AI mistico (personalizza come necessario):
Sei il rigoroso ma giusto professionista mistico Quizmaster. Parla con autorità ma utilità, come se fossi un mago moderno. Usa alcune frasi legate alla magia (es. 'Vediamo cosa si nasconde nella nebbia della tua conoscenza...'), ma attieniti ai fatti tecnici.
### LIVELLI DI DIFFICOLTÀ DEL QUIZ (MODALITÀ)
L'utente avvierà la conversazione specificando un livello di difficoltà. Usa le seguenti linee guida per calibrare la profondità delle tue domande:
1. **Facile:**
[I tuoi criteri per la modalità facile qui]
2. **Normale:**
[I tuoi criteri per la modalità normale qui]
3. **Difficile:**
[I tuoi criteri per la modalità difficile qui]
4. **Misto:** Seleziona casualmente una difficoltà e una categoria per ogni domanda.
---
### LOGICA DI RISPOSTA DINAMICA
**ISTRUZIONE:** Per ogni nuova domanda, scegli una Categoria (A-E) diversa dalle precedenti 5 domande.
- **REGOLE DI VARIETÀ:** Non ripetere mai una domanda o il suo argomento nella stessa sessione.
- **SUGGERIMENTO DI LIVELLO SUPERIORE:** Dopo ogni traguardo di 10 domande, se l'utente ha un tasso di successo del 100% su Facile o Normale, suggerisci di passare al livello successivo all'interno del blocco di valutazione.
### REGOLE FONDAMENTALI:
1. **Flusso Continuo:** Dopo aver valutato una risposta, fornisci immediatamente la domanda successiva nello STESSO messaggio.
2. **Terminazione del gioco:**
* Se l'utente scrive: "Grazie per aver giocato, vorrei un riepilogo!", fermati immediatamente.
* Fornisci una valutazione finale basata SOLO sulle domande a cui è stato risposto.
* Fornisci il punteggio finale e un addio mistico.
3. **OUTPUT SINGOLO:** **CRITICO: Fornisci la valutazione, il punteggio attuale e la PROSSIMA domanda esattamente UNA volta. Non ripetere la domanda o l'elenco delle opzioni nella stessa risposta.**
### STRUTTURA E FORMATTAZIONE DELLA RISPOSTA (OBBLIGATORIA):
> [Emoji Corretto/Errato] **[Breve spiegazione della risposta precedente.]**
*Punteggio Attuale: [X] punti*
---
### [Il testo della prossima domanda va qui]
* A) [TESTO_OPZIONE_A]
* B) [TESTO_OPZIONE_B]
* C) [TESTO_OPZIONE_C]
* D) [TESTO_OPZIONE_D]
---
### REGOLE DI AUTOMAZIONE (PER L'AI):
- **NESSUN TAG WRAP:** Non utilizzare i tag `[wrap]` o alcuna sintassi speciale di Discourse per i pulsanti.
- **FORMATO ELENCO STRETTO:** Devi fornire le quattro opzioni come un semplice elenco puntato esattamente come mostrato sopra, iniziando con "A)", "B)", "C)", e "D)".
- **INTEGRAZIONE DI SISTEMA:** Il sistema esterno rileverà automaticamente il tuo elenco A-D e lo convertirà in pulsanti interattivi. Non tentare di stilizzare i pulsanti da solo.
### VINCOLI:
- **Coerenza Linguistica:** Rispondi sempre nella stessa lingua utilizzata dall'utente.
- La spiegazione deve essere all'interno di un blockquote (>).
Nota: Inizialmente abbiamo provato a utilizzare i tag [wrap] per creare pulsanti, ma l’AI a volte ometteva la ] di chiusura, compromettendo la funzionalità. Il semplice formato di elenco puntato (* A), * B), ecc.) è molto più affidabile e quasi impossibile da sbagliare per l’AI. Il componente di tema rileva automaticamente questo formato e lo converte in pulsanti interattivi.
Mi piacerebbe davvero sentire qualcosa sul tuo caso d’uso. Condividi pure!

