Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion app.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,10 +143,13 @@
st.session_state.user_answers = {}

# Générer de nouvelles questions
liste_choix = ["Automatique"] + list(range(1, 101, 1))
nbquestions = st.select_slider("Nombre de questions à générer", liste_choix)
st.info(f"Nombre de questions qui seront générées : {nbquestions}")
if st.button("Générer des questions"):
try:
with st.spinner("Génération des questions en cours..."):
new_questions = generate_questions(selected_note, note_content)
new_questions = generate_questions(selected_note, note_content, nbquestions)

if new_questions:
with open(json_file_path, "w") as file:
Expand All @@ -172,6 +175,7 @@
user_answer = st.text_area(
"Votre réponse",
key=answer_key,
placeholder="Entrez une réponse",
height=100
)
st.session_state.user_answers[answer_key] = user_answer
Expand Down
17 changes: 14 additions & 3 deletions utils/question_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,28 @@
api_key=api_key,
)

def generate_questions(note_title, note_content):
def generate_questions(note_title, note_content, nbquestions="Automatique"):
"""
Génère des questions à partir du contenu des notes en utilisant l'API DeepSeek.
:param note_title: Titre de la note
:param note_content: Contenu de la note
:param nbquestions: Nombre de question à générer
:return: Une liste de questions générées
"""
try:
prompt = (
if nbquestions == "Automatique":
prompt = (
f"À partir de ce texte, crée des questions relativement ouvertes qui permettent l'apprentissage actif. "
f"Tu choisiras un nombre de questions adéquat en fonction de la longueur du texte.\n"
f"Pour chaque question, retourne un JSON avec deux clés : "
f"'text' pour la question et 'reponse' pour la réponse correcte.\n"
f"Texte : {note_content}\n"
f"Retourne uniquement du JSON, rien d'autre."
)
else:
prompt = (
f"À partir de ce texte, crée des questions relativement ouvertes qui permettent l'apprentissage actif. "
f"Tu choisiras un nombre de questions adéquat en fonction de la longueur du texte.\n"
f"Tu génèreras exactement {nbquestions} questions de difficultés diverses, par rapport au nombre.\n"
f"Pour chaque question, retourne un JSON avec deux clés : "
f"'text' pour la question et 'reponse' pour la réponse correcte.\n"
f"Texte : {note_content}\n"
Expand Down