feat(bisaya): enhance situational response exercises with keyword hints and minimum match requirements
This commit is contained in:
@@ -761,18 +761,24 @@ function buildSituationalExercise(lessonTitle, didactics, fallbackPattern) {
|
||||
.split(' ')
|
||||
.filter((token) => token.length >= 4)
|
||||
.slice(0, 4);
|
||||
const requiredParts = keywords.length > 0 ? keywords : [modelAnswer];
|
||||
const question = speakingPrompt?.prompt
|
||||
? `${speakingPrompt.prompt} Schreibe auf Bisaya und verwende diese Bausteine: ${requiredParts.join(', ')}.`
|
||||
: `Reagiere passend mit einem Ausdruck aus der Lektion „${lessonTitle}“. Verwende: ${requiredParts.join(', ')}.`;
|
||||
|
||||
return withTypeName('situational_response', {
|
||||
title: `${lessonTitle}: Situativ reagieren`,
|
||||
instruction: 'Antworte kurz und passend auf die Situation.',
|
||||
instruction: 'Antworte auf Bisaya. Die angezeigten Bausteine müssen in deiner Antwort vorkommen.',
|
||||
questionData: {
|
||||
type: 'situational_response',
|
||||
question: speakingPrompt?.prompt || `Reagiere passend mit einem Ausdruck aus der Lektion "${lessonTitle}".`,
|
||||
keywords
|
||||
question,
|
||||
keywords: requiredParts,
|
||||
minKeywordMatches: requiredParts.length
|
||||
},
|
||||
answerData: {
|
||||
modelAnswer,
|
||||
keywords
|
||||
keywords: requiredParts,
|
||||
minKeywordMatches: requiredParts.length
|
||||
},
|
||||
explanation: `Das Kernmuster "${modelAnswer}" passt natürlich zu dieser Situation.`
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user