🔥(对标 Spring AI 和 LangChain4j)Solon AI v3.7.0 发布
Solon AI & MCP(支持 LTS) Solon AI & MCP ,是 Solon 官方推出的 Java 智能体应用开发框架。旨在为 Java 开发者提供统一的接口抽象层,简化与 OpenAI、DeepSeek、QWen 等主流 AI 模型的集成流程,以及简化 Mcp 的开发体验。同时支持 Java 8 到 Java 25。 主要特点: 一套接口支持不同提供者、不同大模型调用(通过方言适配) 支持聊天模型(ChatModel) 支持 Prompt 和 PromptTemplate 支持会话记忆(ChatSession) 支持 Function Call(或 Tool Call) 支持同步接口(call)与流式接口(stream) 多态模型等 支持生成模型(GenerateModel),生成文案、图像、视频等 支持 RAG 文档加载、分割(excel, html, markdown, pdf, ppt, word...) 矢量知识库(chroma、dashvector、elasticsearch、milvus、opensearch、qdrant、redis、tcvectordb...) 嵌入模型(EmbeddingModel) 、排序模型(RankingModel) 支持 MCP(McpServer、McpClient、McpProxy),支持 MCP_2025-03-26 版本协议 支持 AI-Flow 支持 Spring、jFinal、Vert.x 等 Solon 以外的框架 等......更多内容,参考官网介绍 v3.7.0 更新 优化 solon-ai-core ToolSchemaUtil:outputSchema 泛型处理 修复 solon-ai parseToolCall 接收 stream 中间消息时可能会异常(添加 hasNestedJsonBlock 检测) 修复 solon-ai-mcp 可能出现 Unknown media type 错误(取消 request.contentType 空设置) jedis 升为 7.0.0 (通过 redisx) solon 升为 3.7.0 v3.6.4 更新(LTS 维护中) 优化 solon-ai-mcp 取消 request.contentType("") 设置 修复 solon-ai parseToolCall 接收 stream 中间消息时可能会异常(添加 hasNestedJsonBlock 检测) 修复 solon-ai-mcp 可能出现 Unknown media type 错误(取消 request.contentType 空设置) solon 升为 3.6.4 v3.5.8 更新(LTS 维护中) 优化 solon-ai-mcp 取消 request.contentType("") 设置 修复 solon-ai parseToolCall 接收 stream 中间消息时可能会异常(添加 hasNestedJsonBlock 检测) 修复 solon-ai-mcp 可能出现 Unknown media type 错误(取消 request.contentType 空设置) solon 升为 3.5.8 技术预览 构建聊天模型(统一方式,支持不同的模型构建) ChatModel chatModel = ChatModel.of(apiUrl).provider(provider).model(model); //同步请求 chatModel.prompt("hello").call(); //流式请求 chatModel.prompt("hello").stream(); 使用 MCP //MCP 服务端 @McpServerEndpoint(channel = McpChannel.STREAMABLE, mcpEndpoint = "/mcp") public class McpServerTool { //工具 @ToolMapping(description = "查询天气预报") public String getWeather(@Param(description = "城市位置") String location) { return "晴,14度"; } //资源 @ResourceMapping(uri = "config://app-version", description = "获取应用版本号", mimeType = "text/config") public String getAppVersion() { return "v3.2.0"; } //提示语 @PromptMapping(description = "生成关于某个主题的提问") public Collection<ChatMessage> askQuestion(@Param(description = "主题") String topic) { return Arrays.asList( ChatMessage.ofUser("请解释一下'" + topic + "'的概念?") ); } } //MCP 客户端 McpClientProvider clientProvider = McpClientProvider.builder() .channel(McpChannel.STREAMABLE) .apiUrl("http://localhost:8080/mcp") .build(); //客户端与聊天模型集成 //::构建时集成(全局) ChatModel chatModel = ChatModel.of(apiUrl).provider(provider) .model(model) .defaultToolsAdd(clientProvider); //::聊天时集成(单次) chatModel.prompt("hello").options(o -> o.toolsAdd(clientProvider)).call(); 项目仓库地址? gitee:https://gitee.com/opensolon/solon-ai gitcode:https://gitcode.com/opensolon/solon-ai github:https://github.com/opensolon/solon-ai 官网? https://solon.noear.org/article/learn-solon-ai