AI+教育应用教程:从零搭建一个智能问答教学助手
想给课程或培训做一个能自动回答学生问题的AI助手,不一定需要算法团队。
只要有一台普通云服务器、一个开源模型和一点耐心,按下面的步骤就能搭出一个可用的问答教学助手。
本文从零开始,覆盖环境准备、模型部署、接口对接和效果验证,适合教师、教务人员或刚接触运维的开发者。
先想清楚:你的教育助手要解决哪类问题
动手之前,先明确使用场景,否则容易把时间花在调模型上。
常见三类需求:
- 课程答疑:学生反复问概念、作业要求、考试范围,助手能基于课程资料回答。
- 知识点检索:输入关键词,返回相关讲义段落或视频时间点。
- 练习批改辅助:对主观题给出参考评分和修改建议。
本文以第一类“课程答疑”为例,部署一个基于开源模型和检索增强的问答助手。
你需要准备:一台2核4G以上的Linux云服务器(Ubuntu 22.04或Debian 12)、一个域名(可选)、以及课程相关的文本资料(PDF或Word转成纯文本)。
部署环境:装好Docker和基础依赖
用Docker可以避免模型依赖冲突。
以Ubuntu为例,先更新系统并安装Docker:
sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker
验证Docker是否正常:
docker run --rm hello-world
如果看到“Hello from Docker!
”说明安装成功。
接着拉取一个轻量级开源模型服务镜像,例如Ollama,它支持多种小参数模型,适合4G内存的机器:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
拉取一个适合中文问答的小模型(这里以qwen2:1.5b为例,实际可选模型请以镜像内ollama list为准):
docker exec -it ollama ollama pull qwen2:1.5b
拉取完成后,测试模型是否能响应:
curl http://localhost:11434/api/generate -d '{"model":"qwen2:1.5b","prompt":"什么是光合作用?","stream":false}'
如果返回一段中文解释,说明模型服务正常。
让助手“懂”你的课程:接入课程资料
通用模型不知道你的讲义内容,需要把课程文本喂给它。
简单做法是使用检索增强生成(RAG):把课程资料切片存入向量库,提问时先检索相关片段,再让模型基于片段回答。
可以用开源工具如AnythingLLM或FastGPT,它们提供Docker部署和可视化上传资料。
以AnythingLLM为例,拉取镜像并运行:
docker run -d -p 3001:3001 -v anythingllm:/app/server/storage --name anythingllm mintplexlabs/anythingllm
浏览器访问http://服务器IP:3001,按向导设置管理员账号。
在设置中选择LLM提供商为“Ollama”,地址填http://宿主机IP:11434(如果容器网络不通,可改用http://172.17.0.1:11434),模型选择刚才拉取的qwen2:1.5b。
然后新建工作区,上传课程PDF或TXT文件,系统会自动切片和向量化。
上传后在工作区提问“作业提交截止时间是什么”,观察是否引用资料回答。
对外提供访问:配置反向代理和HTTPS
默认3001端口直接暴露不安全,建议用Nginx做反向代理并加HTTPS。
安装Nginx:
sudo apt install -y nginx
创建配置文件/etc/nginx/sites-available/edu-ai:
server {
listen 80;
server_name ai.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
启用配置并重载:
sudo ln -s /etc/nginx/sites-available/edu-ai /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
如需HTTPS,可用Certbot申请免费证书:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d ai.yourdomain.com
按提示完成域名验证即可。
完成后用浏览器访问域名,确认能打开助手界面。
避坑指南:新手常遇到的三个问题
- 模型响应慢或内存不足:1.5B模型在4G内存机器上可能吃紧,建议关闭其他服务,或换用更小的模型(如qwen2:0.5b)。如果频繁OOM,增加swap或升级到8G内存。
- 容器内无法连接Ollama:AnythingLLM容器内访问
localhost:11434会失败,必须用宿主机IP或Docker网桥地址。可以用docker inspect ollama | grep IPAddress查看Ollama容器IP,但更稳妥的是用--network host模式运行Ollama。 - 上传资料后回答不准确:检查切片大小和检索数量。默认切片可能过大,在AnythingLLM工作区设置中把“文本块大小”调小到500字符左右,并提高检索返回条数到4-6条。
验证效果与后续优化
用课程中真实出现的问题测试,例如“第三章的重点是什么”“实验报告格式要求”。
如果回答能引用上传资料中的原句,说明检索生效。
如果回答泛泛而谈,回到工作区查看检索到的片段是否相关,必要时补充资料或调整切片。
日常维护只需注意:定期备份anythingllm数据卷、监控服务器内存使用、更新模型时先在小范围测试。
这个方案适合小规模课程答疑,不承诺高并发;
如果同时使用人数较多,需要进一步做负载测试和模型量化优化。
常见疑问
没有GPU能用吗?
可以。本文示例使用CPU推理,响应速度较慢但能满足低频答疑。如果追求更快响应,可考虑租用带GPU的云服务器,但成本会上升。
课程资料是扫描版PDF怎么办?
需要先做OCR转成文字。可以用开源工具如Tesseract,或在上传前用办公软件导出为可复制文本的PDF。
助手会泄露学生隐私吗?
所有数据存储在你自己服务器的数据卷中,不会自动上传到外部。但建议不要上传包含学生姓名、学号等敏感信息的资料,或在问答中避免输入个人身份信息。