标签

AI答疑系统升级:从FAQ到教材知识库实战

发布时间:2026-07-04 10:12阅读:2

上一期我们绘制了AI教育助手的全景蓝图,并实现了Streamlit原型。但该Demo存在明显局限:答疑完全依赖大模型的内置知识,无法利用用户自己的教材、课件或考纲。

真正的AI答疑系统,关键不在于模型‘知识量’多大,而在于它能否精准理解你提供的教材内容,并给出有据可依的回答。

本期我们将让智能答疑真正落地:从基础FAQ匹配,到向量检索增强生成(RAG),最终构建一个能‘啃透’教材的知识库答疑系统。

先明确我们的演进路径:

三层并非替代,而是递进:

- 第1层解决‘有标准答案’的问题(FAQ)

- 第2层解决‘语义泛化’的问题(换问法仍能准确响应)

- 第3层解决‘生成式答疑’的问题(需推理、总结、对比)

本期我们将完整实现这三层,并通过统一接口对外提供服务。

在编码前,先搭建目录与依赖:

项目结构:

依赖(requirements.txt):

我们用一个类SmartQASystem统一封装三层逻辑。核心代码如下(qa_system.py):

为便于管理,将索引构建独立拆分(build_index.py):

提供简洁高效的答疑界面(streamlit_app.py):

knowledge_base/数学_三角函数.txt:

knowledge_base/英语_时态总结.txt:

knowledge_base/物理_牛顿定律.txt:

准备就绪后,按以下步骤运行:

测试问答示例:

问:‘正弦30度等于多少?’→ 第1层命中(关键词直接匹配三角函数文件)

问:‘怎么算三角形的角度?’→ 第2层命中(向量检索语义关联至三角函数段落)

问:‘力的公式是什么,给我举个例子’→ 第3层命中(RAG从牛顿定律段落检索并生成含示例的回答)

这里有几个关键设计值得说明:

为何选择ChromaDB而非FAISS?

ChromaDB为纯Python实现,无需编译C++,仅需pip一键安装。在教育场景中(知识库通常仅几千至几万条段落),其性能完全胜任。且内置OpenAI嵌入函数,无需手动调用API。

为何采用三层递进而非纯RAG?

并非所有问题都需要大模型生成。FAQ匹配速度极快(<1ms),且对明确事实类问题(如‘氢元素的原子序数是多少’),直接返回教材原文更高效、更准确。

知识库如何更新?

新增教材时,只需将.txt文件放入knowledge_base目录,重新运行build_index.py即可。生产环境可配置为定时任务或Webhook触发。

至此,我们已拥有一个能‘消化’教材的答疑系统,但仍可优化:

这些改进将在后续篇章中结合实际场景逐步落地。

本期我们将答疑系统从‘大模型裸聊’升级为‘有教材支撑’的三层架构:

核心代码不足150行,一个下午即可运行。下一期我们将进入个性化学习路径推荐,结合知识图谱与用户画像,为每位学生定制专属学习路线。

AI教育/学习助手开发 · 第2期 · CV技术笔记 · 2026