如何用 Spring AI + Ollama 构建生成式 AI 应用

一给  金牌会员 | 2024-11-4 00:52:49 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 847|帖子 847|积分 2541

为了构建生成式AI应用,需要完成两个部分:

  • AI大模型服务:有两种方式实现,可以利用大厂的API,也可以本身部署,本文将接纳ollama来构建
  • 应用构建:调用AI大模型的能力实现业务逻辑,本文将接纳Spring Boot + Spring AI来实现
Ollama安装与利用


进入官网:https://ollama.com/ ,下载、安装、启动 ollama
具体步骤可以参考我之前的这篇文章:手把手教你本地运行Meta最新大模型:Llama3.1
构建 Spring 应用


  • 通过spring initializr创建Spring Boot应用
  • 注意右侧选择Spring Web和Spring AI对Ollama的支持依赖


  • 点击“generate”按钮获取工程
  • 利用IDEA或者任何你喜欢的工具打开该工程,工程布局如下;


  • 写个单元测试,尝试在Spring Boot应用里调用本地的ollama服务
  1. @SpringBootTest(classes = DemoApplication.class)
  2. class DemoApplicationTests {
  3.     @Autowired
  4.     private OllamaChatModel chatModel;
  5.     @Test
  6.     void ollamaChat() {
  7.         ChatResponse response = chatModel.call(
  8.                 new Prompt(
  9.                         "Spring Boot适合做什么?",
  10.                         OllamaOptions.builder()
  11.                                 .withModel(OllamaModel.LLAMA3_1)
  12.                                 .withTemperature(0.4)
  13.                                 .build()
  14.                 ));
  15.         System.out.println(response);
  16.     }
  17. }
复制代码
运行得到如下输出:
  1. 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=Spring Boot是一个基于Java的快速开发框架,主要用于创建独立的、生产级别的应用程序。它提供了一个简化的配置过程,使得开发者能够快速构建和部署Web应用程序。
  2. Spring Boot适合做以下几件事情:
  3. 1. **快速开发**: Spring Boot提供了一系列的自动配置功能,可以帮助开发者快速创建基本的应用程序,减少手动编写配置代码的时间。
  4. 2. **独立运行**: Spring Boot可以作为一个独立的应用程序运行,不需要额外的容器或服务器支持。
  5. 3. **生产级别的应用程序**: Spring Boot提供了许多生产级别的特性,例如安全、监控和部署等功能,可以帮助开发者创建高性能、可靠的应用程序。
  6. 4. **Web 应用程序**: Spring Boot可以用于创建Web应用程序,包括RESTful API、WebSockets和其他类型的Web应用程序。
  7. 5. **微服务架构**: Spring Boot支持微服务架构,允许开发者将一个大型应用程序分解成多个小型服务,每个服务都可以独立运行和部署。
  8. 总之,Spring Boot是一个强大的框架,可以帮助开发者快速创建、测试和部署生产级别的应用程序。, metadata={messageType=ASSISTANT}], chatGenerationMetadata=ChatGenerationMetadata{finishReason=stop,contentFilterMetadata=null}]]]
复制代码
上述样例工程打包放公众号了,如果需要的话,关注"程序猿DD",发送关键词spring+ollama获得下载链接。
小结

通过本文的介绍,我们就已经完成了Spring Boot应用与Ollama运行的AI模型之间的对接。剩下的就是与业务逻辑的结合实现,这里读者根据本身的需要去实现即可。
可能存在的一些疑问

  • 如何利用其他AI模型
通过ollama的 Models 页面,可以找到各种其他模型:

选择你要利用的模型来启动即可。

  • 如何植入现有应用?
打开上面工程的pom.xml,可以看到告急就下面两个依赖:
  1. <dependency>
  2.   <groupId>org.springframework.boot</groupId>
  3.   <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5. <dependency>
  6.   <groupId>org.springframework.ai</groupId>
  7.   <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
  8. </dependency>
复制代码
所以,如果要在现有工程引入的话只要引入spring-ai-ollama-spring-boot-starter依赖就可以了。
好了,今天的分享就到这里。最近较忙,分享较少,感谢持续的关注与支持 _
如果您学习过程中如遇困难?可以参加我们超高质量的技术交流群,参与交流与讨论,更好的学习与进步!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

一给

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表