你正在 中阶版 · 项目展示墙 · 案例 04 · 回到展示墙 · 中阶版主页 · 总入口

← 项目展示 · 项目 04(用本地 AI)的真实案例

🧮 本地 AI 数学题讲解器

小泽 · 14 岁 · Ollama + Qwen 7B + HTML/JS 网页

"妈妈担心我用 ChatGPT 直接抄答案。我就在电脑里装了 Qwen,做一个'先讲思路后讲解法'的助手。"

背景 · 这个孩子是谁

小泽 14 岁,初二,西安。他数学还不错,但做题目的时候经常"卡在一个地方,然后心烦,直接看答案"。妈妈发现他最近越来越依赖 ChatGPT,有时候是看思路,有时候是直接抄。妈妈说"我不想禁你用 AI,但也不想让你偷懒"。小泽自己也觉得有点问题。

动机 · 那个具体的"卡点"

小泽和妈妈讨论了一个晚上。妈妈说:"与其禁你用 AI,不如你自己做一个 AI,让它用你认可的方式帮你。" 小泽想到:我可以做一个"必须先回答思路、再给解法"的助手。这样即使我想偷懒,流程也逼着我思考。 他问了爸爸,爸爸的电脑足够新(2023 款),可以本地跑 7B 模型。

时间 + 工具

用了什么: Ollama(本地 AI 运行器)+ Qwen 2.5-7B 模型 + 自建网页(HTML/CSS/JS)

花了多久: 3 个周末。第 1 个周末装 Ollama + 配置,第 2–3 个周末写网页和 prompt。

大人帮忙了多少: 爸爸帮装 Ollama,讲了 5 分钟"API 是什么",其他都自己搞。

步骤 · 这个孩子是怎么做的

  1. 装 Ollama: 从 ollama.ai 官网下载,装到电脑。跑 ollama pull qwen:7b 下载 Qwen 7B 模型(6GB,下了一晚上)。
  2. 理解 API: Ollama 启动后会在 localhost:11434 开一个 API 端口。小泽学了怎么用 JavaScript 的 fetch 调这个 API。
  3. 设计流程: 关键的 UX 设计是两步:
    • 第 1 步:用户输入题目 → AI 问"你想到什么解题思路?"(逼着学生先想)
    • 第 2 步:用户输入思路 → AI 给出完整讲解(但不是直接答案)
  4. 写 prompt: 最重要的 prompt,要求 AI "先问问题,再讲解,全程不能直接给答案"。
  5. 写网页: 做了一个对话界面,左边是"我的输入",右边是"AI 的回应"。
  6. 测试改进: 第一版 AI 有时候还是直接给答案。改 prompt,加了 "你的目标是让学生理解,不是让他们抄"。

核心 prompt + 网页代码

【Ollama prompt】

你是一个数学辅导老师,但有一个很重要的原则:
【你永远不能直接给学生答案】

流程规则:
1. 学生给你一道数学题
2. 你必须先问:"你觉得这道题要用什么思路?"
   或 "你想到的第一步是什么?"
3. 只有当学生说出他们的思路后,你才能给讲解
4. 讲解时,逐步拆开思路,不要一次性给完整答案

示例:
【学生】求解 x^2 - 5x + 6 = 0
【你】这是一个二次方程。试试看,
  你觉得可以怎么解?能因式分解吗?
  还是想用求根公式?

【学生】感觉可以因式分解
【你】对!那我们一起来。6 = 2×3,
  5 = 2 + 3。所以 (x-2)(x-3) = 0。
  然后呢?

【学生】x = 2 或 x = 3
【你】完美!你已经掌握因式分解法了。

---

JavaScript 代码:
fetch('http://localhost:11434/api/generate', {
  method: 'POST',
  body: JSON.stringify({
    model: 'qwen:7b',
    prompt: `[系统提示]\n\n${systemPrompt}\n\n` +
            `[题目]\n${userInput}`,
    stream: false
  })
})
.then(res => res.json())
.then(data => {
  console.log(data.response);
  document.getElementById('output').textContent = data.response;
});

---

样例对话 · AI 真的是这样答的

小泽输入:二次函数 y = x^2 - 4x + 3,求顶点坐标。

嗯,这是一个二次函数问题。问问你:
你知道二次函数的顶点公式吗?还是想通过配方法求?
(AI 没有直接给答案,而是问他想用哪种方法)

小泽回:我想用配方法。

好!那我们一起来配方。
y = x^2 - 4x + 3
第一步,看 x^2 - 4x 这部分。问你,(-4)^2 / 4 是多少?
(还是在引导,不是直接做)

小泽回:是 4?

对!所以 y = (x^2 - 4x + 4) + 3 - 4
= (x - 2)^2 - 1
现在,顶点的 x 坐标是多少?
(让学生自己说出答案)

结果 · 真的发生了什么

这个孩子学到什么

小泽说:"原来 AI 不只是'给答案的工具',还可以是'帮我反思的工具'。如果你设计得好,AI 可以逼着你思考。而且用本地 AI,我不用担心隐私或网络问题。"他还加了一句:"Ollama 的速度比 ChatGPT 慢一些,但更稳定,而且完全在我自己的电脑里。感觉很安心。"

什么没成 · 改了几遍才好

第一版:直接把题目丢给 AI,AI 就讲解。太像 ChatGPT,没有区别。
第二版:加了"先问思路"的步骤,但 AI 经常不遵守规则,看到某些题目就想直接给答案。加强了 prompt。
第三版:稳定了一些,但小泽发现自己"看 AI 的问题"和"自己想"的区别不大。改 UI:AI 的问题用蓝色背景,让他有"这是我必须回答的"的感觉。
第四版:完全稳定。他甚至加了一个"提示我想了多久"的计时器,鼓励他在看 AI 的建议前先想 1 分钟。

你也想做?

这个项目用的是中阶版 · 项目 04「用本地 AI」

替换"数学讲解",可以是:英文作文批改官(Qwen 标注语法错误),物理公式推导(逐步讲解),化学方程式讲解编程 bug 找茬官(我写的代码哪里不对?先让我改改看)—— 任何"你想要半自动化、但又不想完全自动化"的学习场景。

→ 打开项目 04

← 看更多案例