RAG知识库系统实战:先跑起来,再看风景
为什么第一篇不写代码?
因为一眼看到终点,比闷头赶路更重要。这个专栏最终要带你构建一套生产级的企业技术文档RAG知识库问答系统,顺便扩展出电商客服、法律条文检索、医疗文献问答几个分支场景。
30篇文章之后,你会有一个完整项目 + 3套可复用的场景方案,直接写进简历。但今天,先不写逻辑代码。你要在10分钟内,用Docker一键启动最终会实现的4个场景Demo。先跑通完整效果,再拆砖。
1.1 你需要准备什么
一台内存不低于8GB的电脑,以及两个已装好的工具:
-
Docker 和 Docker Compose(版本 ≥ 2.0)
-
Git
没装过Docker的,去官网下载Docker Desktop装好,Compose插件默认就带上了。
1.2 拉取仓库
专栏所有代码、配置文件、数据集都放在同一个仓库。打开终端:
bash
git clone https://github.com/csdn-ai-column/rag-system-30.git cd rag-system-30
目录结构长这样:
text
rag-system-30/ ├── demo/ # 一键启动所有场景Demo │ ├── docker-compose.yml │ ├── env.example │ └── ... ├── stage01_env/ # 第2~4篇 环境与工具链 ├── stage02_rag_core/ # 第5~10篇 RAG核心 ├── stage03_serve/ # 第11~16篇 服务化 ├── stage04_scenarios/ # 第17~24篇 场景扩展 ├── stage05_prod/ # 第25~30篇 生产化与交付 └── README.md
1.3 配置模型与密钥
Ollama管理本地开源模型,云端Embedding接口提供稳定的检索效果,你需要复制并修改环境变量:
bash
cd demo cp env.example .env
编辑 .env 填入API Key:
ini
# 大模型问答(本地Ollama或云端API) LLM_PROVIDER=ollama # 也可以是 openai LLM_MODEL=qwen2.5:7b # 你本地已拉好的模型名 # 如果用云端API,取消下面注释 # OPENAI_API_KEY=sk-xxxx # OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # Embedding模型(推荐云端) EMBEDDING_PROVIDER=openai EMBEDDING_MODEL=text-embedding-v3
为什么Embedding用云端?本地跑嵌入模型吃资源,且云端在大规模中文检索上效果更好,第8篇会详细对比。
1.4 一键启动四个场景
确保在 demo/ 目录下:
bash
docker-compose up -d
它会依次拉起这些容器:
| 服务名 | 用途 | 端口 |
|---|---|---|
| ollama | 本地大模型服务(自动拉取 qwen2.5:7b) |
11434 |
| chroma | 向量数据库 | 8001 |
| api-server | 核心RAG服务(FastAPI) | 8000 |
| web-frontend | 统一问答前端(Vue3) | 3000 |
| scenario-ecom | 电商客服场景后端 | 8002 |
| scenario-legal | 法律条文检索场景 | 8003 |
| scenario-medical | 医疗文献问答场景 | 8004 |
首次启动需要拉取镜像和模型,网络好几分钟,慢的话可能十几分钟。想看进度,可以:
bash
docker-compose logs -f
看到 api-server 输出 Uvicorn running on... 就说明准备好了。
1.5 四个场景怎么玩
浏览器打开 http://localhost:3000。
场景1:技术文档助手(主项目)
界面默认是技术文档助手,已经预置了一份模拟的企业内部文档库(微服务架构规范、API设计指南、数据库规范等)。试试:
-
“微服务之间应该使用什么协议通信?”
-
“数据库索引优化有哪些规范?”
系统会检索文档段落,生成带引用标记的答案。
场景2:电商智能客服
右上角切换场景到电商客服。数据是某电商平台的FAQ(退货政策、物流查询、优惠活动)。问:
-
“买的东西不满意,怎么退货?”
-
“我的快递到哪儿了?”
短文本的切分策略这里做了专门调优(第7篇),回答中还能嵌入商品链接(第17篇)。
场景3:法律条文检索助手
切换到法律条文。我们索引了《中华人民共和国民法典》部分条文。试:
-
“合同纠纷的诉讼时效是多久?”
-
“高空抛物谁承担责任?”
回答会附上具体法条出处,点击看原文——第20篇细说引用与高亮实现。
场景4:医疗文献问答(脱敏示例)
切换到医疗文献。数据来自公开医学文献摘要,已脱敏。问:
-
“二甲双胍的主要副作用有哪些?”
-
“最近治疗阿尔茨海默病有什么新突破?”
这个场景展示了如何处理高精度要求和安全护栏(第21篇)。
1.6 停下来,想一下
现在4个AI应用在你本地跑通了。关闭它们也简单:
bash
docker-compose down
还没写一行Java代码,你就可以拥有一个大模型+向量检索+多场景的完整系统。AI工程化里,大量能力已经被开源工具封装好了,你真正要写的,是把它们串起来的那层胶水逻辑。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)