当前位置: 首页 > news >正文

Springboot整合ollama运行本地AI大模型

1.安装启动ollama

ollama部署开源大模型-CSDN博客

我的这篇文章已经详细阐述了,这里就不介绍了

2.创建SpringBoot项目

照着我图片上的来即可 JKD要》=17 因为我们要使用Springboot3.x.x只有JDK17及以上才支持

1.导入pom依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.6</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>org.example</groupId><artifactId>springboot-ai</artifactId><version>0.0.1-SNAPSHOT</version><name>springboot-ai</name><description>springboot-ai</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Boot DevTools (Optional for auto-reloading during development) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.34</version></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama</artifactId><version>1.0.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2.在resources中创建application.yml文件并且编辑

把默认的application.properties文件删除,然后下面是yml的配置内容 

spring:ai:ollama:base-url: http://localhost:11434chat:option:model: gemma3:4btemperature: 0.7  # 生成随机性(0~1,越大越随机)max-tokens: 512   # 最大生成 Token 数
server:port: 8080

3.创建AIconfig配置文件

package com.example.demo.config;import io.micrometer.observation.ObservationRegistry;
import org.springframework.ai.model.tool.ToolCallingManager;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.ai.ollama.api.OllamaApi;
import org.springframework.ai.ollama.api.OllamaOptions;
import org.springframework.ai.ollama.management.ModelManagementOptions;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class AiConfig {@Beanpublic OllamaChatModel ollamaChatModel() {// 1. 创建 OllamaApi(与 Ollama 服务通信)OllamaApi ollamaApi = OllamaApi.builder().baseUrl("http://localhost:11434").build();// 2. 配置默认参数OllamaOptions defaultOptions = OllamaOptions.builder().model("gemma3:4b").temperature(0.7).build();// 3. 构建 ToolCallingManager(支持工具调用)ToolCallingManager toolCallingManager = ToolCallingManager.builder().build();// 4. 构建 ObservationRegistry(监控)ObservationRegistry observationRegistry = ObservationRegistry.NOOP;// 5. 模型管理配置ModelManagementOptions modelManagementOptions = ModelManagementOptions.defaults();// 6. 最终创建 OllamaChatModelreturn new OllamaChatModel(ollamaApi,defaultOptions,toolCallingManager,observationRegistry,modelManagementOptions);}
}

4.创建AIController 

package com.example.demo.controller;import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class AiController {// 注入 OllamaChatModel,用于调用 Ollama 模型@Autowiredprivate OllamaChatModel ollamaChatModel;/*** 简单文本对话接口(直接传字符串消息)* @param msg 用户输入的消息* @return 模型返回的文本内容*/@GetMapping("/ollama/chat/msg")public String ollamaChat(@RequestParam String msg) {return ollamaChatModel.call(msg);}/*** 基于 Prompt 对象的对话接口* @param msg 用户输入的消息* @return 模型返回的结果(Object 类型,通常是包含详细信息的响应)*/@GetMapping("/ollama/chat/prompt")public Object ollamaChatV2(@RequestParam String msg) {Prompt prompt = new Prompt(msg);return ollamaChatModel.call(prompt);}}

5. 编辑启动类(可以省略)

package dbcs.springai01;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringAi01Application {public static void main(String[] args) {SpringApplication.run(SpringAi01Application.class, args);System.out.println("http://localhost:8080/ollama/chat/msg?msg=你好");}}

6.项目启动测试 

1.先要保证自己的本地的ollama是启动了的

2.然后我们启动Springboot项目

3.最后我们浏览器访问

http://localhost:8080/ollama/chat/msg?msg=这里写上你要问的问题

例如: http://localhost:8080/ollama/chat/msg?msg=你好

这样就是使用最简单的方式使用Springboot整合了ollama的本地AI大模型了

 

相关文章:

  • 利用Enigma Virtual Box将QT生成的软件打包成一个exe可执行文件
  • C++ map代码练习 1、2、priority_queue基础概念、对象创建、数据插入、获取堆顶、出队操作、大小操作,自定义结构、代码练习 1 2
  • Linux -- Ext系列文件系统介绍
  • 游戏引擎学习路径与技术栈指南
  • python+uniapp微信小程序的共享雨伞租赁系统
  • Day.34
  • JVM: 内存、类与垃圾
  • API 管理系统实践指南:监控、安全、性能全覆盖
  • MCP基本概念
  • synchronized 做了哪些优化?
  • 【Algorithm】图论入门
  • 软件体系结构-论述、设计、问答
  • 每天一个前端小知识 Day 4 - TypeScript 核心类型系统与实践
  • 跨境卖家警报。抽绳背包版权案立案,TRO在即速排查
  • 二维数组 结构体01 day15,16
  • 【大模型:知识库管理】--MinerU本地部署
  • SpringBoot Starter设计:依赖管理的革命
  • 什么是数据清洗?数据清洗有哪些步骤?
  • 选择与方法专栏(9) 职场内篇: 是否要跳出舒适圈?如何处理犯错?
  • ffmpeg python rgba图片合成 4444格式mov视频,保留透明通道
  • 百度网站建设的一般要素/网站设计服务企业
  • word如何做网站/企业网络推广技巧
  • 织梦程序做交友网站/网站制作工具有哪些
  • 网站关键词如何做/有什么公司要做推广的
  • 单页面网站跳出率/举例说明什么是seo
  • 北京微信网站建设公司/优化网站首页