这是AI问答助手项目系列第一篇,先讲理论架构与选型,后续会逐步更新代码实现、部署方案、踩坑总结。

一、项目要做什么

1、表层:对话系统(用户看到的)

实现一个对话系统,用户输入问题,系统输出答案,类似 ChatGPT 界面。
在这里插入图片描述

2、中层:推理与生成(大模型)

通过用户输入的问题和检索到资料进行推理,最后生成给用户的答案,核心能力来自大语言模型(LLM)Prompt(提示词工程),负责“理解问题 + 生成回答”。

3、底层:知识增强(关键差异点)

让AI回答“你的数据”而不是“它训练过的东西”,这里才是项目的核心价值

  • 知识库(文档 / 数据)
  • 检索系统(RAG)
  • 向量数据库

二、整个项目的宏观流程

1、技术调研(Why + How)

目标:搞清楚要用什么技术路线

回答3个问题:

(1)用不用大模型?

✔ 必须用(OpenAI / 开源模型)

(2)要不要私有知识?

✔ 要 → 必须用 RAG

(3)实时性要求?

实时性要求高,那么就选 → API模型
实时性要求低,那么就选 → 本地模型

最常见方案(推荐用):

大模型选择LLM(OpenAI / DeepSeek),需要自己实现的部分:

  • RAG(检索增强生成)
  • 向量数据库(FAISS / Chroma)
  • 后端(Python)
  • 前端(简单页面或CLI)

2、系统架构设计(最关键)

搭建一个标准RAG架构

用户问题
   ↓
Embedding(向量化)
   ↓
向量数据库检索(找相关文档)
   ↓
拼接Prompt
   ↓
LLM生成答案
   ↓
返回用户

可以理解成一句话: “先查资料,再让AI回答

3、工程搭建(开始动手)

技术选型(推荐新手),本人实现这个AI问答助手项目就是按照下面的技术选型搭建的。

模块 技术
语言 Python
LLM OpenAI / DeepSeek
向量库 FAISS
框架 LangChain(可选)
Web FastAPI

4、核心功能实现

一共分成4个子模块:

(1) 文档处理(数据准备)

其实就是你自己的本地知识库,自己搭建的测试验证的,可以先用txt文件,里面塞上你想作为本地知识库的文本内容。
关键点:每块 300~500 字,保证语义完整
输入:

PDF / Word / txt / 网页

输出:

切分后的文本块(chunk)

(2) 向量化(Embedding)

embedding 模型文本变成向量,把一段文字翻译成一组“有意义”的数字。这组数字像地图上的经纬度一样,标记了这句话的“语义位置”。语义相似的话,位置就靠得近。比如:

"Java 是一种编程语言"
↓
[0.123, -0.88, 0.55, ...]

(3) 向量数据库(检索核心)

向量数据库的作用就是找到用户输入问题的“最相关内容”,接上面的类比,就是找到跟用户输入问题的“语义位置”靠的最近的内容。
比如用户问:

Java 有什么特点?

系统会找:

“Java 是面向对象语言”
“Java 跨平台”

(4) LLM生成(最后一步)

大模型生成答案的过程:咱们自己搭建的这个系统拼接"问题 + 检索结果 → Prompt"发送给大模型,让模型生成回答。

5、测试与验证

完成上述4步以后,还必须验证3件事(测试):

(1)是否能答对?

正确率。测试AI问答助手回答问题正确的占总问题数的比例。

(2)是否胡说?

幻觉问题。测试AI问答助手看是否会“胡说”,明明本地知识库里没有答案的问题,它还给出了答案。

是否稳定?

多次提问一致性。多次提问同一个问题,看每次的答案是否都一样。

6、优化(进阶)

前面的步骤是搭建一个初步能用的AI问答助手,还有很多可以优化的地方,包括:

  • Prompt优化
  • 检索优化
  • Chunk优化
  • 多轮对话
  • Agent能力

核心难点

1、为什么要切分文本?

因为模型有上下文限制(简单理解为一个对话窗口可以输入和输出的最大内容限制),如果不切,那么搜索的结果可能不精准或者Token爆炸(模型要么直接报错说“输入太长”,要么只截取前面一小部分,后面的内容全丢了。)

2、RAG本质是什么?

RAG全称:Retrieval-Augmented Generation,是指对大语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。
RAG = 检索 + 生成。“模型先去找内容,再根据找到的内容回答问题。”不是“让AI变聪明”,而是 “把正确答案喂给AI”。

3、为什么不用数据库查?

如果用普通数据库→只能精确匹配
如果用向量数据库→能理解语义

➡️下一步

了解完核心理论与项目的整体架构后,下一步,我们聊聊模型选择的问题——【人工智能】《从零搭建AI问答助手项目(二):模型选择》

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐