noted-eip / notes-service

Service responsible for managing notes
GNU General Public License v3.0
4 stars 0 forks source link

Basic quiz generation #72

Closed edouard-sn closed 1 year ago

edouard-sn commented 1 year ago

Description

Add GenerateQuiz route, rearrange languageapi, new name for language service in-code. Unit tests aswell

Generates 5 questions with at least 2 possible answers, thanks to GPT. In the JSON there is also the solution. Clean-up in the unit tests (maxime's notes) because of a discovered problem in background-service.

Fixes #61

What GPT answers :

{
        "questions": [
                {
                        "question": "Quelle est la principale réalisation d'Ada Lovelace dans le domaine de l'informatique ?",
                        "answers": ["Conception d'un ordinateur", "Écriture du premier programme informatique"],
                        "solutions": ["Écriture du premier programme informatique"]
                },
                {
                        "question": "Sur quoi Ada Lovelace a-t-elle travaillé pour réaliser son programme informatique ?",
                        "answers": ["Machine analytique de Charles Babbage", "Première calculatrice mécanique"],
                        "solutions": ["Machine analytique de Charles Babbage"]
                },
                {
                        "question": "Quel titre noble Ada Lovelace portait-elle ?",
                        "answers": ["Duchesse de Lovelace", "Comtesse de Lovelace"],
                        "solutions": ["Comtesse de Lovelace"]
                },
                {
                        "question": "Quelle personne a encouragé George Gordon Byron à se marier avec Annabella Milbanke ?",
                        "answers": ["Augusta Leigh", "Caroline Lamb"],
                        "solutions": ["Augusta Leigh"]
                },
                {
                        "question": "Quel est le prénom complet d'Ada Lovelace ?",
                        "answers": ["Augusta Ada King, comtesse de Lovelace", "Ada Byron, comtesse de Lovelace"],
                        "solutions": ["Augusta Ada King, comtesse de Lovelace"]
                }
        ]
}

Which will be translated in those objects :


type Quiz struct {
    QuizQuestions []QuizQuestion `json:"questions,omitempty" bson:"questions,omitempty"`
}

type QuizQuestion struct {
    Question  string   `json:"question,omitempty" bson:"question,omitempty"`
    Answers   []string `json:"answers,omitempty" bson:"answers,omitempty"`
    Solutions []string `json:"solutions,omitempty" bson:"solutions,omitempty"`
}

Changelog