RAG系统搭建第5天:Ollama安装指南
在搭建RAG系统的第五天,重点完成了Ollama的本地安装。具体步骤包括下载安装包、验证版本,并拉取运行qwen3:4b模型。通过命令行交互测试后,以服务模式启动Ollama,使其可通过HTTPAPI被调用。此外,提供了使用curl和Pythonrequests库的调用示例,并强调了模型运行时的性能优化、资源管理及常见问题排查方法。这为后续实现完整的RAG生
大家好,我是老赵,一名长期从事企业级应用开发的程序员。近期,我启动了一个从零构建完整RAG(检索增强生成)系统的实战项目。我的宗旨是:聚焦实践,记录过程。从环境配置到代码实现,每一个遇到的问题、踩过的坑,以及最终验证可行的解决方案,我都会在这里如实分享。
经过前四天的实践,我们已经完成了环境搭建、Milvus部署、文档向量化以及检索优化。今天,也就是第五天,我们的目标非常清晰:安装Ollama,并在本地运行一个大语言模型,为RAG系统的“生成”环节准备好本地的LLM服务。
今日核心目标
- 成功安装Ollama;
- 拉取并运行
qwen3:4b模型; - 验证通过本地API发起推理请求,并与前期的检索层进行对接的基本流程。
准备工作
在开始操作前,请确保准备好以下事项:
- 操作系统:Windows 10或更高版本。
- 基础工具:确保命令行中可使用
curl和git命令。如果习惯使用Docker,也可提前准备。 - 硬件资源:模型文件通常较大,请为磁盘和内存预留充足空间。若计划使用GPU加速推理,请提前安装好相应的驱动和CUDA环境。
- 网络环境:首次拉取模型需要访问Ollama官方源或镜像仓库,请确保网络通畅。若网络条件受限,也可提前准备离线模型文件。
安装Ollama步骤
安装过程较为直接。推荐前往Ollama官方网站,下载适用于Windows系统的安装包。安装完成后,打开命令行,输入 ollama --version 并回车,若能显示版本号,则表明安装成功。
拉取并运行Qwen3:4B模型
接下来,我们将模型拉取到本地并运行。这里以 qwen3:4b 为例,展示典型操作流程(具体命令请以您安装的Ollama CLI版本为准)。
第一步,拉取模型:在命令行中执行:
ollama pull qwen3:4b
第二步,交互式运行(用于快速测试):执行以下命令,即可与模型进行对话:
ollama run qwen3:4b
运行成功后,您将看到类似的交互界面,证明模型已成功启动。
第三步,以服务模式启动(供API调用):若需其他程序通过HTTP调用此模型,需以服务模式启动。通常可执行如下命令:
# 根据Ollama官方文档,使用serve命令监听指定端口
ollama serve --port 11434
请注意:模型名称(如 qwen3:4b)必须使用官方确切的ID。若遇到“找不到模型”的提示,可先运行 ollama list 查看本地已有模型,或前往官方模型仓库核对可用模型列表。
HTTP API调用示例
当Ollama服务在11434端口启动后,即可通过HTTP API进行调用。以下是两种最常见的调用方式。
使用curl命令测试:
curl -s -X POST "http://localhost:11434/api/generate" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3:4b",
"prompt": "请用中文简要介绍向量检索的基本流程。",
"max_tokens": 200
}'
使用Python (requests库) 集成:在实际开发中,更常用的是在Python代码中调用:
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())
请注意,API的字段名(如 prompt, max_tokens)可能随Ollama版本更新而变化,最稳妥的做法是查阅当前使用版本的官方API文档。
性能优化与资源建议
成功运行模型是第一步,要保证顺畅使用,还需关注性能与资源。以下是一些实践经验供参考:
- 推理速度:若对响应延迟有要求,或需处理并发请求,强烈建议启用GPU进行推理,速度提升显著。
- 资源预留:模型文件本身及运行时缓存会占用可观的磁盘和内存空间,提前规划好资源分配,可避免许多运行时错误。
- 并发处理:面对高并发场景,简单的直接调用可能导致内存溢出(OOM)。合理的做法是引入推理请求队列或进行限流控制。
- 模型选型:示例中使用的
qwen3:4b属于中等规模。在实际生产环境中,需在推理效果、响应速度、硬件成本之间权衡,选择最适合业务场景的模型尺寸。
常见问题与排查方法
实践过程中可能会遇到一些问题,以下是常见问题及排查思路:
- 模型拉取失败:首先检查网络连接,其次确认磁盘空间是否充足。若使用了私有镜像或需要认证,请确认凭证是否正确。
- 内存不足或OOM:这是最常见的问题。可尝试降低并发请求数、切换到GPU推理,或换用参数更少的小模型。
- 服务端口不可达:确认Ollama服务进程是否正在运行,并监听在正确的端口(默认11434)。同时检查系统防火墙或安全组设置是否屏蔽了该端口。
今日总结
今天,我们成功在本地环境安装了Ollama,并拉取、运行了 qwen3:4b 模型,同时验证了通过HTTP API进行调用的基本流程。至此,RAG系统中负责“生成”环节的核心引擎已准备就绪。
后续计划
万事俱备,只欠东风。明天的任务是将前几天的成果进行整合:将检索模块返回的Top-K相关文本片段,与设计好的Prompt模板进行拼接,形成一个可复用的组件。随后,调用今天搭建好的本地LLM,生成最终答案,从而实现一个完整的RAG问答闭环。
