谁说程序员不懂浪漫:Spring AI 1.0 GA告白520

image-20250522161918091

01 引言

格子衫背包男是网络调侃程序员的固有印象。程序员的鄙视链的最低端,因为一句有女朋女,狠狠的将所有人按在地上摩擦,虽然这是一个梗,但是艺术来源于生活。

程序员也有独属的浪漫。阿里硬是把光棍节(11.11)变成购物狂欢节;10月24日程序员的专属节日,程序员节。来自阿里程序员调侃,因为对抗疫情,终于在2020年2月14日研发出的第一版健康码调试出第一条绿码,为情人节这个节日增加了一抹绿。

然而,2025年5月20日Spring AI 1.0 GA正式发布,标志着Spring AI的稳定版正式落地。随着大模型AI的广泛应用,Spring作为程序员背后的一站式生态圈,Spring AI在520这个浪漫的日子,正式告白所有程序员,仿佛在说,有我在,你们放心使用吧!

image-20250522111824469

02 GA的含金量

初入行或者小白可能不知道GA的含金量。我们来一起了解一下不同版本的含义:

  • GA全称General Availability:

    表示该版本已经达到了一般可用状态,被认为是稳定的,适合生产环境使用。这是最常见的标记,表明该版本已经通过了全面的测试并被认为是可以发布的最终版本。

  • RC全称Release Candidate:

    表示候选发布版本,后面常跟迭代的次数如RC1RC2…这是即将发布的最终版本之前的测试版。RC版本的目的是让开发者进行最后的测试和反馈,以确保在最终发布前尽可能地完善和稳定。

  • PRE

    预览版,内部测试版. 主要是给开发人员和测试人员测试和找BUG用的,不建议使用

  • M全称Milestone:

    表示里程碑版本,后面常跟迭代的次数如M1M2… 这些是开发过程中的早期版本,可能包含不完整的功能或者在功能上还不稳定。

  • SNAPSHOT

    快照版,一般是开发版本,主要用于功能的开发。

如果只作为本地的测试,版本的选择无所谓。但是最终的目的都是为了应用于生产环境,我们就必须选择稳定版本也就是GA版本。

其他版本不是不可用,因为充满不确定性,可能会出现Bug,可能应为升级版本,导致之前的方法不可用。因为在很多测试版本中,作者可能会调整模块结构。Spring AI M5之前和之后,就直接改变的依赖的maven的坐标,升级之后的导致依赖报错。

03 GA版本中都支持什么

简单来讲:

Spring AI 的核心是 ChatClient ,一个可移植且易于使用的 API,它是与 AI 模型交互的主要接口。 ChatClient 支持调用 20 个 AI 模型,从 AnthropicZhiPu。它支持多模式输入和输出和结构化响应 - 通常采用 JSON,以便更轻松地处理应用程序中的输出。

Spring AI还重新设计了图标:

3.1 提示词Prompts

提示词是指导 AI 模型生成特定输出的输入,这些提示的设计和措辞会显著影响模型的响应。提示词准确不准确,决定着最终展示的结果满意程度。会使用提示词是会使用大模型的关键。

代码中的应用是通过使用 ChatModelcall() 方法,该方法采用 Prompt 实例并返回 ChatResponse

3.2 多模态Multimodality

多模态是指模型同时理解和处理来自各种来源的信息(包括文本、图像、音频和其他数据格式)的能力。

我们对大模型的使用都会呈现出多元化的现象,不仅仅只是单纯的视觉、音频和文本。多模态的大模型相继出现包括 OpenAI的 GPT-4o、Google 的 Vertex AI Gemini 1.5、Anthropic 的 Claude3 以及开源产品 Llama3.2LLaVABakLLaVA 能够接受多个输入,包括文本图像、音频和视频,并通过集成这些输入来生成文本响应。

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)

向量数据库包括:ChromaESMilvusNeo4jRedisOracle等。

3.10 可观察性(Observability

可观察性指通过日志记录、指标和跟踪来了解程序内部运行情况的能力。主要包括日志记录、指标和跟踪。

04小结

Spring AI已经集成了大模型常用的功能,提供了丰富的API。AI的发展原本一直被Python开发人员垄断,而Spring AI则是从著名的Python 项目(如 LangChainLlamaIndex)中汲取灵感,但 Spring AI 并不是这些项目的直接移植。

Spring AI项目的成立理念是,下一波生成式 AI 应用程序将不仅适用于 Python 开发人员,而且将在许多编程语言中无处不在。这也是官方给出的答案。

世界地图矢量数据可以通过多种网站进行下载。以下是一些提供免费下载世界地图矢量数据的网站: 1. Open Street Map (https://www.openstreetmap.org/): 这个网站可以根据输入的经纬度或手动选定范围来导出目标区域的矢量图。导出的数据格式为osm格式,但只支持矩形范围的地图下载。 2. Geofabrik (http://download.geofabrik.de/): Geofabrik提供按洲际和国家快速下载全国范围的地图数据数据格式支持shape文件格式,包含多个独立图层,如道路、建筑、水域、交通、土地利用分类、自然景观等。数据每天更新一次。 3. bbbike (https://download.bbbike.org/osm/): bbbike提供全球主要的200多个城市的地图数据下载,也可以按照bbox进行下载。该网站还提供全球数据数据格式种类齐全,包括geojson、shp等。 4. GADM (https://gadm.org/index.html): GADM提供按国家或全球下载地图数据的服务。该网站提供多种格式的数据下载。 5. L7 AntV (https://l7.antv.antgroup.com/custom/tools/worldmap): L7 AntV是一个提供标准世界地图矢量数据免费下载的网站。支持多种数据格式下载,包括GeoJSON、KML、JSON、TopJSON、CSV和高清SVG格式等。可以下载中国省、市、县的矢量边界和世界各个国家的矢量边界数据。 以上这些网站都提供了世界地图矢量数据免费下载服务,你可以根据自己的需求选择合适的网站进行下载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值