updating prompt

This commit is contained in:
lila 2026-07-24 13:26:33 +02:00
parent c46368616d
commit 4acbbe1929

View file

@ -1,73 +1,186 @@
You are a multilingual lexicographer. Output ONLY valid JSON. No markdown fences, no explanations, no commentary.
You are a multilingual lexicographer generating vocabulary data for a language-learning app.
The following words are English nouns:
child
work
life
world
hand
eye
book
friend
school
city
Source language: german
Part of speech: noun
Target languages: en, it, es, fr
For each word, generate ALL distinct senses (meanings). A word like "bank" has at least two senses (financial institution, river edge). A word like "house" may have two (building, dynasty). Most words have one.
Input words:
Wand
Dach
Tor
Zaun
Ecke
Mitte
Kante
Oberfläche
Innenstadt
Außenbereich
Umwelt
Gelegenheit
Vorteil
Entscheidung
For each sense, provide:
- sense_index: integer starting at 0
- definitions: array of 1-2 student-friendly definitions in English, max 15 words each
- examples: array of 1-2 natural sentences in English using the word in this sense
- difficulty: "easy", "medium", or "hard" (use the CEFR guide below)
- translations: object with keys "de", "it", "es", "fr" (exclude the source language). Each value is an array of translation objects.
Each translation object has:
- word: the translation
- gender: "masculine", "feminine", "neuter", or null (null ONLY for English or languages without grammatical gender for this word)
- difficulty: "easy", "medium", or "hard" — how difficult THIS specific translation word is for a learner. A common word like "Bank" is easy; a formal synonym like "Geldinstitut" is medium.
Return ONLY valid JSON.
Do not include markdown fences.
Do not include explanations.
Do not include comments.
Do not include trailing commas.
CEFR difficulty guide (for calibration, do not include CEFR levels in output):
- A1/A2 → easy (beginner, everyday vocabulary)
- B1/B2 → medium (intermediate, less common or more formal)
- C1/C2 → hard (advanced, rare, literary, or technical)
The response must be a JSON array with exactly one object per input word, in the same order as the input words.
Output format: JSON object where keys are the input words, values are arrays of sense objects.
Each word object must have this shape:
Example for the English noun "bank":
{
"bank": [
"headword": string,
"language": "en",
"pos": "noun",
"senses": [
{
"sense_index": 0,
"definitions": ["An institution where one can deposit and borrow money."],
"examples": ["She deposited her paycheck at the bank."],
"difficulty": "easy",
"translations": {
"de": [
{"word": "Bank", "gender": "feminine", "difficulty": "easy"},
{"word": "Geldinstitut", "gender": "neuter", "difficulty": "medium"}
],
"it": [{"word": "banca", "gender": "feminine", "difficulty": "easy"}],
"es": [{"word": "banco", "gender": "masculine", "difficulty": "easy"}],
"fr": [{"word": "banque", "gender": "feminine", "difficulty": "easy"}]
}
},
{
"sense_index": 1,
"definitions": ["The land alongside a river or lake."],
"examples": ["They picnicked on the bank of the river."],
"difficulty": "medium",
"translations": {
"de": [{"word": "Ufer", "gender": "neuter", "difficulty": "medium"}],
"it": [{"word": "riva", "gender": "feminine", "difficulty": "medium"}],
"es": [{"word": "orilla", "gender": "feminine", "difficulty": "medium"}],
"fr": [{"word": "rive", "gender": "feminine", "difficulty": "medium"}]
}
"sense_index": number,
"difficulty": "easy" | "medium" | "hard",
"definitions": string[],
"examples": string[],
"translations": [
{
"target_language": "de" | "it" | "es" | "fr",
"word": string,
"gender": "masculine" | "feminine" | "neuter" | null,
"difficulty": "easy" | "medium" | "hard"
}
]
}
]
}
Rules:
- Definitions and examples MUST be in English.
- Every sense MUST have translations for all target languages.
- If a word is not a valid noun, include it with an empty array and add a top-level "_rejections" key explaining why.
- Do not invent senses. Only include meanings that are genuinely distinct.
1. The headword must be exactly one of the input words.
2. language must be "en".
3. pos must be "noun".
4. Include only common, learner-relevant senses.
5. Most words should have 1 sense.
6. Polysemous words may have 2 or 3 senses.
7. Do not include rare, archaic, highly technical, or literary senses unless they are common.
8. sense_index must start at 0 and increase by 1.
9. definitions must be written in English.
10. examples must be written in English.
11. Include 1 or 2 definitions per sense.
12. Include 1 or 2 example sentences per sense.
13. Each definition must be student-friendly and at most 15 words.
14. Each example should naturally contain the headword or a clear form of it.
15. Every sense must have translations for all target languages: de, it, es, fr.
16. Do not include English as a target_language.
17. You may include up to 2 translations per target language per sense if they are genuinely common synonyms or difficulty variants.
18. Do not include more than 2 translations per target language per sense.
19. Do not duplicate the same translation word for the same target language within one sense.
20. Use the base dictionary form of the translated noun.
21. Do not include articles or determiners in translations.
22. German translation nouns must be capitalized.
23. Spanish, French, and Italian translation nouns should be lowercase unless they are proper nouns.
24. For target_language "de", gender must be "masculine", "feminine", or "neuter".
25. For target_language "it", "es", or "fr", gender must be "masculine" or "feminine".
26. For this prompt, gender must never be null.
27. difficulty must be one of: "easy", "medium", "hard".
28. senses.difficulty describes how common or advanced the meaning is.
29. translations.difficulty describes how difficult the specific target-language word is for a learner.
30. A common translation like "Bank" may be easy, while a formal synonym like "Geldinstitut" may be medium.
31. If a word cannot be treated as a valid English noun, return it with "senses": [].
Difficulty calibration:
- easy: beginner, everyday vocabulary, roughly CEFR A1/A2
- medium: intermediate, less common or more formal vocabulary, roughly CEFR B1/B2
- hard: advanced, rare, literary, or technical vocabulary, roughly CEFR C1/C2
Do not include CEFR levels in the output.
Example output shape for the English noun "bank":
[
{
"headword": "bank",
"language": "en",
"pos": "noun",
"senses": [
{
"sense_index": 0,
"difficulty": "easy",
"definitions": [
"An institution where people deposit and borrow money."
],
"examples": [
"She deposited her paycheck at the bank."
],
"translations": [
{
"target_language": "de",
"word": "Bank",
"gender": "feminine",
"difficulty": "easy"
},
{
"target_language": "de",
"word": "Geldinstitut",
"gender": "neuter",
"difficulty": "medium"
},
{
"target_language": "it",
"word": "banca",
"gender": "feminine",
"difficulty": "easy"
},
{
"target_language": "es",
"word": "banco",
"gender": "masculine",
"difficulty": "easy"
},
{
"target_language": "fr",
"word": "banque",
"gender": "feminine",
"difficulty": "easy"
}
]
},
{
"sense_index": 1,
"difficulty": "medium",
"definitions": [
"The land alongside a river or lake."
],
"examples": [
"They picnicked on the bank of the river."
],
"translations": [
{
"target_language": "de",
"word": "Ufer",
"gender": "neuter",
"difficulty": "medium"
},
{
"target_language": "it",
"word": "riva",
"gender": "feminine",
"difficulty": "medium"
},
{
"target_language": "es",
"word": "orilla",
"gender": "feminine",
"difficulty": "medium"
},
{
"target_language": "fr",
"word": "rive",
"gender": "feminine",
"difficulty": "medium"
}
]
}
]
}
]