Springboot整合Ollama实现调用本地多模型

 更新时间:2026年07月12日 13:59:36   作者:Listen·Rain  
想知道如何用ollama快速安装和调用大模型吗,本文带你从ollama官网搜索模型、使用powershell命令一键安装,到springboot项目中引入依赖、配置参数、编写服务,最后通过controller测试接口,轻松实现ollama大模型的本地部署和api调用,需要的朋友可以参考下

1.安装相应的大模型

可以在ollama官网搜索相应的大模型,直接copy相应命令,在powershell窗口执行ollama命令

查看命令:

ollama list

2.pom.xml

引入Ollama依赖

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

3.application.properties

server.port: 8088
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
spring.ai.ollama.base-url=http://localhost:11434

4.OllamaConfig

@Configuration
public class OllamaConfig {

	private static final String QWEN = "qwen3:0.6b";
	private static final String DEEPSEEK = "deepseek-r1:1.5b";

	@Bean(name = "qwenChatClient")
	public ChatClient qwenChatClient(ChatClient.Builder builder) {
		OllamaOptions ollamaOptions = OllamaOptions.builder().build();
		ollamaOptions.setModel(QWEN);
		return builder.defaultOptions(ollamaOptions).build();
	}

	@Bean(name = "deepseekChatClient")
	public ChatClient deepseekChatClient(ChatClient.Builder builder) {
		OllamaOptions ollamaOptions = OllamaOptions.builder().build();
		ollamaOptions.setModel(DEEPSEEK);
		return builder.defaultOptions(ollamaOptions).build();
	}
}

5.OllamaService

package com.example.demoredisstack.service;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;

@Service
public class OllamaService {

	@Autowired
	private ChatClient qwenChatClient;

	@Autowired
	private ChatClient deepseekChatClient;


	public String qwenChat(String message) {
		return qwenChatClient
				.prompt()       // 开始构建提示词
				.user(message)  // 设置用户消息
				.call()         // 发起调用
				.content();     // 直接获取字符串内容
	}

	public Flux<String> qwenChatStream(String message) {
		return qwenChatClient
				.prompt()
				.user(message)
				.stream()
				.content();
	}

	public String deepseekChat(String message) {
		return deepseekChatClient
				.prompt()       // 开始构建提示词
				.user(message)  // 设置用户消息
				.call()         // 发起调用
				.content();     // 直接获取字符串内容
	}

	public Flux<String> deepseekChatStream(String message) {
		return deepseekChatClient
				.prompt()
				.user(message)
				.stream()
				.content();
	}
}

6. TestOllamaController

package com.example.demoredisstack.controller;

import com.example.demoredisstack.service.OllamaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

@RestController
@RequestMapping("/test/ollama")
public class TestOllamaController {

	@Autowired
	private OllamaService ollamaService;

	@GetMapping("/qwen")
	public String qwenChat(@RequestParam(value = "message", defaultValue = "你好") String message) {
		return ollamaService.qwenChat(message);
	}

	@GetMapping("/qwenStream")
	public Flux<String> qwenChatSteam(@RequestParam(value = "message", defaultValue = "你好") String message) {
		return ollamaService.qwenChatStream(message);
	}

	@GetMapping("/deepseek")
	public String deepseekChat(@RequestParam(value = "message", defaultValue = "你好") String message) {
		return ollamaService.deepseekChat(message);
	}

	@GetMapping("/deepseekStream")
	public Flux<String> deepseekChatStream(@RequestParam(value = "message", defaultValue = "你好") String message) {
		return ollamaService.deepseekChatStream(message);
	}
}

7.测试结果

以上就是Springboot整合Ollama实现调用本地多模型的详细内容,更多关于Springboot整合Ollama调用本地多模型的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot使用Docx4j实现DOCX转PDF功能

    SpringBoot使用Docx4j实现DOCX转PDF功能

    在当今的企业级应用中,文档格式转换是一个高频但又容易被低估的需求,从合同签署、报表生成到知识库管理,DOCX转PDF的需求无处不在,今天我们就介绍一款使用纯Java实现 DOCX 转 PDF的方案,超级简单,简直不要太爽,需要的朋友可以参考下
    2026-02-02
  • Spring 依赖注入、AOP代理全方面解析

    Spring 依赖注入、AOP代理全方面解析

    文章介绍了软件开发中的开闭原则、依赖倒置原则及Spring非侵入式设计,通过IoC和DI实现解耦,提升系统扩展性、可测试性及架构迁移能力,强调框架能力以无感知方式注入业务代码的核心优势,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-08-08
  • C++ 归并排序(merge sort)案例详解

    C++ 归并排序(merge sort)案例详解

    这篇文章主要介绍了C++ 归并排序(merge sort)案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Spring Security将用户数据存储到数据库的方法

    Spring Security将用户数据存储到数据库的方法

    这篇文章主要介绍了Spring Security将用户数据存储到数据库的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • spring security获取用户信息为null或者串值的解决

    spring security获取用户信息为null或者串值的解决

    这篇文章主要介绍了spring security获取用户信息为null或者串值的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Maven 自动化构建的实现示例

    Maven 自动化构建的实现示例

    本文主要介绍了Maven 自动化构建的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • 详解SpringMVC中的@RequestMapping注解

    详解SpringMVC中的@RequestMapping注解

    这篇文章主要介绍了SpringMVC中@RequestMapping注解,@RequestMapping注解是一个用来处理请求地址映射的注解,可用于映射一个请求或一个方法,可以用在类或方法上,需要的朋友可以参考下
    2023-07-07
  • Maven项目如何在pom文件中引入lib下的第三方jar包并打包进去

    Maven项目如何在pom文件中引入lib下的第三方jar包并打包进去

    在使用Maven进行项目开发时,引入第三方私有的Jar包可能会遇到问题,一种常见的解决方案是将Jar包添加到项目的lib目录,并通过IDE进行配置,但这需要每个开发者单独操作,效率低下,更好的方法是通过Maven的pom.xml文件管理这些Jar包
    2024-09-09
  • SpringBoot利用Redis消息队列实现数据库表变更监听的具体方案

    SpringBoot利用Redis消息队列实现数据库表变更监听的具体方案

    在现代应用开发中,实时感知数据库表的变化是一项常见需求,无论是为了实现缓存一致性、触发后续业务流程,还是构建实时数据分析系统,表变更监听都扮演着重要角色,本文将介绍如何在SpringBoot应用中利用Redis消息队列机制高效实现数据库表变更的监听
    2025-09-09
  • SpringBoot2实现MessageQueue消息队列

    SpringBoot2实现MessageQueue消息队列

    本文主要介绍了 SpringBoot2实现MessageQueue消息队列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论