Spring AI Alibaba入门学习(二)

一、Ollama私有化部署

1.1 Ollama是什么?

一句话定义:Ollama是一个开源的、轻量级的本地大语言模型运行和管理平台,让你能在自己的电脑上轻松运行各种开源模型(如Llama 3、DeepSeek、Qwen等),就像Docker管理容器一样方便。

下载地址:https://ollama.com/download

2.2 安装Ollama

  • 使用命令行安装,避免安装到c盘

进入安装包所在目录执行命令安装,点击install,这样安装路径就是我们的指定路径,大模型也会默认下载在我们指定的目录下。

  • 新建环境变量,存放大模型数据包的位置
  • 停止Ollama客户端,找到c盘下的models文件夹,剪切到新建环境变量的目录下
  • 删掉c盘下的models文件夹,重启客户端,命令行输入Ollama List,查看大模型资源包是否正常展示(这一步主要是将大模型数据目录转移到 自己的安装盘而非c盘)
  • 验证是否安装成功

2.3 安装大模型

  • ollama首页搜索要下载的大模型
  • 找到对应的模型,参数越高,占用的电脑磁盘内存越大,显卡要求也越高
  • 我这里下载一个比较小的,拷贝命令执行
  • 下载完成后执行命令ollama run qwen2.5:3b运行安装的大模型实例

2.4 调用本地大模型

  • 新建demo2

pom文件主要新增ollama的依赖

复制代码
<!--ollama-->
<dependency>
   <groupId>org.springframework.ai</groupId>
   <artifactId>spring-ai-starter-model-ollama</artifactId>
   <version>1.0.0</version>
</dependency>
  • 配置yml文件

    server:
    port: 8002
    servlet:
    encoding:
    enabled: true
    force: true
    charset: utf-8

    spring:
    application:
    name: demo2
    # ====ollama Config=============
    ai:
    dashscope:
    api-key: ${aliQwen-api}
    ollama:
    base-url: http://localhost:11434
    chat:
    model: qwen2.5:3b

  • 编写controller测试

    package com.wx.controller;

    import jakarta.annotation.Resource;
    import org.springframework.ai.chat.model.ChatModel;
    import org.springframework.ai.ollama.OllamaChatModel;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    import reactor.core.publisher.Flux;

    /**

    • @Description

    • @author: wangxin

    • @date: 2026/3/7 20:42
      */
      @RestController
      public class OllamaController {

      @Resource(name = "ollamaChatModel")
      private ChatModel chatModel;

      @GetMapping("/ollama/chat")
      public String testChat(@RequestParam(name = "msg", defaultValue = "你是谁") String msg) {

      复制代码
       String call = chatModel.call(msg);
       System.out.println("大模型返回:" + call);
       return call;

      }

      @GetMapping("/ollama/stream")
      public Flux testStream(@RequestParam(name = "msg", defaultValue = "你是谁") String msg) {

      复制代码
       return chatModel.stream(msg);

      }

    }

相关推荐
Z21-X2 小时前
云原生运维学习笔记:容器技术的演进、底层原理与 Docker 全生命周期管理
运维·笔记·学习·云原生
Rabitebla10 小时前
【Linux 底层原理】进程(十):进程等待详解---从僵尸进程到 wait、waitpid 与 status
linux·c++·笔记·学习·visual studio
无心水15 小时前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师
蒸蒸yyyyzwd15 小时前
邓明 Agent 系统面试-意图识别学习笔记
笔记·学习
La Pulga20 小时前
【FreeRTOS源码学习笔记】空闲任务与阻塞延时
笔记·mcu·学习·嵌入式·freertos·实时操作系统
蒸蒸yyyyzwd20 小时前
秋招学习笔记 day106
笔记·学习
小李不想当小白21 小时前
WDG看门狗(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
lisw051 天前
作为人类代理的大语言模型及其角色分类!
人工智能·学习·语言模型
Z21-X1 天前
云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析
运维·笔记·学习·云原生
坤坤子吖1 天前
Linux网络编程:UDP进阶,从字典服务器到简单聊天室
linux·服务器·网络·c++·笔记·学习