AI大模型打卡学习:用Ollama搭建每日练习环境
想用AI大模型做打卡学习,不必每人配一台GPU机器。
只要有一台能联网的Linux服务器,部署Ollama并开放API,再写一个每天自动调用的简单脚本,就能把“每日一问”固定下来。
下面按服务器准备、模型部署、练习脚本编写和结果检查的顺序说明,适合零基础用户照着操作。
服务器与网络条件先确认
Ollama对硬件要求取决于模型大小。
做打卡学习这类短问答,7B左右的量化模型在普通CPU服务器上也能跑,但响应会慢一些;
如果服务器有GPU,推理速度会明显提升。
系统建议使用主流Linux发行版,并确保磁盘至少有10GB以上空闲空间用于存放模型文件。
登录服务器后先检查基础环境:
uname -m
free -h
df -h /
curl --version
确认架构、内存、磁盘和curl可用。
如果服务器在云上,安全组或防火墙需要放行Ollama默认的11434端口;
只在本机调用则不必对外开放。
安装Ollama并拉取练习用模型
Ollama官方提供一条安装脚本,执行后会自动注册系统服务:
curl -fsSL https://ollama.com/install.sh | sh
安装完成后检查服务状态:
systemctl status ollama
看到active (running)即表示服务已启动。
接着拉取一个适合问答的模型,例如:
ollama pull qwen2.5:7b
拉取时间取决于网络和模型大小。
完成后用一次简单对话验证:
ollama run qwen2.5:7b "用一句话解释什么是打卡学习"
能正常返回中文回答,说明模型和服务都可用。
如果命令卡住,先检查磁盘空间和网络,再查看服务日志:
journalctl -u ollama -n 50 --no-pager
让打卡脚本每天自动调用模型
打卡学习的核心是固定题目、固定时间、留下记录。
可以直接调用Ollama的HTTP接口,写一个每天生成一道练习题并保存回答的脚本。
先确认接口可用:
curl http://127.0.0.1:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "生成一道关于Linux基础命令的选择题,只输出题目和选项",
"stream": false
}'
返回JSON中response字段就是模型输出。
把这段调用写进脚本daily_quiz.sh:
#!/bin/bash
DATE=$(date +%F)
OUT="/root/quiz/$DATE.md"
mkdir -p /root/quiz
curl -s http://127.0.0.1:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "生成一道Linux基础命令选择题,输出题目、四个选项和答案",
"stream": false
}' | python3 -c "import sys,json; print(json.load(sys.stdin)['response'])" > "$OUT"
echo "已生成 $OUT"
给脚本执行权限,并用crontab -e加入定时任务,例如每天早上八点运行:
0 8 * * * /bin/bash /root/daily_quiz.sh
这样每天会生成一个以日期命名的Markdown文件,方便回看和统计打卡记录。
常见报错与避坑提醒
接口返回连接失败:先确认Ollama服务在运行,再用ss -lntp | grep 11434检查端口监听。
如果脚本在另一台机器上调用,需要把请求地址改成服务器内网IP,并在Ollama服务配置中允许外部访问。
模型回答很慢或超时:CPU推理本身较慢,打卡练习可以把stream设为false并适当延长脚本超时时间;
不要同时拉取多个大模型,避免内存不足。
定时任务没有生成文件:cron环境变量与登录shell不同,脚本里的命令尽量写绝对路径,并检查/var/log/cron或系统日志确认任务是否执行。
模型输出格式不稳定:在提示词中明确要求“只输出题目和选项”,仍可能偶尔多出解释文字。
打卡学习场景可以接受少量偏差,若需要严格格式,可在脚本中增加简单过滤,而不是反复重试消耗资源。
检查打卡是否真正生效
运行一次脚本后,检查生成目录:
ls -lh /root/quiz/
cat /root/quiz/$(date +%F).md
文件存在且内容包含题目和答案,说明调用链路正常。
再等一个定时周期,确认第二天自动新增文件。
如果希望每天记录完成情况,可以在脚本末尾追加一行打卡时间:
echo "完成时间:$(date '+%F %T')" >> "$OUT"
这样既保留了模型生成的练习内容,也有可核验的执行记录。
整个方案的重点不是模型多大,而是把调用固定成每天可重复的动作;
先跑通一次手动调用,再交给定时任务,出错时从服务状态、端口和日志三处排查即可。