本地 RAG 助手从零搭建:Ollama + ChromaDB + LangChain 入门
学会用 Ollama 部署本地大模型,结合 ChromaDB 和 LangChain 搭建一个能回答私有文档问题的 RAG 助手。
准备环境:安装 Docker 和 Ollama
首先你需要安装 Docker(一种容器工具,可以把软件打包运行,省去配置环境的麻烦)。去 Docker 官网 下载并安装。然后安装 Ollama(一个让你在本地运行大语言模型的工具),去 Ollama 官网 下载安装。安装完成后,打开终端(命令行),输入 ollama pull llama3 下载一个 8B 参数的模型(约 4.7GB),等待下载完成。
安装步骤:启动服务并运行代码
- 创建一个项目文件夹,比如
rag-assistant,在里面新建一个docker-compose.yml文件。 - 在文件中定义四个服务:Ollama(运行大模型)、ChromaDB(向量数据库,存储文档的“语义指纹”)、LangChain 应用(处理查询和生成回答)、Streamlit(一个网页界面工具,让你在浏览器里使用)。
- 在终端进入项目文件夹,运行
docker-compose up -d启动所有服务。 - 编写一个 Python 脚本(比如
ingest.py),用 LangChain 读取你的 PDF 文档,切成 300 字符左右的小块,然后用嵌入模型(比如 Ollama 的nomic-embed-text)将每块转换成向量,存入 ChromaDB。 - 再写一个查询脚本(比如
app.py),当用户提问时,先从 ChromaDB 检索相关文档块,然后连同问题一起发给 Ollama 模型,生成回答。
验证是否成功:测试你的助手
在浏览器打开 http://localhost:8501(Streamlit 默认端口),输入一个问题,比如“这个项目的财务流程是什么?”。如果回答正确且引用了你的文档,就成功了。如果回答“我不知道”,说明文档中没有相关内容,这也是好的——说明它没有胡编乱造。
常见坑一句话提醒
- 嵌入模型必须一致:索引文档时用的嵌入模型和查询时用的必须相同,否则检索会失效。
- 块大小很重要:技术文档用 300 字符比 500 字符更精准。
- 超时设置:CPU 跑大模型很慢,记得把 API 超时设为 300 秒以上。
- 网络地址:Docker 容器之间通信不要用 localhost,用服务名(比如
chromadb)。
内容来源
DEV Ollama
发布时间
2026-07-28 01:33