为什么第一篇不写代码?

因为一眼看到终点,比闷头赶路更重要。这个专栏最终要带你构建一套生产级的企业技术文档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工程化里,大量能力已经被开源工具封装好了,你真正要写的,是把它们串起来的那层胶水逻辑。

Logo

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

更多推荐