01 引言
格子衫背包男是网络调侃程序员的固有印象。程序员的鄙视链的最低端,因为一句有女朋女,狠狠的将所有人按在地上摩擦,虽然这是一个梗,但是艺术来源于生活。
程序员也有独属的浪漫。阿里硬是把光棍节(11.11)变成购物狂欢节;10月24日程序员的专属节日,程序员节。来自阿里程序员调侃,因为对抗疫情,终于在2020年2月14日研发出的第一版健康码调试出第一条绿码,为情人节这个节日增加了一抹绿。
然而,2025年5月20日Spring AI 1.0 GA
正式发布,标志着Spring AI
的稳定版正式落地。随着大模型AI的广泛应用,Spring
作为程序员背后的一站式生态圈,Spring AI
在520这个浪漫的日子,正式告白所有程序员,仿佛在说,有我在,你们放心使用吧!
02 GA
的含金量
初入行或者小白可能不知道GA
的含金量。我们来一起了解一下不同版本的含义:
-
GA
全称General Availability:表示该版本已经达到了一般可用状态,被认为是稳定的,适合生产环境使用。这是最常见的标记,表明该版本已经通过了全面的测试并被认为是可以发布的最终版本。
-
RC
全称Release Candidate:表示候选发布版本,后面常跟迭代的次数如
RC1
、RC2
…这是即将发布的最终版本之前的测试版。RC版本的目的是让开发者进行最后的测试和反馈,以确保在最终发布前尽可能地完善和稳定。 -
PRE
:预览版,内部测试版. 主要是给开发人员和测试人员测试和找BUG用的,不建议使用
-
M
全称Milestone:表示里程碑版本,后面常跟迭代的次数如
M1
、M2
… 这些是开发过程中的早期版本,可能包含不完整的功能或者在功能上还不稳定。 -
SNAPSHOT
快照版,一般是开发版本,主要用于功能的开发。
如果只作为本地的测试,版本的选择无所谓。但是最终的目的都是为了应用于生产环境,我们就必须选择稳定版本也就是GA
版本。
其他版本不是不可用,因为充满不确定性,可能会出现Bug
,可能应为升级版本,导致之前的方法不可用。因为在很多测试版本中,作者可能会调整模块结构。Spring AI M5
之前和之后,就直接改变的依赖的maven的坐标,升级之后的导致依赖报错。
03 GA
版本中都支持什么
简单来讲:
Spring AI 的核心是 ChatClient
,一个可移植且易于使用的 API,它是与 AI 模型交互的主要接口。 ChatClient
支持调用 20 个 AI 模型,从 Anthropic
到 ZhiPu
。它支持多模式输入和输出和结构化响应 - 通常采用 JSON,以便更轻松地处理应用程序中的输出。
Spring AI
还重新设计了图标:
3.1 提示词Prompts
提示词是指导 AI 模型生成特定输出的输入,这些提示的设计和措辞会显著影响模型的响应。提示词准确不准确,决定着最终展示的结果满意程度。会使用提示词是会使用大模型的关键。
代码中的应用是通过使用 ChatModel
的 call()
方法,该方法采用 Prompt
实例并返回 ChatResponse
。
3.2 多模态Multimodality
多模态是指模型同时理解和处理来自各种来源的信息(包括文本、图像、音频和其他数据格式)的能力。
我们对大模型的使用都会呈现出多元化的现象,不仅仅只是单纯的视觉、音频和文本。多模态的大模型相继出现包括 OpenAI的 GPT-4o
、Google 的 Vertex AI Gemini 1.5
、Anthropic 的 Claude3
以及开源产品 Llama3.2
、LLaVA
和 BakLLaVA
能够接受多个输入,包括文本图像、音频和视频,并通过集成这些输入来生成文本响应。
3.3 大模型Models
Spring AI
的核心就是大模型,包含20中AI模型,主要分了四大类:
-
对话模型(Chat Models):
常用的聊天模型,开发人员能够将 AI 驱动的聊天完成功能集成到其应用程序中。它利用预先训练的语言模型,例如 GPT (Generative Pre-trained Transformer),以自然语言生成对用户输入的类似人类的响应。如Amazon、DeepSeek、Mistral AI等。
-
向量模型(Embedding Models):
是一类机器学习模型,它们的核心功能是将高维、离散的输入数据(如词汇、类别标签、节点或实体)映射到低维、连续的向量空间中。这些向量(即 embeddings)通常具有丰富的语义信息,并能够捕捉原始数据之间的潜在关系和相似度。如:Azure OpenAI、Mistral AI、OpenAI、Qianfan等。
-
图像模型(Image Models):
用于与专门用于图像生成的各种 AI 模型进行交互,使开发人员能够以最少的代码更改在不同的图像相关模型之间切换。这种设计符合 Spring 的模块化和可互换性理念,确保开发人员能够快速使其应用程序适应与图像处理相关的不同 AI 功能。如:Azure OpenAI、OpenAI、ZhipuAI、Qianfan等。
-
音频模型(Audio Models):
它们基于深度学习和大模型架构,能够处理和理解复杂的音频数据。例如文本转语音、翻译第二个功能。相应的大模型有:OpenAI、Azure OpenAI。
-
监管模型(Moderation Models):
在机器学习和自然语言处理领域中用于自动识别并过滤不适当的内容。这些模型广泛应用于社交媒体平台、在线社区和其他需要内容监控的服务,以确保平台上的内容符合社区准则和法律法规。如:OpenAI、Mistral AI。
3.4 聊天记忆Chat Memory
大型语言模型 (LLM) 是无状态的,这意味着它们不会保留有关以前交互的信息。当您希望在多个交互中维护上下文或状态时,这可能是一个限制。为了解决这个问题,Spring AI 提供了聊天内存功能,允许您在与 LLM 的多次交互中存储和检索信息,最终实现多轮聊天。
3.5 工具调用(Tool Calling
)
也可以叫函数调用(Function Calling),允许模型与一组 API 或工具进行交互,从而增强其功能。
AI 模型无法访问实时信息,模型无法回答任何假设了解信息(如当前日期或天气预报)的问题。但是,我们可以提供一个可以检索此信息的工具,并让模型在需要访问实时信息时调用此工具。
主要注解参数@Tool
、@ToolParam
。
3.6 模型上下文协议 (MCP
)
MCP是一种标准化协议,使 AI 模型能够以结构化方式与外部工具和资源交互。它支持多种传输机制,以便在不同环境中提供灵活性。通过同步和异步通信模式实现与 AI 模型和工具的标准化交互。
函数调用和MCP有着极其类似的功能,都是我们加载一些实时工具为大模型赋能。但是函数调用只能自己的模型使用,其他模型无法使用,而MCP正是为了解决此问题,更像将函数调用共享化,实现资源共享的目的。
3.7 检索增强生成(RAG
)
RAG
全称Retrieval Augmented Generation,主要用于克服大型语言模型的局限性,通过自有垂域数据库检索相关信息,然后合并成为提示模板,给大模型生成漂亮的回答。
3.8 模型评估(Model Evaluation
)
模型评估是指在机器学习和数据科学领域中,对构建的模型进行性能评估的过程。其目的是量化模型的性能,以便选择最优模型并进行优化。模型评估的核心在于选择合适的评价指标,并通过这些指标来衡量模型的预测能力。
通过测试 AI 应用程序需要评估生成的内容,以确保 AI 模型没有产生幻觉响应。
3.9 向量数据库(Vector Databases
)
向量数据库是一种特殊类型的数据库,在 AI 应用程序中起着至关重要的作用。在向量数据库中,查询不同于传统的关系数据库。它们执行相似性搜索,而不是完全匹配。当给定一个向量作为查询时,向量数据库会返回与查询向量相似的向量。
向量数据库用于将数据与 AI 模型集成。使用它们的第一步是将您的数据加载到向量数据库中。然后,当要将用户查询发送到 AI 模型时,首先检索一组类似的文档。然后,这些文档用作用户问题的上下文,并与用户的查询一起发送到 AI 模型。这种技术被称为检索增强生成 (RAG)
向量数据库包括:Chroma
、ES
、Milvus
、Neo4j
、Redis
、Oracle
等。
3.10 可观察性(Observability
)
可观察性指通过日志记录、指标和跟踪来了解程序内部运行情况的能力。主要包括日志记录、指标和跟踪。
04小结
Spring AI
已经集成了大模型常用的功能,提供了丰富的API。AI
的发展原本一直被Python
开发人员垄断,而Spring AI
则是从著名的Python
项目(如 LangChain
和 LlamaIndex
)中汲取灵感,但 Spring AI 并不是这些项目的直接移植。
Spring AI
项目的成立理念是,下一波生成式 AI 应用程序将不仅适用于 Python 开发人员,而且将在许多编程语言中无处不在。这也是官方给出的答案。