Files
openmaic/OpenMAIC/packages/@openmaic/generation/templates/requirements-to-outlines/user.md
2026-08-16 14:58:47 +08:00

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.