大家好,我是老赵,一名程序员老兵,平时主要从事企业级应用开发,最近打算从零学习、并落地一套完整的RAG检索增强生成系统。不搞虚头理论,全程边学边做,把遇到的问题、踩过的坑、能直接跑通的代码,全都真实记录下来。
前四天我们完成了环境搭建、Milvus部署、文档向量化以及检索匹配并做了结果优化。今天第5天的目标是安装Ollama并在本地运行模型,为RAG的生成环节提供本地LLM服务。
一、今日目标
- 安装Ollama;
- 拉取并运行
qwen3:4b模型; - 能通过本地 API 发起推理请求并与检索层对接的基本思路验证。
二、前置准备
- 操作系统:Windows 10+
- 基础工具:
curl、git、可选的docker。 - 硬件:磁盘与内存足够(模型文件通常较大),如计划使用GPU推理需安装对应驱动与CUDA。
- 网络:首次拉取模型需要访问Ollama的模型源或镜像仓库,确保网络通畅或准备离线模型文件。
三、安装 Ollama(可选路径)
官方安装:请从Ollama官方网站下载windows安装包并进行安装ollama.com/download/wi…,安装后在命令行中运行 ollama --version, 确认ollama可用。
四、拉取并运行 qwen3:4b(示例流程)
以下命令为通用示例,实际命令请以当前Ollama CLI/镜像为准:
- 拉取模型(示例):
ollama pull qwen3:4b
- 交互运行(临时会话):
ollama run qwen3:4b
以下截图展示了运行的结果:
- 以服务模式启动以供HTTP调用:
# 如果 Ollama 提供守护进程或 listen 参数,按官方方法启动并监听本地端口
ollama serve --port 11434
说明:模型名称请严格使用官方 ID(本文使用 qwen3:4b 作为示例)。如出现“找不到模型”,请运行 ollama list 或查看官方模型仓库确认可用模型 ID。
五、通过HTTP调用示例
Ollama通过端口11434提供HTTP API,以下为示例请求(请根据实际API字段调整):
curl -s -X POST "http://localhost:11434/api/generate" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3:4b",
"prompt": "请用中文简要介绍向量检索的基本流程。",
"max_tokens": 200
}'
Python 示例(requests):
import requests
url = "http://localhost:11434/api/generate"
payload = {
"model": "qwen3:4b",
"prompt": "请用中文列出 RAG 流程步骤。",
"max_tokens": 200,
"stream": False,
}
resp = requests.post(url, json=payload, timeout=300)
print(resp.json())
说明:上面 prompt、max_tokens 等字段为示例,具体字段名请参照当前 Ollama版本的API文档。
六、性能与资源建议
- 若要低延迟并发推理,优先使用 GPU;
- 为模型和缓存预留足够磁盘空间和内存;
- 对高并发请求采用推理队列或限流,避免OOM;
- 根据业务选择合适模型大小,
qwen3:4b属中等规模,生产场景可根据成本/延迟选择更合适的模型。
七、常见问题与排查
- 模型拉取失败:检查网络、认证与磁盘空间;
- 内存不足或OOM:降低并发、换用GPU、或使用更小模型;
- 服务端口不可达:确认服务已启动并监听正确端口,检查防火墙;
今日小结
- 本文介绍了在本地安装Ollama、拉取并运行
qwen3:4b的典型流程,为 RAG的生成环节打好基础。
明日计划(建议)
- 将检索返回的top-k片段拼接与Prompt模板化,做成可复用组件,然后调用LLM生成问题答案,实现RAG的完整问答流程。
我是老赵,一名程序员老兵,全程真实记录RAG从零搭建全过程。本系列会持续更新,最后整理成完整视频教程+源码+部署手册。
关注 老赵全栈实战,不迷路,一起从0落地RAG系统。