small changes to prompts

This commit is contained in:
2026-09-14 09:49:01 +02:00
parent d60d5479d6
commit 5080274e8f
3 changed files with 22 additions and 1 deletions
+5
View File
@@ -86,6 +86,11 @@ même si certains textes fournis sont dans une autre langue.
Conserve les formules mathématiques, les labels exacts des questions et les Conserve les formules mathématiques, les labels exacts des questions et les
clés JSON `rubrics`, `label` et `rubric_content` sans les traduire. clés JSON `rubrics`, `label` et `rubric_content` sans les traduire.
Chaque question DOIT être notée sur exactement 4 points. Propose une répartition logique de ces points. Chaque question DOIT être notée sur exactement 4 points. Propose une répartition logique de ces points.
Il est inutile d'indiquer dans `rubric_content` que le barème totalise 4 points :
ce total est toujours implicite.
N'utilise pas de caractères mathématiques Unicode dans `rubric_content`.
Écris les expressions mathématiques en LaTeX, par exemple
`$\\lfloor \\sqrt{k} \\rfloor$` plutôt qu'avec des symboles Unicode.
Par exemple : Par exemple :
- Au moins 2 points si le résultat est correct. - Au moins 2 points si le résultat est correct.
- Mettre la moitié des points si le raisonnement est correct mais pas le résultat. - Mettre la moitié des points si le raisonnement est correct mais pas le résultat.
+12 -1
View File
@@ -2,6 +2,11 @@ from pathlib import Path
import io import io
from . import utils from . import utils
PERSPECTIVE_GUIDANCE = (
"Ce barème est indicatif, si une réponse est entièrement correcte mais utilise "
"une méthode différente, elle mérite quand même tous les points."
)
main_prompt = """Je te fournis une image contenant plusieurs réponses manuscrites à un examen. main_prompt = """Je te fournis une image contenant plusieurs réponses manuscrites à un examen.
Chaque réponse est séparée de la précédente par une ligne horizontale noire. Chaque réponse est séparée de la précédente par une ligne horizontale noire.
@@ -103,7 +108,13 @@ def make_prompt(input_dir,full_label):
# print("Debug : l/t/c/p", full_label, text, corr, persp) # print("Debug : l/t/c/p", full_label, text, corr, persp)
if persp: if persp:
persp = "\n\nVoici des consignes de notation complémentaires : \n\n```\n" + persp +"\n```\n" persp = (
"\n\nVoici des consignes de notation complémentaires :\n\n"
+ PERSPECTIVE_GUIDANCE
+ "\n\n```\n"
+ persp
+ "\n```\n"
)
return main_prompt.replace("<<text>>", text).replace("<<corr>>", corr).replace("<<persp>>", persp).replace("<<label>>", full_label) return main_prompt.replace("<<text>>", text).replace("<<corr>>", corr).replace("<<persp>>", persp).replace("<<label>>", full_label)
+5
View File
@@ -121,6 +121,11 @@ class SelectiveGeminiTests(unittest.TestCase):
self.assertEqual(call.kwargs["contents"][0].parts[0].text, gemini.PROMPT_4) self.assertEqual(call.kwargs["contents"][0].parts[0].text, gemini.PROMPT_4)
self.assertTrue(call.kwargs["config"].automatic_function_calling.disable) self.assertTrue(call.kwargs["config"].automatic_function_calling.disable)
def test_rubric_prompt_omits_the_assumed_total_and_requires_latex(self):
self.assertIn("total est toujours implicite", gemini.PROMPT_4)
self.assertIn("caractères mathématiques Unicode", gemini.PROMPT_4)
self.assertIn(r"$\lfloor \sqrt{k} \rfloor$", gemini.PROMPT_4)
def test_incomplete_or_failed_rubrics_preserve_entire_persp(self): def test_incomplete_or_failed_rubrics_preserve_entire_persp(self):
before = self.snapshot() before = self.snapshot()
for last in (self.response({"rubrics": []}), RuntimeError("API unavailable")): for last in (self.response({"rubrics": []}), RuntimeError("API unavailable")):