SpringAI

简介: SpringAI整合全球主流大模型,支持多种技术架构,提供统一开发接口。本文以OpenAI和Ollama为例,详解如何通过SpringAI快速构建对话机器人,涵盖项目搭建、依赖引入与配置,助力开发者高效上手大模型应用开发。

前言
SpringAI整合了全球(主要是国外)的大多数大模型,而且对于大模型开发的三种技术架构都有比较好的封装和支持,开发起来非常方便。
不同的模型能够接收的输入类型、输出类型不一定相同。SpringAI根据模型的输入和输出类型不同对模型进行了分类:
大模型应用开发大多数情况下使用的都是基于对话模型(Chat Model),也就是输出结果为自然语言或代码的模型。
目前SpringAI支持的大约19种对话模型,以下是一些功能对比:
Provider
Multimodality
Tools/Functions
Streaming
Retry
Built-in JSON
Local
OpenAI API Compatible
Anthropic Claude
text, pdf, image






Azure OpenAI
text, image






DeepSeek (OpenAI-proxy)
text






Google VertexAI Gemini
text, pdf, image, audio, video






Groq (OpenAI-proxy)
text, image






HuggingFace
text






Mistral AI
text, image






MiniMax
text






Moonshot AI
text






NVIDIA (OpenAI-proxy)
text, image






OCI GenAI/Cohere
text






Ollama
text, image






OpenAI
In: text, image, audio Out: text, audio






Perplexity (OpenAI-proxy)
text






QianFan
text






ZhiPu AI
text






Watsonx.AI
text






Amazon Bedrock Converse
text, image, video, docs (pdf, html, md, docx …)






其中功能最完整的就是OpenAI和Ollama平台的模型了。
接下来,我们就以这两个平台为例给大家讲解SpringAI的应用。
1.SpringAI入门(对话机器人)
接下来,我们就利用SpringAI发起与大模型的第一次对话。
1.1.快速入门
1.1.1.创建工程
创建一个新的SpringBoot工程,勾选Web、MySQL驱动即可:
工程结构如图:
原始pom.xml如下:
XML
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?xml version="1.0" encoding="UTF-8"?>


4.0.0

org.springframework.boot
spring-boot-starter-parent
3.4.3


com.itheima
ai-demo
0.0.1-SNAPSHOT
ai-demo
ai-demo














17



org.springframework.boot
spring-boot-starter-web

<dependency>
  <groupId>com.mysql</groupId>
  <artifactId>mysql-connector-j</artifactId>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>test</scope>
</dependency>




org.springframework.boot
spring-boot-maven-plugin



1.1.2.引入依赖
SpringAI完全适配了SpringBoot的自动装配功能,而且给不同的大模型提供了不同的starter,比如:
模型/平台
starter
Anthropic
XML
复制代码
1
2
3
4


org.springframework.ai
spring-ai-anthropic-spring-boot-starter

Azure OpenAI
XML
复制代码
1
2
3
4


org.springframework.ai
spring-ai-azure-openai-spring-boot-starter

DeepSeek
XML
复制代码
1
2
3
4


org.springframework.ai
spring-ai-openai-spring-boot-starter

Hugging Face
XML
复制代码
1
2
3
4


org.springframework.ai
spring-ai-huggingface-spring-boot-starter

Ollama
XML
复制代码
1
2
3
4


org.springframework.ai
spring-ai-ollama-spring-boot-starter

OpenAI

相关文章
|
4月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
3280 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
3月前
|
存储 自然语言处理 测试技术
开源嵌入模型对比:让你的RAG检索又快又准
嵌入是RAG系统的核心,将文本转化为语义向量,实现基于含义的检索。本文详解嵌入原理、关键参数及主流开源模型,助你根据分块大小、语言需求和性能约束,选择最合适的嵌入方案,提升RAG效果。
877 4
开源嵌入模型对比:让你的RAG检索又快又准
|
3天前
|
存储 Java API
数组(顺序存储)基本原理
本章讲解数组的底层原理,区分静态数组与动态数组。静态数组是连续内存空间,支持O(1)随机访问,但增删效率低,需搬移数据或扩容;动态数组在此基础上封装常用API。我们将手动实现动态数组的增删查改,理解其运行机制,为后续学习栈、队列等结构打基础。
|
3天前
|
运维 Kubernetes Java
物理部署图
物理部署图描述系统运行时的硬件配置与软件部署结构,展现节点、构件、物件及连接关系,帮助开发与运维人员理解分布式系统的部署架构,确保软硬件协同运行,常用UML元素包括节点、组件、Artifact和通信路径,适用于云计算与容器化环境。
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
认识AI
本文介绍了AI核心概念与大模型开发原理,涵盖人工智能发展历程及Transformer神经网络的关键作用。通过注意力机制,Transformer实现对文本、图像、音频的高效处理,成为GPT等大模型的基础。文章解析了LLM如何利用Transformer进行持续推理生成,逐字输出内容,揭示ChatGPT类模型对话能力的技术本质。(238字)
|
3天前
|
人工智能 自然语言处理 Cloud Native
概述篇
AI时代重塑软件开发,本课程填补DeepSeek+Cursor+Devbox融合教学空白。零基础也能通过自然语言实现“需求→代码→部署”全链路开发。掌握AI辅助设计数据库、生成代码、联调测试到云原生部署,3小时实战交付完整项目,助力开发者高效转型,抢占智能开发先机。(238字)
|
3天前
|
存储 前端开发 数据安全/隐私保护
前端(Cursor)-登录
根据登录页面原型和接口文档,完成员工登录功能开发。实现POST请求调用/login接口,处理用户名密码验证,解析JWT令牌并存储,后续请求携带token头。登录失败提示错误信息,成功后跳转至系统首页。支持退出登录功能,清除token并重定向到登录页。
|
3天前
|
算法
双指针技巧秒杀七道链表题目
本文总结单链表七大技巧:合并有序链表、链表分解、合并K个有序链表、找倒数第k个节点、找中点、判断环及起点、判断相交及交点,均基于双指针思想,涵盖LeetCode多道经典题目,助你系统掌握链表算法核心。
|
3天前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图,横轴为对象,纵轴为时间。它用于展示交互流程、强调时序、体现并发过程,核心元素包括角色、对象、生命线、控制焦点和消息等,广泛应用于系统动态行为建模。