前言
企业里做大模型,最先碰到的往往不是'效果够不够好',而是能不能用得住。第三方 API 密钥带来的成本波动、外网依赖带来的合规压力、用户数据必须出域的安全顾虑,这几件事放在金融、政务这类场景里,基本都会把方案直接卡死。离线私有化部署不是加分项,很多时候就是前提。
这篇记录基于 Ollama 和 Spring AI,把一套离线 AI 服务从模型拉取、量化配置到 RAG 知识库落地完整走了一遍。重点不是'理论上能行',而是尽量把实际会踩到的配置、接口和取舍说清楚:模型怎么选,Spring AI 怎么对接 Ollama,资源不够时怎么压,知识库怎么在无外网环境下跑起来。
一、项目背景与技术选型
1.1 先解决什么问题
| 业务痛点 | 解决办法 | 技术选型 |
|---|---|---|
| 依赖第三方 API 密钥,成本不稳定 | 本地部署开源大模型,去掉外部密钥依赖 | Ollama |
| 外网依赖带来合规风险 | 模型、数据、向量检索都留在本地 | Spring AI + Chroma DB |
| 模型资源占用过高 | 用量化模型控制内存和显存 | Ollama 量化模型(Q4_K_M 等) |
| 离线场景也要支持知识库问答 | 本地构建 RAG 流程 | LangChain4j + Chroma DB |
1.2 整体架构

1.3 技术栈选择
| 技术领域 | 选型 | 原因 |
|---|---|---|
| 模型运行时 | Ollama 0.1.48 | 轻量,拉模型和管理资源都比较省事 |
| AI 框架 | Spring AI 0.8.1 + LangChain4j 0.27.0 | Spring 生态衔接顺,RAG 能力也够用 |
| 向量数据库 | Chroma DB 0.4.24 | 本地存储,离线场景更合适 |
| 模型选择 | Llama3 8B Q4_K_M + Qwen 7B Q4_K_M | 精度和资源占用之间比较均衡 |
| 部署方式 | Docker + 裸金属 | 既能控环境,也能吃满机器资源 |
二、Ollama 本地部署与配置
2.1 安装和启动
# Linux/macOS 一键安装
curl -fsSL https://ollama.com/install.sh | sh
# Windows:下载安装包并执行(https://ollama.com/download/windows)
# 验证安装
ollama --version
# 输出:ollama version 0.1.48
# 启动 Ollama 服务(默认端口 11434)
ollama serve
netstat -tulpn | grep 11434



