零代码搭建 RAG 问答系统:2 小时搞定前端 + 服务端全流程
本教程将带你使用 Cursor(一款 AI 编程助手)在一行代码都不写的情况下,搭建一个可用的基于 RAG 的 AI 问答网站。整个过程只需约 2 小时,你只需要用自然语言向 Cursor 描述需求,它就能自动创建网页前端和服务端,并处理多数调试工作。
一、准备工作
- 安装并打开 Cursor(下载地址可在官网获取)。
- 准备好一个可用的 API Key(例如百度千帆平台的 API Key),后续会用到。
- 确保本地网络可以访问模型平台(如千帆、阿里通义等)。
小提示: 如果你不清楚大模型 API 的调用方式,可以先到对应平台(如百度千帆、阿里灵积)查看 API 文档,示例代码在后续步骤会直接交给 Cursor 处理。
二、前端搭建:让 Cursor 帮你生成网页
-
告诉 Cursor 你要一个什么网页
例如:帮我创建一个 RAG 问答网页,包含输入框、发送按钮和对话气泡展示区,顶部导航栏显示“我的智能问答”。
Cursor 会立刻创建 HTML、CSS、JS 文件,并展示预览。 -
按需调整样式
你可以继续提要求,比如:“顶部导航栏的文字改成‘企业知识助手’”、“输入框宽度放大到 600 像素,高度增加到 150 像素”、“去掉页面右下角的页脚信息”。Cursor 会自动修改对应代码并实时更新预览。 -
最终效果检查
调整到基本满意后,你就能得到一个类似下图的简易问答页面(截图示意):
小提示: 搭建 demo 不需要追求 100% 完美 UI,重点是把功能跑通。后续可以通过细化指令持续优化。
三、服务端搭建:第一次尝试(失败)
RAG 问答的原理:
RAG (Retrieval-Augmented Generation) 是基于已有知识库,先检索与用户问题最相关的文本片段,再将文本和问题组装成提示词发给大模型,从而得到更准确、不瞎答的答案。
我直接给 Cursor 一条笼统的指令:
这个页面中的问答功能是基于 RAG 实现的,我要在本地搭建一个服务端,你来帮我创建相关的文件并写进去对应代码,要有接口,向量化模型我想用 BGE,语言模型我要用 qwen 的。
结果:Cursor 很快写好了代码,但运行后 各种报错(依赖缺失、服务无法启动、接口调用失败)。
我意识到指令太模糊,它生成了大量不规范代码。于是我让 Cursor 删掉所有服务端文件,重新开始。
常见问题: 为什么第一次会失败?
答案:因为 Cursor 在接到一个复杂、笼统的任务时,容易生成冗余或不符合实际环境的代码。后续我们需要像真工程师一样,拆分步骤,逐个实现。
四、服务端搭建:第二次尝试(成功)
4.1 制定步骤
如果你不清楚工程师应该怎么做,可以先问另一个大模型(如 ChatGPT):“用 Python 搭建一个 RAG 问答服务端,一般分哪几步?” 然后将得到的步骤发给 Cursor。
4.2 让 Cursor 逐步执行
-
创建项目结构和核心文件
指令示例:在当前目录下创建一个名为 ‘rag_server’ 的文件夹,里面创建一个 app.py 用于主入口,一个 rag.py 用于检索逻辑,一个 config.py 用于配置参数。并写入基础的 Flask 框架代码。
Cursor 会创建文件并写入代码。 -
安装依赖并测试
Cursor 会自动检测缺少的库(如 flask, sentence-transformers, requests 等),并尝试安装。安装过程中可能需要你确认(点击允许)。 -
集成向量化模型和语言模型
告诉 Cursor:
在 rag.py 中,使用 sentence-transformers 库加载 BGE 模型(模型名:BAAI/bge-small-zh-v1.5),并写一个函数将文本向量化。在 app.py 中创建一个接口 /api/ask,接收用户问题,调用检索函数从知识库中返回 top 3 相关文档,再调用 qwen 模型(通过 httpx 请求阿里通义千问 API)生成回答。 -
测试接口
Cursor 会执行测试脚本,如果遇到错误(如 API Key 未设置、模型下载失败),它通常会提示具体问题,你只需根据提示修正即可。
4.3 替换真实的 API 调用代码
因为 Cursor 不知道各平台的 API 格式,所以你需要去你选择的模型平台(例如百度千帆)查看 API 示例代码,然后将示例代码直接复制给 Cursor,并说:“请把 app.py 中的 qwen 模型调用部分替换成这段百度千帆的 API 调用代码”。Cursor 会自动完成替换。
替换后,记得在代码中填入你自己的 API Key 和模型名称(如果 Cursor 没有自动填写,手动改一下即可)。
五、超强的问题解决能力
在运行过程中你可能遇到各种问题,例如:上传文件后没有返回向量数据。直接将错误描述发给 Cursor:
我上传了一个 txt 文件,调用 /api/upload 接口后,返回的向量数据为空,请帮我排查原因。
Cursor 会检查代码逻辑、打印调试信息,甚至发现是 API Key 没有开通对应产品权限(比如用于其他应用的 Key 未开启向量模型权限)。去千帆平台修改权限后,问题解决。
小提示: 遇到问题时,描述越具体越好。例如:“文件上传后,服务器日志显示‘index 404’错误” 比 “存在问题” 更有效。
六、最终效果验证
经过以上步骤,你的 RAG 问答系统成功运行。在前端网页输入问题,AI 会完全依据你上传的文档内容给出答案,而不是胡乱编造。效果如下截图所示(运行成功界面)。

七、常见问题与经验总结
常见问题
- Q:Cursor 自动安装依赖时一直失败怎么办?
A:手动在终端执行pip install 包名安装,然后让 Cursor 继续运行。或者为 Cursor 指定使用pip install -r requirements.txt。 - Q:API Key 放哪里最安全?
A:不要写在代码里,可以用环境变量。例如在 config.py 中API_KEY=os.getenv(“API_KEY”),让 Cursor 帮你在 .env 文件中配置。 - Q:第一次尝试失败后,怎么让 Cursor 彻底删除旧代码?
A:直接说:“请删除目前 rag_server 文件夹中所有文件,然后重新创建干净的代码结构”。Cursor 会执行文件删除。 - Q:想用其他向量模型(如 text2vec-base-chinese)怎么办?
A:把模型名称告诉 Cursor,它会自动调整代码中加载模型的路径和参数。
核心经验总结
- 1. 零代码门槛: Cursor 目前已经能在一行代码都不写的前提下,完成简单前端和服务端代码的生成与修改。
- 2. 步骤拆分是关键: 复杂功能一定要拆成小步骤,逐条让 Cursor 执行。如果你不知道怎么拆,可以先问问其他大模型。
- 3. 问题描述要详尽: 把遇到的问题、错误日志、期待结果描述清楚,Cursor 会自主排查并给出解决方案。
- 4. 指令越精确越好: 例如
把对话气泡的宽度拉大 100 像素效果远好于拉大一点。 - 5. 注意性能边界: RAG 的检索和排序是难点,Cursor 目前的优化能力有限,但搭建一个能跑的 demo 完全足够。若需生产级优化,还需人工介入。
通过本教程,你已经学会用 AI 工具 Cursor 零代码构建一个完整的 RAG 问答系统。未来当你想快速验证某个想法或搭建内部工具时,这个方法能极大节省时间。现在就去尝试吧!
