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 版本协议
- 支持 stdio、sse、streamable 传输方式
- 支持 AI-Flow
- 支持 Spring、jFinal、Vert.x 等 Solon 以外的框架
- 等......更多内容,参考官网介绍
v3.7.2 更新
- 引入 snack4-jsonschema 优化 ToolSchemaUtil
- 添加 solon-ai-core AiMedia:metas 方法
- 添加 solon-ai-core GenerateModel defaultOptions 配置支持
- 添加 solon-ai-core ToolSchemaUtil:buildInputParams 方法,支持 @Body 注解
- 添加 solon-ai-flow GenerateModelCom 组件
- 修复 solon-ai bean 有其它框架代理后,不能识别注解的问题
- 修复 solon-ai ToolSchemaUtil 部分泛型识别失败的问题
- 修复 solon-ai-flow ChatModelCom 加载 chatConfig 配置会出错的问题
- 修复 solon-ai-mcp/mcp-sdk listTools 的 nextCursor 为空时,不能正常获取问题
- solon 升为 3.7.2
v3.6.5 更新(LTS 维护中)
- 修复 solon-ai-mcp/mcp-sdk listTools 的 nextCursor 为空时,不能正常获取问题
- solon 升为 3.6.5
v3.5.9 更新(LTS 维护中)
- 修复 solon-ai-mcp/mcp-sdk listTools 的 nextCursor 为空时,不能正常获取问题
- solon 升为 3.5.9
技术预览
- ChatModel chatModel = ChatModel.of(apiUrl).provider(provider).model(model);
- //同步请求
- chatModel.prompt("hello").call();
- //流式请求
- chatModel.prompt("hello").stream();
复制代码- //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
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |