feat: Modell ergänzt keine Vornamen oder Titel aus dem Glossar

Steht „Alexander Dobrindt“ im Glossar, machte das Modell aus „Dobrind“
den vollen Namen. Der Glossar-Teil des Prompts (de/en) verlangt jetzt,
nur die Schreibweise des Gesagten zu korrigieren. Läufe mit Glossar
werden dadurch einmal neu berechnet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-10-11 21:55:17 +02:00
commit ed721b1773
2 changed files with 12 additions and 3 deletions

View file

@ -180,7 +180,10 @@ PROMPTS = {
"merge": MERGE_SYSTEM,
"glossary": "Glossar: korrekte Schreibweisen von Namen und Begriffen, die in "
"diesem Beitrag vorkommen. Falsch erkannte Varianten davon in der Abschrift "
"stillschweigend korrigieren:",
"stillschweigend korrigieren. Korrigiere nur die Schreibweise dessen, was "
"gesagt wurde: Ergänze keine Vornamen, Titel oder Namensteile aus dem Glossar, "
"die in der Abschrift fehlen (aus „Dobrind“ wird „Dobrindt“, nicht "
"„Alexander Dobrindt“).",
"excerpt": "Der Text ist ein Ausschnitt aus einem längeren Beitrag und kann mitten "
"im Satz beginnen oder enden. Vervollständige angeschnittene Sätze nicht und "
"ergänze kein Wort, auch nicht in einer Markierung; lass einen unvollständigen "
@ -193,7 +196,10 @@ PROMPTS = {
"merge": MERGE_SYSTEM_EN,
"glossary": "Glossary: correct spellings of names and terms that occur in "
"this recording. Silently correct misrecognized variants of them in the "
"transcript:",
"transcript. Correct only the spelling of what was said: do not add first "
"names, titles or other parts of a name from the glossary that are missing "
"in the transcript (\"Mearshimer\" becomes \"Mearsheimer\", not "
"\"John Mearsheimer\").",
"excerpt": "The text is an excerpt from a longer recording and may begin or end "
"in the middle of a sentence. Do not complete cut-off sentences and do not "
"add any word, not even in a mark; leave an incomplete beginning or ending "
@ -227,7 +233,7 @@ def build_system(glossary, lang=DEFAULT_LANGUAGE, excerpt=False):
if not glossary:
return system
terms = "\n".join(f"- {term}" for term in glossary)
return f"{system}\n{prompts['glossary']}\n{terms}\n"
return f"{system}\n{prompts['glossary']}\n\n{terms}\n"
def read_glossary(path):

View file

@ -117,6 +117,8 @@ def test_build_system_appends_terms():
system = ak.build_system(["Kreml", "Egon Bahr"])
assert system.startswith(ak.SYSTEM)
assert "- Kreml\n- Egon Bahr" in system
# The model must not complete names from the glossary
assert "Ergänze keine Vornamen" in system
SAMPLE_GLOSSARIES = [
@ -576,6 +578,7 @@ def test_build_system_english():
system = ak.build_system(["Mearsheimer"], "en")
assert system.startswith(ak.SYSTEM_EN)
assert "Glossary:" in system and "- Mearsheimer" in system
assert "do not add first" in system
def test_main_english_prompts(sample_copy, monkeypatch, capsys):