Springboot调用Ollama本地大模式

安装Ollama

  1. 下载Ollama
    在 https://ollama.com/download 下载Windows版本

  2. 安装到指定目录
    打开一个cmd窗口,执行

    OllamaSetup.exe /DIR=D:\software\Ollama

  3. 设置环境变量,下载的模型保存到指定目录
    在Windows系统设置中设置环境变量 OLLAMA_MODELS: D:\software\Ollama\models

  4. 常用命令行

    #先启动Ollama,再检测端口
    netstat -ano | findstr 11434

    #查看版本
    ollama --version

    #查看本地已下载的大模型
    ollama list

    #运行指定大模型
    ollama run qwen3:1.7b

    #查看运行中的大模型
    ollama ps

    #运行中的大模型会话窗口退出
    /bye


创建Spring boot项目

  1. 在start.spring.io 页面创建一个项目,在 pom.xml 中引自spring AI的依赖

    复制代码
         <dependency>
             <groupId>org.springframework.ai</groupId>
             <artifactId>spring-ai-starter-model-ollama</artifactId>
             <version>1.0.0</version>
         </dependency>
  2. 在application.properties 中加入配置项

    server.port=8082

    server.servlet.encoding.enabled=true
    server.servlet.encoding.charset=UTF-8
    server.servlet.encoding.force=true

    spring.application.name=ollama-demo

    spring.ai.ollama.base-url=https://localhost:11434
    spring.ai.ollama.chat.model=qwen2.5:latest

  3. 在Controller 文件中引入ChatModel

    @RestController
    public class OllamaController {
    @Resource(name = "ollamaChatModel")
    private ChatModel chatModel;

    复制代码
     @GetMapping("ollama/chat")
     public String chat(@RequestParam("msg") String msg) {
         String result = chatModel.call(msg);
         return result;
     }
    
     /**
      * 响应式返回结果
      * @param msg
      * @return
      */
     @GetMapping("/stream/chat")
     public Flux<String> streamChat(@RequestParam("msg") String msg) {
         return chatModel.stream(msg);
     }

    }

相关推荐
程序猿乐锅2 小时前
从0-1一文详解RabbitMQ
java·分布式·后端·中间件·rabbitmq·ruby
考虑考虑6 小时前
JDK26中的List.ofLazy()
java·后端·java ee
小蒜学长6 小时前
基于SpringBoot的公寓报修管理系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·公寓报修管理系统·多角色协同
for_ever_love__6 小时前
MySQL 主从复制讲透:binlog 原理、搭建步骤与读写分离
java·数据库·mysql·binlog·读写分离·原理·主从复制
云浪6 小时前
Go源码分析:搞懂 Go 是如何实现堆的
后端·go·源码阅读
小π军8 小时前
操作系统面试题
java·linux·服务器
倔强的石头1069 小时前
应用账号最小权限实践:读写账号、报表账号、运维账号分层
java·运维·开发语言
Shaoshing9 小时前
ThreadLocal
java·jvm·threadlocal
写后端的胖头鱼9 小时前
一文详解CAS
java·jvm·spring·cas·乐观锁·自旋