大家好,我是老赵,一名专注于企业级应用开发的资深程序员。近期,我启动了一个从零构建完整RAG(检索增强生成)系统的实战项目。我的宗旨是:聚焦实战,记录过程。从环境配置到代码实现,我会将每一步遇到的问题、踩过的坑以及最终验证可行的解决方案,毫无保留地分享出来。
在前四天的实战中,我们已成功搭建了基础环境、部署了Milvus向量数据库、实现了文档向量化并优化了检索流程。今天是第五天,我们的核心任务是:安装Ollama框架,并在本地运行一个大语言模型,为RAG系统的“生成”环节准备好本地的LLM推理服务。
一、今日核心任务
- 成功安装Ollama框架;
- 下载并运行
qwen3:4b模型; - 验证通过本地API发起模型调用,并构思如何与前期的检索模块进行集成。
二、准备工作
在开始操作前,请确保满足以下条件:
- 操作系统:Windows 10或更高版本。
- 必备工具:确保命令行工具中已安装
curl和git。若习惯使用容器化部署,也可提前准备Docker环境。 - 硬件要求:大模型文件体积较大,请预留充足的磁盘空间和内存。若计划使用GPU加速推理,请务必提前安装好对应的显卡驱动和CUDA工具包。
- 网络条件:首次下载模型需要连接Ollama官方仓库或镜像站,请确保网络通畅。若网络受限,也可提前准备离线模型文件进行加载。
三、安装 Ollama 步骤详解
安装过程非常简便。推荐访问Ollama官方网站,下载适用于Windows系统的安装程序。完成安装后,打开命令提示符或PowerShell,输入命令 ollama --version 并回车。若成功显示版本信息,即表明Ollama已正确安装。
四、下载并运行 qwen3:4b 模型
环境就绪后,下一步是将模型部署到本地运行。以下以 qwen3:4b 为例,展示标准操作流程(具体命令请以您安装的Ollama CLI版本为准)。
第一步,下载模型:在命令行中执行:
ollama pull qwen3:4b
第二步,交互式运行(用于快速验证):执行以下命令,即可与模型进行对话测试:
ollama run qwen3:4b
运行成功后,您将看到类似下图的交互式命令行界面,这证明模型已成功加载并运行:
第三步,启动服务模式(供API调用):若需让其他应用程序通过HTTP接口调用模型,需要以服务模式启动Ollama。通常可使用如下命令:
# 参照Ollama官方文档,使用serve命令在指定端口启动服务
ollama serve --port 11434
这里有一个关键细节:模型名称(如 qwen3:4b)必须使用官方仓库中确切的标识符。若遇到“模型未找到”的错误,可以先运行 ollama list 查看本地已下载的模型列表,或前往官方模型库核对可用模型名称。
五、HTTP API 调用实践
当Ollama服务在11434端口成功运行后,我们便可以通过其提供的HTTP API进行调用。以下是两种最常用的调用方法。
使用curl命令进行基础测试:
curl -s -X POST "https://localhost:11434/api/generate" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3:4b",
"prompt": "请用中文简要介绍向量检索的基本流程。",
"max_tokens": 200
}'
使用Python (requests库) 进行集成开发:在实际项目开发中,更推荐在Python代码中集成调用:
import requests
url = "https://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系统中负责“生成”部分的核心大语言模型引擎已部署完毕。
后续计划
所有基础组件均已就位。下一步的任务是实现最终集成:将检索模块返回的相关文本片段,与精心设计的提示词(Prompt)模板进行组合,形成一个可复用的问答生成组件。随后,调用今天搭建好的本地LLM服务,生成最终答案,从而完成一个端到端的RAG问答闭环系统。
