Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
- 创建 types.ts 定义完整的类型系统 - 重写 DocumentRenderer.tsx 修复语法错误 - 重写 QuizRenderer.tsx 修复语法错误 - 重写 PresentationContainer.tsx 添加类型守卫 - 重写 TypeSwitcher.tsx 修复类型引用 - 更新 index.ts 移除不存在的 ChartRenderer 导出 审计结果: - 类型检查: 通过 - 单元测试: 222 passed - 构建: 成功
197 lines
5.3 KiB
YAML
197 lines
5.3 KiB
YAML
# ZCLAW Pipeline - Classroom Generator
|
|
# 互动课堂生成器:输入课题,自动生成完整互动课堂内容
|
|
|
|
apiVersion: zclaw/v1
|
|
kind: Pipeline
|
|
metadata:
|
|
name: classroom-generator
|
|
displayName: 互动课堂生成器
|
|
category: education
|
|
industry: education
|
|
description: 输入课题,自动生成结构化大纲、互动场景和课后测验
|
|
tags:
|
|
- 教育
|
|
- 课件
|
|
- 自动生成
|
|
icon: 📚
|
|
author: ZCLAW
|
|
version: 1.0.0
|
|
|
|
spec:
|
|
# 输入参数定义
|
|
inputs:
|
|
- name: topic
|
|
type: string
|
|
required: true
|
|
label: 课题名称
|
|
placeholder: 例如:牛顿第二定律
|
|
validation:
|
|
min_length: 2
|
|
max_length: 100
|
|
|
|
- name: difficulty
|
|
type: select
|
|
required: false
|
|
label: 难度等级
|
|
default: 中级
|
|
options:
|
|
- 初级
|
|
- 中级
|
|
- 高级
|
|
|
|
- name: scene_count
|
|
type: number
|
|
required: false
|
|
label: 场景数量
|
|
default: 5
|
|
validation:
|
|
min: 1
|
|
max: 20
|
|
|
|
- name: export_formats
|
|
type: multi-select
|
|
required: false
|
|
label: 导出格式
|
|
default: [html]
|
|
options:
|
|
- html
|
|
- markdown
|
|
- json
|
|
|
|
# 执行步骤
|
|
steps:
|
|
# Step 1: 解析课题,生成大纲
|
|
- id: generate_outline
|
|
description: 分析课题并生成课程大纲
|
|
action:
|
|
type: llm_generate
|
|
template: |
|
|
你是一位专业的教育内容设计师。请为以下课题设计一个结构化的课程大纲。
|
|
|
|
课题: {{topic}}
|
|
难度: {{difficulty}}
|
|
场景数量: {{scene_count}}
|
|
|
|
请生成一个 JSON 格式的大纲,包含以下结构:
|
|
{
|
|
"title": "课程标题",
|
|
"description": "课程简介",
|
|
"outline": {
|
|
"items": [
|
|
{"title": "章节1标题", "description": "章节1描述"},
|
|
{"title": "章节2标题", "description": "章节2描述"}
|
|
]
|
|
}
|
|
}
|
|
input:
|
|
topic: ${inputs.topic}
|
|
difficulty: ${inputs.difficulty}
|
|
scene_count: ${inputs.scene_count}
|
|
json_mode: true
|
|
temperature: 0.7
|
|
max_tokens: 2000
|
|
|
|
# Step 2: 并行生成场景
|
|
- id: generate_scenes
|
|
description: 为每个大纲章节生成互动场景
|
|
action:
|
|
type: parallel
|
|
each: ${steps.generate_outline.output.outline.items}
|
|
max_workers: 4
|
|
step:
|
|
id: scene_item
|
|
action:
|
|
type: llm_generate
|
|
template: |
|
|
为以下课程章节生成一个互动教学场景:
|
|
|
|
课题: ${inputs.topic}
|
|
章节: {{item.title}}
|
|
章节描述: {{item.description}}
|
|
难度: ${inputs.difficulty}
|
|
|
|
生成 JSON 格式的场景内容:
|
|
{
|
|
"title": "场景标题",
|
|
"content": "场景内容描述",
|
|
"interaction": {
|
|
"type": "quiz|discussion|demonstration",
|
|
"prompt": "互动提示",
|
|
"options": ["选项1", "选项2"] (如果是 quiz)
|
|
},
|
|
"key_points": ["要点1", "要点2", "要点3"]
|
|
}
|
|
input:
|
|
item: ${item}
|
|
index: ${index}
|
|
json_mode: true
|
|
temperature: 0.8
|
|
max_tokens: 1500
|
|
|
|
# Step 3: 生成课后测验
|
|
- id: generate_quiz
|
|
description: 根据场景内容生成测验题
|
|
action:
|
|
type: llm_generate
|
|
template: |
|
|
基于以下课程场景生成一套课后测验:
|
|
|
|
课题: ${inputs.topic}
|
|
场景数量: ${steps.generate_scenes.output | length}
|
|
|
|
生成 5 道选择题的 JSON 格式测验:
|
|
{
|
|
"questions": [
|
|
{
|
|
"question": "问题内容",
|
|
"options": ["A选项", "B选项", "C选项", "D选项"],
|
|
"correct": 0,
|
|
"explanation": "答案解释"
|
|
}
|
|
]
|
|
}
|
|
input:
|
|
topic: ${inputs.topic}
|
|
scene_count: ${steps.generate_scenes.output | length}
|
|
json_mode: true
|
|
temperature: 0.6
|
|
max_tokens: 2000
|
|
|
|
# Step 4: 渲染课堂数据
|
|
- id: render_classroom
|
|
description: 组装完整的课堂数据结构
|
|
action:
|
|
type: classroom_render
|
|
input: |
|
|
{
|
|
"title": ${steps.generate_outline.output.title},
|
|
"description": ${steps.generate_outline.output.description},
|
|
"outline": ${steps.generate_outline.output.outline},
|
|
"scenes": ${steps.generate_scenes.output},
|
|
"quiz": ${steps.generate_quiz.output}
|
|
}
|
|
|
|
# Step 5: 导出文件
|
|
- id: export_files
|
|
description: 导出指定格式的文件
|
|
action:
|
|
type: file_export
|
|
formats: ${inputs.export_formats}
|
|
input: ${steps.render_classroom.output}
|
|
|
|
# 输出映射
|
|
outputs:
|
|
classroom_id: ${steps.render_classroom.output.id}
|
|
title: ${steps.render_classroom.output.title}
|
|
preview_url: ${steps.render_classroom.output.preview_url}
|
|
export_files: ${steps.export_files.output}
|
|
|
|
# 错误处理
|
|
on_error: stop
|
|
|
|
# 超时设置
|
|
timeout_secs: 300
|
|
|
|
# 并行工作线程上限
|
|
max_workers: 4
|