掘金 人工智能 05月14日 14:57
SpringAI更新:废弃tools方法、正式支持DeepSeek!
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Spring AI 近期发布了 M8 版本,更新迅速。本次更新废除了 tools 方法,采用 toolCallbacks 方法,并增强了聊天记忆功能,改进了 ChatMemory API 和存储策略,支持多种存储后端。此外,MCP 工具回调配置也得到增强,提示工程文档更加完善,向量数据库存储功能也得到增强,同时修复了 Cosmos DB Entra ID 的支持问题。最重要的是,DeepSeek SDK 正式发布,使得 DeepSeek 可以与其他使用 OpenAI 协议的大模型并存,为开发者提供了更多选择。

🛠️tools 方法被 toolCallbacks 方法取代,新的写法使得工具回调更加规范。

💬 ChatMemory API 得到改进,实现更灵活的对话历史管理,并支持 InMemoryChatMemoryRepository 和 JdbcChatMemoryRepository 等多种存储后端。

🚀 DeepSeek SDK 正式发布,让 DeepSeek 可以和 OpenAI 或其他使用 OpenAI 协议的大模型并存,打破了之前二选一的限制。

📚 提示工程文档增强,为开发人员提供有效提示设计的最佳实践,并包含各种用例的示例和模式。

AI 技术发展很快,同样 AI 配套的相关技术发展也很快。这不今天刚打开 Spring AI 的官网就发现它又又又又更新了,而这次更新距离上次更新 M7 版本才不过半个月的时间,那这次 Spring AI 给我们带来了哪些惊喜呢?一起来看。

重点升级点

我们先来判断 Spring AI M8 的重点升级点:

    废除了 tools 方法,取而代之的是 toolCallbacks 方法,写法对比如下:
      早期版本:
// Old code in M7 - no longer works correctly in M8chatClient.prompt("What day is tomorrow?")    .tools(toolCallback)    .call()    .content();
2. 最新版本:
// Updated code for M8chatClient.prompt("What day is tomorrow?")    .toolCallbacks(toolCallback)    .call()    .content();
    聊天记忆增强功能
      改进的 ChatMemory API,实现更灵活的对话历史管理。新 ChatMemoryRepository 允许不同的存储策略。添加 MessageWindowChatMemory 用于维护历史消息。改进属性命名以确保跨实现的一致性。支持各种存储后端:
        InMemoryChatMemoryRepository(默认)。JdbcChatMemoryRepository 对于关系数据库持久化支持。
    增强的 MCP 工具回调配置
      在 MCP 客户端属性中添加了工具回调配置。支持 MCP 服务器中的完成规范。为 MCP 服务器添加了指令支持。向 WebFlux 和 WebMvc 传输提供程序添加了 SSE 端点参数。
    提示工程文档增强
      添加提示工程模式文档。为开发人员提供有效提示设计的最佳实践。包括各种用例的示例和模式。
    向量数据库存储功能增强

官方更新日志:spring.io/blog/2025/0…

DeepSeek SDK 正式发布

除了以上内容之外,官方的更新日志中没提到的,还有对于 DeepSeek SDK 的正式发布,之前版本中虽然有关于 DeepSeek 的支持,但并不是真正的支持,只是让 DeepSeek 使用 OpenAI 协议实现对 DeepSeek 的调用,而不是真正的 DeepSeek SDK 支持。

那么 OpenAI 协议和真正的 SDK 支持的区别是啥呢?

简单来说,举个简单的例子你就明白了,就是 OpenAI 相当于你上班,因为你自己没车,所以你只能蹭同事的车;而有了 SDK 的支持之后,相当于你有自己的车了,不需要在蹭别人的车了。

也就意味着,DeepSeek 可以和 OpenAI 或其他使用 OpenAI 协议的大模型并存了,之前是二选一,你(DeepSeek)使用了 OpenAI 协议,那么其他人就没办法使用 OpenAI 协议了,现在你有自己的 SDK 了,就可以和其他兼容 OpenAI 或 OpenAI 一起使用了。

DeepSeek 使用变化

DeepSeek SDK 的具体使用如下。

    准备工作:在 DeepSeek 申请 APIKey。添加依赖
<dependency>    <groupId>org.springframework.ai</groupId>    <artifactId>spring-ai-deepseek-spring-boot-starter</artifactId></dependency>
    设置配置信息
spring.ai.deepseek.api-key=YOUR_API_KEYspring.ai.deepseek.chat.options.model=deepseek-chatspring.ai.deepseek.chat.options.temperature=0.8
    编写调用代码
@RestControllerpublic class ChatController {    private final DeepSeekChatModel chatModel;    @Autowired    public ChatController(DeepSeekChatModel chatModel) {        this.chatModel = chatModel;    }    // 普通输出    @GetMapping("/ai/generate")    public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {        return Map.of("generation", chatModel.call(message));    }    // 流式输出    @GetMapping("/ai/generateStream")public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {        var prompt = new Prompt(new UserMessage(message));        return chatModel.stream(prompt);    }}

小结

AI 发展速度很快,对各行各业的影响也很大,充分了解和掌握 AI 知识,对日常工作提效或以后跳槽都有很大的帮助,让我们一起行动起来,拥抱这场 AI 盛宴吧。

本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、LangChain4j、Dify、Agent、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型等内容。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Spring AI DeepSeek SDK AI开发 聊天记忆 向量数据库
相关文章