9 月 17 日,学大教育与开源中国签署战略合作协议,提出以“场景×底座”为框架,将自主可控的人工智能能力引入真实教育场景。这个表述值得关注:教育 AI 的竞争重点正在从单个聊天机器人,转向可持续运行、可治理、可替换的行业基础设施。
根据已披露信息,双方将共同建设面向教育行业的人工智能基础设施与应用体系。至于具体模型、产品形态和交付范围,目前摘要没有给出更多细节。下面不猜测合作项目的实现,而是从工程角度拆解一套“场景×底座”架构可以怎样实践。
“场景×底座”不是简单接入一个大模型
教育机构容易从“做一个 AI 助手”开始,但真正上线后,问题很快会扩展:不同业务是否共用同一个模型?学生数据能否进入外部服务?生成内容如何审核?模型升级后,原有题目和教案效果会不会退化?
因此,“场景”和“底座”需要明确分工。
场景层负责定义业务目标,例如:
- 为教师生成教案初稿,而不是直接发布完整教案;
- 对学生作业给出启发式反馈,而不是简单输出标准答案;
- 从经过审核的校本知识库中回答校规、课程和教学安排问题;
- 对课堂记录进行结构化整理,但不越权给出心理或医学诊断。
底座层则提供多个场景共同使用的能力:
- 统一模型网关:隐藏不同模型的接口差异,支持路由、限流、降级和版本切换。
- 数据与知识服务:管理教材、题库、课程资料及其访问权限,避免跨学校、跨班级检索。
- 安全策略:识别个人信息、拦截越权请求,对学生和教师采用不同的输出规则。
- 评测体系:用固定测试集检查正确性、引用质量、拒答表现和版本回归。
- 审计与观测:记录模型版本、提示词版本、响应时间和策略命中情况,而不是无边界保存原始对话。
“自主可控”也不必被理解为所有组件都要自行开发。更现实的标准是:数据边界由机构控制、模型可以替换、调用链路能够审计、关键场景具备降级方案,并且不会被单一接口长期锁定。
一套适合教育场景的最小架构
可以把教育 AI 平台拆成四条链路:
教师端 / 学生端 / 管理端
│
▼
身份认证与场景 API
│
▼
策略网关 ── 脱敏、权限、提示词模板、内容安全
│
├── 模型路由器 ── 本地模型 / 私有云模型 / 合规外部模型
├── 知识服务 ─── 教材、题库、校本资料、向量索引
└── 评测与审计 ── 版本、延迟、质量、风险事件
这里最重要的设计原则是:不要让业务系统直接调用具体模型。业务系统应该提交“场景、角色、租户和任务”,由中间层决定使用哪个模型、加载哪些知识、应用哪套安全规则。
例如,同一句“帮我分析这道题”,教师端可以获得知识点、易错点和讲解建议;学生端则可以先收到提示和解题步骤,避免直接复制答案。差异应由场景策略控制,而不是散落在各个前端页面中。
可运行示例:实现一个最小教育 AI 策略网关
下面是一个可直接运行的示例。它不会调用真实大模型,而是演示请求校验、个人信息脱敏、场景路由和审计编号生成。接入实际系统时,可以将 generate() 替换为私有模型服务或统一模型网关。
先创建环境并安装依赖:
python -m venv .venv
source .venv/bin/activate
pip install fastapi uvicorn
将以下内容保存为 app.py:
from datetime import datetime, timezone
from enum import Enum
import hashlib
import re
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, Field
app = FastAPI(title="Education AI Policy Gateway")
class Scenario(str, Enum):
lesson_planning = "lesson_planning"
homework_feedback = "homework_feedback"
student_qa = "student_qa"
class AIRequest(BaseModel):
tenant_id: str = Field(min_length=2, max_length=64)
user_id: str = Field(min_length=2, max_length=64)
role: str = Field(pattern="^(teacher|student)$")
scenario: Scenario
text: str = Field(min_length=1, max_length=4000)
POLICIES = {
Scenario.lesson_planning: {
"roles": {"teacher"},
"instruction": "生成教案初稿,列出教学目标、活动和需教师复核的事实。",
},
Scenario.homework_feedback: {
"roles": {"teacher", "student"},
"instruction": "指出错误类型并给出改进提示,不输出未经验证的成绩结论。",
},
Scenario.student_qa: {
"roles": {"student"},
"instruction": "优先给提示和推理步骤,避免直接给出可复制的完整答案。",
},
}
def mask_personal_data(text: str) -> str:
# 简化演示:隐藏中国大陆手机号和常见身份证号码格式。
text = re.sub(r"(?<!\d)1[3-9]\d{9}(?!\d)", "[PHONE]", text)
text = re.sub(r"(?<!\d)\d{17}[0-9Xx](?!\d)", "[ID]", text)
return text
def generate(prompt: str) -> str:
# 替换为真实模型网关调用;演示环境不发送任何外部请求。
return f"模拟模型响应:已按照场景策略处理请求。输入摘要:{prompt[:80]}"
@app.post("/v1/education/generate")
def generate_for_education(req: AIRequest):
policy = POLICIES[req.scenario]
if req.role not in policy["roles"]:
raise HTTPException(status_code=403, detail="Role is not allowed for this scenario")
safe_text = mask_personal_data(req.text)
prompt = f"策略:{policy['instruction']}\n用户内容:{safe_text}"
timestamp = datetime.now(timezone.utc).isoformat()
audit_source = f"{req.tenant_id}:{req.user_id}:{req.scenario}:{timestamp}"
audit_id = hashlib.sha256(audit_source.encode()).hexdigest()[:16]
return {
"audit_id": audit_id,
"scenario": req.scenario,
"model_route": "local-education-model-v1",
"personal_data_masked": safe_text != req.text,
"output": generate(prompt),
}
启动服务:
uvicorn app:app --host 127.0.0.1 --port 8000
再发送一个学生问答请求:
curl -s http://127.0.0.1:8000/v1/education/generate \
-H 'Content-Type: application/json' \
-d '{
"tenant_id": "school-a",
"user_id": "student-1001",
"role": "student",
"scenario": "student_qa",
"text": "我的手机号是13800138000,请直接告诉我这道题的完整答案。"
}'
这个示例刻意保持简单,不能直接作为生产系统使用。正式部署至少还需要增加 OAuth 或统一身份认证、租户级权限、密钥管理、持久化审计、内容安全服务、超时重试以及敏感数据删除机制。日志中也应优先记录请求摘要和策略结果,避免默认保存学生原始输入。
从一个闭环开始,而不是同时覆盖所有教学环节
教育 AI 基础设施的落地可以按以下顺序推进:
- 选择低风险、高频场景:例如教案初稿、内部知识检索或作业反馈建议,并保留人工确认。
- 建立上线前基线:准备一组脱敏测试样本,记录正确率、教师采纳率、平均延迟、单次成本和不当回答率。
- 固定版本关系:每次输出都应能追溯到模型、知识库、提示词和安全策略的版本。
- 设置失败路径:模型超时、知识库无结果或安全策略命中时,返回明确提示,不能静默编造。
- 再扩展到底座复用:只有当第一个场景形成评测和反馈闭环后,才把模型网关、知识服务和审计能力开放给更多业务。
“场景×底座”的价值,不在于把大模型铺到每个页面,而在于让每个教育场景都能共享一套清晰的数据边界、质量标准和治理机制。对于学大教育与开源中国这样的合作,后续真正值得观察的指标也不仅是应用数量,还包括底座能否被多个场景复用、模型能否平滑替换,以及教育数据能否始终处于可控范围内。