99 lines
3.3 KiB
Markdown
99 lines
3.3 KiB
Markdown
Please generate scene outlines based on the following course requirements.
|
|
|
|
---
|
|
|
|
## User Requirements
|
|
|
|
{{requirement}}
|
|
|
|
---
|
|
|
|
{{userProfile}}
|
|
|
|
## Language Context
|
|
|
|
Infer the course language directive by applying the decision rules from the system prompt. Key reminders:
|
|
- Requirement language = teaching language (unless overridden by explicit request or learner context)
|
|
- Foreign language learning → teach in user's native language, not the target language
|
|
- PDF language does NOT override teaching language — translate/explain document content instead
|
|
|
|
---
|
|
|
|
## Reference Materials
|
|
|
|
### PDF Content Summary
|
|
|
|
{{pdfContent}}
|
|
|
|
### Available Images
|
|
|
|
{{availableImages}}
|
|
|
|
### Web Search Results
|
|
|
|
{{researchContext}}
|
|
|
|
{{teacherContext}}
|
|
|
|
---
|
|
|
|
## Output Requirements
|
|
|
|
Please automatically infer the following from user requirements:
|
|
|
|
- Course topic and core content
|
|
- Target audience and difficulty level
|
|
- Course duration (default 15-30 minutes if not specified)
|
|
- Teaching style (formal/casual/interactive/academic)
|
|
- Visual style (minimal/colorful/professional/playful)
|
|
|
|
Then output your response as a single JSON object.
|
|
|
|
**Top-level shape — this is what you MUST return:**
|
|
|
|
```json
|
|
{
|
|
"languageDirective": "2-5 sentence instruction describing the course language behavior",
|
|
"courseTitle": "concise course name, ≤30 chars, in the teaching language",
|
|
"outlines": [ /* array of scene objects, schema described below */ ]
|
|
}
|
|
```
|
|
|
|
Never return a bare array. Never omit `languageDirective` or `courseTitle`. All three keys are required.
|
|
|
|
**Each scene inside the `outlines` array has this minimum shape:**
|
|
|
|
```json
|
|
{
|
|
"id": "scene_1",
|
|
"type": "slide" | "quiz" | "interactive" | "pbl",
|
|
"title": "Scene Title",
|
|
"description": "Teaching purpose description",
|
|
"keyPoints": ["Point 1", "Point 2", "Point 3"],
|
|
"order": 1
|
|
}
|
|
```
|
|
|
|
### Special Notes
|
|
|
|
- **quiz scenes must include quizConfig**:
|
|
```json
|
|
"quizConfig": {
|
|
"questionCount": 2,
|
|
"difficulty": "easy" | "medium" | "hard",
|
|
"questionTypes": ["single", "multiple"]
|
|
}
|
|
```
|
|
{{#if hasSourceImages}}
|
|
- **If source images are available**, add `suggestedImageIds` to relevant slide scenes. Only use image IDs listed under Available Images.
|
|
{{/if}}
|
|
- **Interactive scenes**: If a concept benefits from hands-on simulation/visualization, use `"type": "interactive"` with `widgetType` and `widgetOutline` fields. Limit to 1-2 per course.
|
|
- Select widgetType based on concept: simulation (physics/chem), diagram (processes), code (programming), game (practice), visualization3d (3D models)
|
|
- Provide appropriate widgetOutline for the widget type
|
|
- **Scene count**: Based on inferred duration, typically 1-2 scenes per minute
|
|
- **Quiz placement**: Recommend inserting a quiz every 3-5 slides for assessment
|
|
- **Language**: Infer from the user's requirement text and context, then output all content in the inferred language
|
|
- **If web search results are provided**, reference specific findings and sources in scene descriptions and keyPoints. The search results provide up-to-date information — incorporate it to make the course content current and accurate.
|
|
|
|
**Final reminder**: your entire response must be a JSON **object** with exactly three top-level keys — `languageDirective` (string), `courseTitle` (string, ≤30 chars, in the teaching language), and `outlines` (array). Do not return a bare array. Do not wrap in prose or code fences.
|