Skip to main content

QuizManagerService

Der QuizManagerService ermöglicht dir die Erstellung und Verwaltung von KI-generierten Quizzen. Du kannst Quizze aus Texten generieren, den Ablauf steuern und den Fortschritt verfolgen.

Zugriff

const quiz = RAGAI.quiz;

Properties (Getter)

PropertyTypBeschreibung
IS_RUNNINGbooleanGibt an, ob gerade ein Quiz läuft
QUESTIONS_UPCOMMINGarrayListe der noch bevorstehenden Fragen
ASKED_QUESTIONSarrayListe der bereits gestellten Fragen
ANSWERED_QUESTIONSarrayListe der beantworteten Fragen
CURRENT_QUESTION_NUMBERnumberAktuelle Fragennummer
if (RAGAI.quiz.IS_RUNNING) {
console.log("Aktuelle Frage:", RAGAI.quiz.CURRENT_QUESTION_NUMBER);
console.log("Noch offen:", RAGAI.quiz.QUESTIONS_UPCOMMING.length);
console.log("Bereits gefragt:", RAGAI.quiz.ASKED_QUESTIONS.length);
}

Konfigurierbare Properties

PropertyTypBeschreibung
LOADING_MSGstringNachricht, die während des Ladens angezeigt wird
CONF_QUESTIONS_COUNTnumberAnzahl der zu generierenden Fragen
CONF_WRONG_ANSWER_COUNTnumberAnzahl der falschen Antwortoptionen pro Frage
ADDITIONAL_PROMPT_INFOstringZusätzliche Informationen für den KI-Prompt
BUTTON_CLASSstringCSS-Klasse für die Antwort-Buttons
RIGHT_ANSWERSnumberZähler für richtige Antworten
WRONG_ANSWERSnumberZähler für falsche Antworten
// Quiz konfigurieren
RAGAI.quiz.CONF_QUESTIONS_COUNT = 5;
RAGAI.quiz.CONF_WRONG_ANSWER_COUNT = 3;
RAGAI.quiz.LOADING_MSG = "Dein Quiz wird erstellt...";
RAGAI.quiz.ADDITIONAL_PROMPT_INFO = "Erstelle die Fragen auf Deutsch und im Multiple-Choice-Format.";
RAGAI.quiz.BUTTON_CLASS = "quiz-button";

Methoden

startFromText(source)

Startet ein Quiz basierend auf einem Quelltext. Die Fragen werden automatisch mithilfe von KI generiert.

Parameter:

ParameterTypPflichtBeschreibung
sourcestringJaDer Text, aus dem Quizfragen generiert werden

Rückgabe: Promise<void>

const lerntext = "Die Photosynthese ist ein Prozess, bei dem Pflanzen Lichtenergie in chemische Energie umwandeln...";
await RAGAI.quiz.startFromText(lerntext);

nextQuestion()

Zeigt die nächste Frage des laufenden Quizzes an.

Rückgabe: Promise<void>

await RAGAI.quiz.nextQuestion();

end() / endQuiz()

Beendet das laufende Quiz und zeigt das Ergebnis an.

RAGAI.quiz.end();
// oder
RAGAI.quiz.endQuiz();

cleanupQuiz()

Räumt alle Quiz-Daten auf und setzt den Zustand zurück. Verwende diese Methode, wenn du ein neues Quiz starten möchtest.

RAGAI.quiz.cleanupQuiz();

debug(eventData?)

Startet das Quiz im Debug-Modus. Nützlich für die Entwicklung und Fehlersuche.

Parameter:

ParameterTypPflichtBeschreibung
eventDataanyNeinOptionale Event-Daten für den Debug-Modus

Rückgabe: Promise<void>

await RAGAI.quiz.debug();

getQuestionsFromText(text)

Generiert Quizfragen aus einem Text, ohne das Quiz zu starten. Nützlich, wenn du die Fragen vorab prüfen oder anpassen möchtest.

Parameter:

ParameterTypPflichtBeschreibung
textstringJaDer Quelltext für die Fragengenerierung

Rückgabe: Promise<string> – Die generierten Fragen.

const fragen = await RAGAI.quiz.getQuestionsFromText(
"Der Zweite Weltkrieg begann 1939 und endete 1945..."
);
console.log(fragen);

showAnswerOptions(currentQuestion)

Zeigt die Antwortoptionen für eine bestimmte Frage an.

Parameter:

ParameterTypPflichtBeschreibung
currentQuestionQuizQuestionJaDas Frage-Objekt mit Antwortoptionen

Rückgabe: Promise<void>

const aktFrage = RAGAI.quiz.QUESTIONS_UPCOMMING[0];
await RAGAI.quiz.showAnswerOptions(aktFrage);

Vollständiges Beispiel

async function quizStarten(lerntext) {
// 1. Quiz konfigurieren
RAGAI.quiz.CONF_QUESTIONS_COUNT = 5;
RAGAI.quiz.CONF_WRONG_ANSWER_COUNT = 3;
RAGAI.quiz.LOADING_MSG = "Dein Quiz wird vorbereitet...";
RAGAI.quiz.ADDITIONAL_PROMPT_INFO = "Formuliere die Fragen verständlich und auf Deutsch.";

// 2. Quiz starten
await RAGAI.quiz.startFromText(lerntext);

RAGAI.MSG.botMessage(
"Quiz gestartet! Es warten " + RAGAI.quiz.QUESTIONS_UPCOMMING.length + " Fragen auf dich."
);
}

function quizStatusAnzeigen() {
if (!RAGAI.quiz.IS_RUNNING) {
RAGAI.MSG.botMessage("Es läuft gerade kein Quiz.");
return;
}

const richtig = RAGAI.quiz.RIGHT_ANSWERS;
const falsch = RAGAI.quiz.WRONG_ANSWERS;
const aktuell = RAGAI.quiz.CURRENT_QUESTION_NUMBER;

RAGAI.MSG.botMessage(
"Frage " + aktuell + ": " + richtig + " richtig, " + falsch + " falsch."
);
}

function quizBeenden() {
RAGAI.quiz.endQuiz();
RAGAI.quiz.cleanupQuiz();
RAGAI.MSG.botMessage("Das Quiz wurde beendet und zurückgesetzt.");
}