【Spring AI】Java结合ollama实现大模型调用

在较新的Java版本中,编译器已经支持了接入各种AI模型工具进行开发,这篇文章我会介绍如何利用Spring AI进行大模型的调用的基础方法。

环境准备

由于这篇文章是结合ollama进行演示,所以在开始前需要先安装ollama服务,这个的具体步骤我在之前的文章中也详细的介绍过了 ollama部署大模型以及连续分片调用的实现_ollama 调用大模型-CSDN博客

由于兼容性的问题,目前支持Spring AI的最低编译器版本为17,更低的编译器可能会出现兼容性问题,所以首先要准备jdk17+的版本。这个在idea中可以一键下载

Spring的版本需要为3.x

操作步骤

1.创建项目

依赖地址选择Spring官方地址(阿里云镜像Spring版本过低,无法支持Spring AI)

创建为maven项目,jdk选择17以上的版本

 点击下一步

选择Web下的Spring Web和AI下的ollama

点击创建

 在pom文件中可以看到已经自动添加了ollama的依赖

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

2.添加配置信息

在默认的application.properties配置文件中添加如下信息

# ollama服务上模型的名称
spring.ai.ollama.chat.model= huanhuan_deepseek_r1:1.5b
# ollama服务的地址(默认地址http://127.0.0.1:11434)
spring.ai.ollama.base-url= http://127.0.0.1:11434

要选择ollama上已经拉取的模型名称,我指定的模型是我自己训练后的模型,同样想要该效果的可以参考我之前的文章 LLaMA-Factory部署以及大模型的训练(细节+新手向)-CSDN博客 

和  LLaMA-Factory微调后模型导入ollama-CSDN博客

3.创建接口

在根路径下创建一个Controller,标记为RestController,指定访问入口为"/ai"。注入chatClient,注意这个对象需要通过构造器注入

@RestController
@RequestMapping("/ai")
public class AiController {

    ChatClient chatClient;

    //需要构造器注入
    public AiController(ChatClient.Builder chatClient) {
        this.chatClient = chatClient.build();
    }

    
}

在其中添加这个方法

 @RequestMapping("/chat")
    public String chat(String prompt){
        //构建提示词->用户提示词->调用模型->取出响应
        return chatClient.prompt().user(prompt)
              .call().content();
    }

这是一个链式处理,该方法的作用是使用chatClient构建提示词中的用户提示词,将传入的字符串作为用户提示词,并使用call()方法请求大模型,最终取出响应中的content内容返回。

5.测试结果

启动Springboot项目,在浏览器访问

http://localhost:8080/ai/chat?prompt=%E4%BD%A0%E5%A5%BD

由于是一个简单示例,并没有编写详细的前端页面,所以直接通过url构建请求

效果如下

 由此实现了一个简单的Spring AI使用ollama进行大模型调用的功能

### 如何在 Windows 上使用 Spring Boot 集成 Ollama DeepSeek 大模型 #### 创建 Spring Boot 项目 为了创建一个新的 Spring Boot 项目,访问 [https://start.spring.io/](https://start.spring.io/) 并配置项目的元数据。点击 ADD DEPENDENCIES 后,在搜索框内输入 `Ollama` 来查找并添加对应的依赖项[^2]。 ```java <dependency> <groupId>com.github.ollama</groupId> <artifactId>spring-ai-ollama</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> ``` #### 私有化部署 DeepSeek 和集成到 Spring Boot 应用程序中 对于私有化的部署过程以及如何将其与 Spring Boot 进行集成的具体操作指南可以在特定文档中找到说明[^1]。这通常涉及下载相应的安装包、设置环境变量,并按照给定的指令完成服务器端口映射等工作。 #### 修改应用程序属性文件 编辑位于 src/main/resources 下面的 application.properties 或者 application.yml 文件来指定连接参数和其他必要的配置选项: ```yaml # application.yml example configuration for connecting to local ollama service. ollama: host: localhost port: 8080 ``` #### 编写控制器类以调用 Ollama API 接口 下面是一个简单的 RESTful Web Service 控制器例子,它展示了怎样通过 HTTP 请求的方式向已部署好的 Ollama 实例发送查询请求并将响应返回给客户端。 ```java @RestController @RequestMapping("/api/v1/deepseek") public class DeepSeekController { @Autowired private OllamaService ollamaService; @PostMapping("/query") public ResponseEntity<String> query(@RequestBody String inputText){ try { String result = ollamaService.query(inputText); return new ResponseEntity<>(result, HttpStatus.OK); } catch (Exception e) { logger.error(e.getMessage(),e); return new ResponseEntity<>("Error occurred",HttpStatus.INTERNAL_SERVER_ERROR); } } } ``` #### 测试接口功能 启动 Spring Boot 应用之后就可以利用 Postman 或 curl 工具来进行测试了。例如,可以通过 POST 方法提交 JSON 数据至 `/api/v1/deepseek/query` 路径下来看是否能够成功获取来自 Ollama 的回复信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值