领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我们很高兴地宣布 Spring AI 1.0.0 Milestone 5 发布。
与往常一样,本次发布包含多项新功能和错误修复。然而,我们更加注重从设计角度审视代码库,目标是在 2025 年初正式发布(GA)。虽然我们已尝试通过在一个发布周期内弃用方法和类来平稳过渡,但仍存在一些我们已知(也可能有一些我们未知的)的破坏性变更,请您谅解。请参阅下方的“破坏性变更”部分。
MCP 是构建使用 AI 工具和资源的交互式应用程序的变革性技术。它使您能够创建既快速又灵活的应用程序,利用 AI 来处理您的本地数据以及托管在云中的服务。
尽管目前 MCP 独立于 Spring AI 孵化,但我们很高兴宣布 Spring AI MCP 版本 0.20 的实验性发布。这是一个用于 模型上下文协议 (MCP) 的 Java SDK。该项目提供了 Java/Spring 应用程序与 MCP 兼容的 AI 资源和工具之间的无缝集成。
有关架构和实现的更多详细信息,请访问 模型上下文协议文档。在我们的 spring-ai-examples 仓库 中可以找到将 MCP 与 Spring 结合使用的示例。
// Prepare the audio resource
var audioResource = new ClassPathResource("speech1.mp3");
// Create a user message with audio and send it to the chat model
String response = chatClient.prompt()
.user(u -> u.text("What is this recording about?")
.media(MimeTypeUtils.parseMimeType("audio/mp3"), audioResource))
.options(OpenAiChatOptions.builder()
.withModel(OpenAiApi.ChatModel.GPT_4_O_AUDIO_PREVIEW).build())
.call()
.content();
以及如何从文本生成音频输出:// Generate an audio response
ChatResponse response = chatClient
.prompt("Tell me a joke about the Spring Framework")
.options(OpenAiChatOptions.builder()
.withModel(OpenAiApi.ChatModel.GPT_4_O_AUDIO_PREVIEW)
.withOutputModalities(List.of("text", "audio"))
.withOutputAudio(new AudioParameters(Voice.ALLOY, AudioResponseFormat.WAV))
.build())
.call()
.chatResponse();
// Access the audio transcript
String audioTranscript = response.getResult().getOutput().getContent();
// Retrieve the generated audio
byte[] generatedAudio = response.getResult().getOutput().getMedia().get(0).getDataAsByteArray();
有关新 RAG 架构和实现细节的全面信息,请查看我们 更新的文档。如需实践经验,请在这些 示例应用程序 中探索实际的 RAG 实现。
查看我们的 Kotlin 示例,了解这些功能的实际应用。
最明显的破坏性变更在于更改了每个向量存储实现的包名称。不幸的是,它们之前都使用了相同的包名,但位于不同的独立伪件中,这是不被允许的。
`MilvusVectorStore` 已从 `org.springframework.ai.vectorstore` 迁移到 `org.springframework.ai.vectorstore.milvus`。
在许多类中(尤其侧重于向量存储和聊天选项)的构建器模式使用上进行了一致性调整。
MilvusVectorStore vectorStore = MilvusVectorStore.builder(milvusServiceClient, embeddingModel)
.initializeSchema(true)
.build();
其他破坏性变更包括:
`Document` 现在仅支持单个文本或媒体内容实例。这使得注入管道与嵌入的处理更加简单易懂。同样,之前已弃用的 `Document` 的 embedding 字段已被移除 (#1883)。
更改了 `TokenCountBatchingStrategy` 的构造函数参数 (#1670)。
大量贡献者对代码进行了其他重构、错误修复和文档增强。如果您的 PR 尚未处理,我们将尽快处理,请耐心等待。感谢以下贡献者:
M5 发布未能完成我们希望在设计重构方面进行的所有工作,因此我们将在 2025 年 1 月初发布最后一个 M6 版本,以解决这些问题,随后发布 1.0.0 RC1,并尽快发布 1.0.0 GA 版本。
设计重点领域包括:
这是 Spring AI 令人惊叹的一年。我们感谢社区的支持和贡献。期待 2025 年更加精彩!