Spaces:
Sleeping
Sleeping
prompt
Browse files- backend/config.py +34 -65
backend/config.py
CHANGED
@@ -45,76 +45,45 @@ curriculum_instructions = """
|
|
45 |
# Target language: {target_language}
|
46 |
# Proficiency level: {proficiency}
|
47 |
|
48 |
-
You are an AI-powered language learning assistant tasked with generating
|
49 |
|
50 |
-
###
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
2. **Break Down the Topic into Sub-topics (at least 5):**
|
56 |
-
- Divide the main topic into smaller, manageable sub-topics that progressively build on each other. Each sub-topic should be linked to specific keyword categories and cover key vocabulary and grammar points.
|
57 |
-
- Example:
|
58 |
-
- **Topic:** Restaurant Interactions
|
59 |
-
- Sub-topic 1: Ordering food
|
60 |
-
- Sub-topic 2: Asking about the menu
|
61 |
-
- Sub-topic 3: Making polite requests
|
62 |
-
|
63 |
-
3. **Define Keyword Categories and Descriptions for Each Sub-topic:**
|
64 |
-
- For each sub-topic, provide:
|
65 |
-
- 1–3 general-purpose categories (not just single words) that capture the core vocabulary or concepts. Categories should be broad and practical for {proficiency} learners (e.g., "greeting", "location", "food/dining", "directions", "numbers").
|
66 |
-
- A brief, precise, and simple description (exactly one sentence) explaining what the sub-topic covers and its purpose in the learning journey.
|
67 |
-
- If a suitable category cannot be determined, use a default such as "vocabulary" or "speaking" as the keyword.
|
68 |
-
- Example: For "Ordering food," the category might be "food/dining" and the description could be "Learn how to order food and drinks in a restaurant setting." For "Saying hello," use "greeting" and a description like "Practice common greetings and polite introductions."
|
69 |
-
- Avoid using keywords that are just single words (e.g., "hello", "where").
|
70 |
|
71 |
-
###
|
72 |
-
You should return a JSON object containing:
|
73 |
-
- \"lesson_topic\": The main lesson focus, written in {native_language}.
|
74 |
-
- \"sub_topics\": A list of at least 5 sub-topics, each with its own set of keyword categories and a description, written in {native_language}.
|
75 |
-
- Each sub-topic should have:
|
76 |
-
- \"sub_topic\": A brief title of the sub-topic in {native_language}.
|
77 |
-
- \"keywords\": A list of 1–3 general-purpose categories in {native_language}, relevant to the sub-topic.
|
78 |
-
- \"description\": A brief, precise, and simple one-sentence description of the sub-topic in {native_language}.
|
79 |
-
"""
|
80 |
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
# Target language: {target_language}
|
85 |
-
# Proficiency level: {proficiency}
|
86 |
|
87 |
-
|
|
|
|
|
|
|
88 |
|
89 |
-
|
90 |
-
|
91 |
-
-
|
92 |
-
-
|
93 |
-
-
|
94 |
|
95 |
-
###
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
-
|
100 |
-
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
3. **Avoid redundancy**:
|
110 |
-
- Select terms that are novel, useful, or not overly repetitive within the lesson.
|
111 |
-
- Prioritize terms that learners are likely to encounter again in real-world usage.
|
112 |
-
|
113 |
-
### Flashcard Format
|
114 |
-
Generate exactly **5 flashcards** as a **valid JSON array**, with each flashcard containing:
|
115 |
-
- `"word"`: A key word or phrase in {target_language} drawn from the lesson.
|
116 |
-
- `"definition"`: A learner-friendly explanation in {native_language}.
|
117 |
-
- `"example"`: A clear, natural sentence in {target_language} demonstrating the word **in context with the lesson**.
|
118 |
"""
|
119 |
|
120 |
exercise_mode_instructions = """
|
@@ -208,7 +177,7 @@ You will receive a user-provided **lesson topic, theme, or domain of interest**
|
|
208 |
Return a valid **JSON object** with the following structure:
|
209 |
- `"title"`: An engaging title in {native_language}.
|
210 |
- `"setting"`: A brief setup paragraph in {native_language} explaining the story’s background and relevance to the user’s interest.
|
211 |
-
- `"content"`: A list of **
|
212 |
- `"speaker"`: A named or role-based character label in {native_language} (e.g., "Narrator", "Captain Li", "The Botanist").
|
213 |
- `"target_language_text"`: The sentence or dialogue line in {target_language}.
|
214 |
- `"phonetics"`: A phonetic transcription (IPA, Pinyin, etc.), only if helpful or relevant for the target language.
|
|
|
45 |
# Target language: {target_language}
|
46 |
# Proficiency level: {proficiency}
|
47 |
|
48 |
+
You are an AI-powered language learning assistant tasked with generating an extensive, personalized curriculum. Your goal is to help the user learn {target_language} by designing a 25-lesson curriculum that reflects the user's goals, interests, and proficiency level. All outputs should be written in {native_language}.
|
49 |
|
50 |
+
### Curriculum Goals:
|
51 |
+
- Provide 25 lessons.
|
52 |
+
- Ensure logical progression from basic to advanced topics (according to {proficiency}).
|
53 |
+
- Align each lesson with a practical communication goal.
|
54 |
+
- Tailor vocabulary and sub-topics to the user’s intended use (e.g., work, travel, hobbies, daily life).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
|
56 |
+
### Instructions:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
|
58 |
+
1. **Define the Lesson Series (Overall Theme):**
|
59 |
+
- Choose a main theme relevant to the user's motivation for learning {target_language} (e.g., "Living in a new country", "Professional communication", "Traveling in {target_language}-speaking regions").
|
60 |
+
- The theme should guide the tone, content, and scope of the entire 25-lesson sequence.
|
|
|
|
|
61 |
|
62 |
+
2. **Divide the Curriculum into 25 Thematic Lessons:**
|
63 |
+
- Each lesson should have a clear focus (e.g., asking for help, describing your job, booking accommodation).
|
64 |
+
- Sequence lessons to build from foundational topics to more complex, specialized language use.
|
65 |
+
- Vary grammar, vocabulary, and communication functions across lessons to avoid repetition and ensure comprehensive coverage.
|
66 |
|
67 |
+
3. **Describe Each Lesson Clearly and Concisely:**
|
68 |
+
For each of the 25 lessons, provide:
|
69 |
+
- "sub_topic": A clear and practical lesson title in {native_language}.
|
70 |
+
- "keywords": A list of 1–3 high-level categories in {native_language} that describe the lesson focus (e.g., "directions", "daily routine", "formal conversation").
|
71 |
+
- "description": One sentence in {native_language} that explains what the learner will achieve or be able to do after completing the lesson. Be specific and learner-oriented.
|
72 |
|
73 |
+
### Output Format:
|
74 |
+
Return a valid JSON object with:
|
75 |
+
- "lesson_topic": The overall learning theme (in {native_language}).
|
76 |
+
- "sub_topics": A list of 25 items. Each item must include:
|
77 |
+
- "sub_topic": A short title of the lesson (in {native_language}).
|
78 |
+
- "keywords": A list of 1–3 general-purpose categories (in {native_language}).
|
79 |
+
- "description": One clear sentence (in {native_language}) describing the purpose of the lesson.
|
80 |
+
|
81 |
+
Avoid:
|
82 |
+
- Using overly generic or repetitive titles or descriptions.
|
83 |
+
- Keyword lists with only one-word entries (e.g., use "ordering in a restaurant" instead of "food").
|
84 |
+
- Abstract lessons with no real-world relevance.
|
85 |
+
|
86 |
+
Ensure the curriculum builds toward user fluency in relevant contexts.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
"""
|
88 |
|
89 |
exercise_mode_instructions = """
|
|
|
177 |
Return a valid **JSON object** with the following structure:
|
178 |
- `"title"`: An engaging title in {native_language}.
|
179 |
- `"setting"`: A brief setup paragraph in {native_language} explaining the story’s background and relevance to the user’s interest.
|
180 |
+
- `"content"`: A list of **10 segments**, each structured as:
|
181 |
- `"speaker"`: A named or role-based character label in {native_language} (e.g., "Narrator", "Captain Li", "The Botanist").
|
182 |
- `"target_language_text"`: The sentence or dialogue line in {target_language}.
|
183 |
- `"phonetics"`: A phonetic transcription (IPA, Pinyin, etc.), only if helpful or relevant for the target language.
|