跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言Node.jsAIjava算法

Ollama 本地 LLM 管理与 WebUI 及 Python/Java API 应用

Ollama 是一款开源的本地大语言模型管理服务工具,支持 Qwen、Llama 等多种模型的快速部署与管理。 Ollama 的安装步骤、关键环境变量配置、本地模型管理命令(list/run/rm)、三种模型导入方式(远程拉取、GGUF 导入、Safetensors 转换)以及 WebUI 可视化界面的搭建方法。此外,文章还涵盖了通过 HTTP、Python 和 Java Spring Boot 进行 API 集成的完整代码示例,并补充了显存优化、网络安全及性能调优的最佳实践,帮助开发者高效构建本地 AI 应用。

CodeArtist发布于 2025/2/6更新于 2026/9/368 浏览
Ollama 本地 LLM 管理与 WebUI 及 Python/Java API 应用

Ollama 本地 LLM 管理与 WebUI 及 Python/Java API 应用

Ollama 简介与定位

Ollama 是一个开源的 LLM(大型语言模型)服务工具,旨在简化在本地运行大语言模型的流程,降低使用门槛。它使得开发者、研究人员和爱好者能够在本地环境快速实验、管理和部署最新的开源大模型,如 Qwen2、Llama3、Phi3、Gemma2 等。

Ollama 与 Llama 的关系:Llama 是 Meta 公司开源的大语言模型系列,而 Ollama 是大语言模型(不限于 Llama)便捷的管理和运维工具。两者名称相似但功能不同,Ollama 支持多种模型格式和管理方式。

Ollama 架构示意

Ollama 安装与环境配置

1. 下载安装

访问官网首页可直接下载 Ollama 安装程序,支持 Windows、macOS 和 Linux 系统。安装过程与普通软件类似,安装完成后建议配置以下环境变量以优化性能和安全。

2. 常用系统参数设置

建议在系统环境变量中进行如下配置:

  1. OLLAMA_MODELS:模型文件存放目录。默认位于用户目录(Windows: C:\Users\%username%\.ollama\models,Linux/Mac: ~/.ollama/models)。若 C 盘空间紧张,建议修改至其他分区(如 D:\OllamaModels),避免磁盘爆满影响系统运行。
  2. OLLAMA_HOST:服务监听地址。默认为 127.0.0.1(仅本机访问)。若需局域网内其他设备调用,建议设置为 0.0.0.0,但需注意安全风险,生产环境应配合防火墙策略。
  3. OLLAMA_PORT:服务端口。默认为 11434。若端口冲突可修改为其他端口(如 8080)。
  4. OLLAMA_ORIGINS:HTTP 请求来源白名单。半角逗号分隔。本地开发可设为 * 允许所有来源,生产环境建议限制具体域名。
  5. OLLAMA_KEEP_ALIVE:模型加载后的存活时间。默认为 5m(5 分钟)。可设置为 24h 保持常驻内存以提高响应速度,或设为 0 以便请求结束后立即卸载释放显存。
  6. OLLAMA_NUM_PARALLEL:并发请求数。默认为 1。可根据硬件资源调整,多 GPU 环境下可适当增加以提升吞吐量。
  7. OLLAMA_MAX_QUEUE:请求队列长度。默认为 512。超过此长度的请求将被丢弃,高并发场景下需根据服务器负载调整。
  8. OLLAMA_DEBUG:调试日志开关。研发阶段可设为 1 输出详细日志,便于排查连接或推理问题。
  9. OLLAMA_MAX_LOADED_MODELS:同时加载的最大模型数。默认为 1。若需频繁切换模型,可适当调高,但受限于显存大小。

管理本地已有大模型

Ollama 提供了丰富的命令行工具来管理本地模型。

1. 查看模型列表

ollama list

输出示例:

NAME            ID              SIZE    MODIFIED
gemma2:9b       c19987e1e6e2    5.4 GB  7 days ago
qwen2:7b        e0d4e1163c58    4.4 GB  10 days ago

显示本地已下载的模型名称、ID、大小及修改时间。

2. 删除模型

ollama rm <模型名称>

例如:ollama rm gemma2:9b。删除后需重新拉取才能再次使用。

3. 启动对话

ollama run <模型名称>

进入终端交互模式。支持多行输入(使用三引号包裹)、清除上下文(/clear)、退出对话(/bye)及查看模型详情(/show info)。

4. 查看运行中模型

ollama ps

显示当前占用显存的模型进程信息,包括 CPU/GPU 占用率及剩余存活时间。

5. 复制模型

ollama cp <源模型名> <新模型名>

用于创建同名不同版本或重命名的模型副本,方便进行微调或测试。

导入模型到本地的三种方式

方式一:从远程仓库拉取(推荐)

直接使用 pull 命令从 Ollama 官方库下载模型。

ollama pull qwen2:0.5b

模型名称格式为 模型名称:参数规格。若未指定规格,默认下载 latest 版本。支持增量更新,即本地存在部分文件时仅下载缺失部分。

注意:GLM4-9B 模型自 Ollama 0.2.0 版本起支持,命令为 ollama pull glm4:9b。

方式二:导入 GGUF 权重文件

若已拥有 HuggingFace 或 ModelScope 下载的 .gguf 文件,可通过 Modelfile 导入。

  1. 在模型文件目录下创建 Modelfile,内容如下:
    FROM ./Meta-Llama-3-8B-Instruct.Q4_K_M.gguf
    
  2. 执行创建命令:
    ollama create Llama-3-8B -f ./Modelfile
    

此方法适合自定义量化模型或私有模型迁移。

方式三:导入 Safetensors 权重文件

对于原始 safetensors 格式模型,需先转换为 llama.cpp 兼容格式。

  1. 克隆模型仓库并转换格式:
    git clone https://www.modelscope.cn/rubraAI/Mistral-7B-Instruct-v0.3.git Mistral-7B
    python llm/llama.cpp/convert.py ./Mistral-7B --outtype f16 --outfile Mistral-7B-v0.3.bin
    
  2. 量化处理:
    llm/llama.cpp/quantize Mistral-7B-v0.3.bin Mistral-7B-v0.3_Q4.bin q4_0
    
  3. 创建 Modelfile 并导入:
    FROM Mistral-7B-v0.3_Q4.bin
    
    ollama create Mistral-7B-v0.3 -f ./Modelfile
    

基于 WebUI 部署可视化对话界面

Ollama 自带终端界面功能有限,推荐使用 ollama-webui 提供图形化体验。

  1. 安装 Node.js 环境。
  2. 克隆项目代码:
    git clone https://github.com/ollama-webui/ollama-webui-lite ollama-webui
    cd ollama-webui
    
  3. 配置镜像源加速依赖下载:
    npm config set registry http://mirrors.cloud.tencent.com/npm/
    
  4. 安装依赖并启动:
    npm install
    npm run dev
    

启动成功后,浏览器访问 http://localhost:3000 即可使用。

Ollama 客户端 API 应用

Ollama 默认提供 HTTP API 接口,支持 generate(生成)和 chat(对话)两种模式。

1. HTTP 原生调用

curl http://localhost:11434/api/generate -d '{
  "model": "qwen:0.5b",
  "prompt": "为什么天空是蓝色的?"
}'

2. Python API 集成

安装依赖包:

pip install ollama

流式输出示例:

import ollama

def api_generate(text: str):
    print(f'提问:{text}')
    stream = ollama.generate(
        stream=True,
        model='qwen:7b',
        prompt=text,
    )
    for chunk in stream:
        if not chunk['done']:
            print(chunk['response'], end='', flush=True)
        else:
            print('\n')
            print(f'总耗时:{chunk["total_duration"]}')

if __name__ == '__main__':
    api_generate('天空为什么是蓝色的?')

3. Java API 集成 (Spring Boot)

在 pom.xml 中添加依赖:

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
  <version>1.0.0</version>
</dependency>

配置文件 application.properties:

server.port=8088
spring.application.name=NTopicBootX
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.options.model=qwen:0.5b

Controller 示例:

@RestController
public class OllamaClientController {

    @Autowired
    private OllamaChatClient ollamaChatClient;

    @GetMapping("/ollama/chat/v1")
    public String ollamaChat(@RequestParam String msg) {
        return this.ollamaChatClient.call(msg);
    }
}

常见问题与最佳实践

1. 显存不足

若遇到 OOM(Out Of Memory)错误,请尝试选择参数量更小的模型(如 0.5b 或 1.5b 版本),或使用更高量化的模型(如 Q4_K_M)。

2. 网络访问受限

若无法拉取模型,检查代理设置。可在环境变量中配置 HTTPS_PROXY 或使用国内镜像源加速。

3. 安全性建议

将 OLLAMA_HOST 设置为 0.0.0.0 时,务必确保服务器防火墙仅允许受信任 IP 访问,防止 API 被滥用导致算力消耗。

4. 性能调优

在高并发场景下,适当增加 OLLAMA_NUM_PARALLEL 和 OLLAMA_MAX_QUEUE 可提升吞吐量,但需监控 GPU 利用率,避免过载导致推理延迟增加。

目录

  1. Ollama 本地 LLM 管理与 WebUI 及 Python/Java API 应用
  2. Ollama 简介与定位
  3. Ollama 安装与环境配置
  4. 1. 下载安装
  5. 2. 常用系统参数设置
  6. 管理本地已有大模型
  7. 1. 查看模型列表
  8. 2. 删除模型
  9. 3. 启动对话
  10. 4. 查看运行中模型
  11. 5. 复制模型
  12. 导入模型到本地的三种方式
  13. 方式一:从远程仓库拉取(推荐)
  14. 方式二:导入 GGUF 权重文件
  15. 方式三:导入 Safetensors 权重文件
  16. 基于 WebUI 部署可视化对话界面
  17. Ollama 客户端 API 应用
  18. 1. HTTP 原生调用
  19. 2. Python API 集成
  20. 3. Java API 集成 (Spring Boot)
  21. 常见问题与最佳实践
  22. 1. 显存不足
  23. 2. 网络访问受限
  24. 3. 安全性建议
  25. 4. 性能调优

更多推荐文章

查看全部
  • Linux Shell 脚本中 date 命令常用用法
  • 2026 届学位论文 AIGC 检测率要求汇总及应对策略
  • 免费模型深度评测:四大开源模型场景化对比与选型指南
  • C++ 进阶:AVL 树原理、旋转操作与代码实现
  • CosyVoice 安装 openai-whisper 时 pkg_resources 模块缺失问题解析与解决
  • 基于 Django-Flask 的关爱空巢老人与留守儿童管理系统设计与实现
  • Android 网络连接状态判断与监控实战
  • 超越 CRUD:用 JeecgBoot 低代码模式一天搭建请假审批系统
  • Ubuntu 24.04.3 LTS 配置 Git 并连接 GitHub
  • C++ 数据结构与算法:堆排序及 Top-K 问题详解
  • Windows 7 系统安装 Python 3.9+ 兼容方案
  • 计算机视觉高级应用与前沿技术发展
  • 电科金仓发布融合数据库,探索 AI 时代新形态
  • 大模型微调的 7 种主流方法详解
  • 医疗 AI 多智能体资源调度:Python 构建 MCU 资源池
  • 9 款免费 AI 论文工具实测:从写作到查重全流程解析
  • 10 款论文 AIGC 降重工具实测对比
  • 聊聊Java的方法:定义、重载与递归
  • MySQL 数据库 Windows 免安装版配置与使用教程
  • AI Agent 新范式:FastGPT+MCP 协议实现工具增强型智能体构建

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online