GPT-OSS 驱动的在线编程课 AI 助教:3 天打造追问式对话 API


在过去两周,我用 GPT-OSS 开源模型 搭建了一个 “追问式对话 API”,并把它应用在在线编程课程的场景中,效果非常接近一个真正的 AI 助教。本文完整记录了从需求分析到部署上线的全过程。


一、需求背景

在线编程课程的痛点:

  • 学生提出的问题重复度高,老师精力有限

  • 常见答案缺少“追问能力”,学生没能真正理解

  • 商业化 API 成本高,不适合大规模课程

基于 开源权重的 GPT-OSS,我们可以:

  • 零成本运行(替代收费 API)

  • 实现 追问式对话(更贴近人类答疑)

  • 支持 本地部署(保护隐私数据)


二、技术方案

核心流程:

  1. 数据准备
    收集课程中常见问答数据,并转化为 JSON 格式。

  2. 模型加载与调优

from transformers import AutoTokenizer, AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained("gpt-oss")
tokenizer = AutoTokenizer.from_pretrained("gpt-oss")

def ask(question: str):
    inputs = tokenizer(question, return_tensors="pt")
    outputs = model.generate(**inputs, max_length=512)
    return tokenizer.decode(outputs[0], skip_special_tokens=True)
  1. API 构建(FastAPI)
from fastapi import FastAPI

app = FastAPI()

@app.post("/qa")
def qa(user_input: str):
    return {"answer": ask(user_input)}

三、关键优化点

  • 追问式对话:通过保留上下文历史,让模型持续回答学生的追问。

  • 性能调优

    • 使用 LoRA 微调,在 1k 条课程数据上快速适配

    • 控制响应延迟 < 800 ms

  • 部署:基于 Docker 和 Uvicorn,便于快速扩展


四、效果展示

  1. 代码调试场景

    • 学生提问:Python 列表和集合有什么区别?

    • AI 助教回答:给出差异点,并提供示例代码。

    • 学生追问:什么时候应该用集合?

    • AI 助教继续:解释应用场景(去重、集合运算)。

  2. 面试准备场景

    • 输入:请解释哈希表和红黑树的区别

    • AI 助教输出:结构对比 + 应用场景,类似一份简洁的面试参考答案。


五、总结与展望

基于 GPT-OSS,我们在 3 天内就构建了一个可落地的 AI 助教 API

  • 符合在线编程教育的场景需求

  • 提供低成本、可控的本地化解决方案

  • 支持多轮追问,帮助学生真正理解问题

👉 完整实现代码与部署文档 已整理到 官网文章,有兴趣的同学可以参考并尝试。

本作品采用《CC 协议》,转载必须注明作者和本文链接
幂简集成
幂简集成
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
技术总监 @ 北京蜜堂有信科技有限公司
文章
186
粉丝
3
喜欢
12
收藏
14
排名:729
访问:9871
私信
所有博文
社区赞助商