为了构建生成式AI应用,需要完成两个部分:
• AI大模型服务:有两种方式实现,可以使用大厂的API,也可以自己部署,本文将采用ollama来构建
• 应用构建:调用AI大模型的能力实现业务逻辑,本文将采用Spring Boot + Spring AI来实现
Ollama安装与使用
进入官网:https://ollama.com/ ,下载、安装、启动 ollama
具体步骤可以参考我之前的这篇文章:手把手教你本地运行Meta最新大模型:Llama3.1
构建 Spring 应用
1. 通过 spring initializr 创建Spring Boot应用
2. 注意右侧选择Spring Web和Spring AI对Ollama的支持依赖
1. 点击“generate”按钮获取工程
2. 使用IDEA或者任何你喜欢的工具打开该工程,工程结构如下;
1. 写个单元测试,尝试在Spring Boot应用里调用本地的ollama服务
@SpringBootTest(classes = DemoApplication.class)
class DemoApplicationTests {
@Autowired
private OllamaChatModel chatModel;
@Test
void ollamaChat() {
ChatResponse response = chatModel.call(
new Prompt(
"Spring Boot适合做什么?",
OllamaOptions.builder()
.withModel(OllamaModel.LLAMA3_1)
.withTemperature(0.4)
.build()
));
System.out.println(response);
}
}
运行得到如下输出:
ChatResponse [metadata={ id:, usage:{ promptTokens:17, generationTokens:275, totalTokens:292}, rateLimit: org.springframework.ai.chat.metadata.EmptyRateLimit@7b3feb26}, generations=[Generation[assistantMessage=AssistantMessage[messageType=ASSISTANT, toolCalls=[], textContent=SpringBoot是一个基于Java的快速开发框架,主要用于创建独立的、生产级别的应用程序。它提供了一个简化的配置过程,使得开发者能够快速构建和部署Web应用程序。
SpringBoot适合做以下几件事情:
1.**快速开发**:SpringBoot提供了一系列的自动配置功能,可以帮助开发者快速创建基本的应用程序,减少手动编写配置代码的时间。
2.**独立运行**:SpringBoot可以作为一个独立的应用程序运行,不需要额外的容器或服务器支持。
3.**生产级别的应用程序**:SpringBoot提供了许多生产级别的特性,例如安全、监控和部署等功能,可以帮助开发者创建高性能、可靠的应用程序。
4.**Web应用程序**:SpringBoot可以用于创建Web应用程序,包括RESTful API、WebSockets和其他类型的Web应用程序。
5.**微服务架构**:SpringBoot支持微服务架构,允许开发者将一个大型应用程序分解成多个小型服务,每个服务都可以独立运行和部署。
总之,SpringBoot是一个强大的框架,可以帮助开发者快速创建、测试和部署生产级别的应用程序。, metadata={messageType=ASSISTANT}], chatGenerationMetadata=ChatGenerationMetadata{finishReason=stop,contentFilterMetadata=null}]]]
小结
通过本文的介绍,我们就已经完成了Spring Boot应用与Ollama运行的AI模型之间的对接。剩下的就是与业务逻辑的结合实现,这里读者根据自己的需要去实现即可。
可能存在的一些疑问
1. 如何使用其他AI模型
通过ollama的 Models 页面,可以找到各种其他模型:
选择你要使用的模型来启动即可。
2. 如何植入现有应用?
打开上面工程的pom.xml
,可以看到主要就下面两个依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
所以,如果要在现有工程引入的话只要引入spring-ai-ollama-spring-boot-starter
依赖就可以了。
好了,今天的分享就到这里。最近较忙,分享较少,感谢持续的关注与支持 ^_^
上述样例工程打包放公众号了,如果需要的话,关注"程序猿DD",发送关键词`spring+ollama`获得下载链接。
我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。
你还在购买国内的各种昂贵又低质的技术教程吗?这里给大家推荐下我们自研的Youtube视频语音转换插件(https://youtube-dubbing.com/),一键外语转中文,英语不好的小伙伴也可以轻松的学习油管上的优质教程了,下面是演示视频,可以直观的感受一下:
如果您觉得这款插件不错,也可以推荐给您身边的朋友,目前我们开通了分享赚钱功能,只要安装本插件登录注册之后,获取邀请链接,放到你的博客侧边栏、友情链接或者发到朋友圈、微博、X等社交平台,就能获得积分,积分现在是可以i直接提现的哦~
推荐阅读
Java 23 新特性一览 + Java 24 新动态抢先看
推荐一款开源SSL证书管理工具:实现自动申请、部署、续期
Git 客户端新选择:腾讯自研的 UGit
Spring Boot中Tomcat、Jetty、Undertow哪个最好?