【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进行大模型调用的功能