🔥 Solon AI 正式发布(支持 Java8+、RAG、MCP、模力方舟)


Solon AI 正式发布了(版号,随 Solon v3.3.1)。历时小半年。

1、简介

Solon AI 是一个 Java AI(智能体) 全场景应用开发框架,提供有丰富的接口能力。主要支持的的智能体开发场景有:Chat;RAG;MCP;AiFlow。

其中 ChatModel 是 Solon AI 的核心模型接口(其它暂略),通过方言的方式(ChatDialect)可适配各种环境(或平台)提供的大语言模型。

2、历时回顾

时间 回顾 备注
2025-01 中 Solon Flow 项目启动 将为 Solon AI 编排提供支持
2025-01 底 Solon AI 项目启动  
2025-02 中   设计 Solon AI 开放接口,和适配机制
2025-03 中 Solon Expression 项目启动 为 Solon AI  RAG 知识库,提供统一的过滤表达式支持
2025-04 初 Solon AI MCP 项目启动  
2025-05 初 Solon Flow Designer 项目启动 (由 广东越洋科技有限公司 供献代码)
2025-05 中 Solon AI Flow 项目启动 使用 Solon Flow 编排 Solon AI 定制的任务组件

3、体验展示

  • ChatModel
public void call(ChatModel chatModel) throws IOException {
chatModel.prompt("hello").call();
}

public void stream(ChatModel chatModel) throws IOException {
chatModel.prompt("hello").stream();
}

public void toolCall(ChatModel chatModel) throws IOException {
chatModel.prompt("今天杭州的天气情况?")
.options(o -> o.toolsAdd(new WeatherTools())
.call();
}

public void session(ChatModel chatModel) throws IOException {
ChatSession chatSession = new ChatSessionDefault("session-1"); 

chatSession.addMessage(ChatMessage.ofUser("今天杭州的天气情况?")); 

chatModel.prompt(chatSession)
.options(o -> o.toolsAdd(new WeatherTools())
.stream();
}
  • RAG
public void init(ChatModel chatModel, RepositoryStorable repository) throws IOException {
PdfLoader loader = new PdfLoader(new File("lzsite.pdf")).additionalMetadata("file", "lzsite.pdf");

List<Document> documents = new SplitterPipeline() 
.next(new RegexTextSplitter("\n\n"))
.next(new TokenSizeTextSplitter(500))
.split(loader.load());

repository.insert(documents);
}

public void search(ChatModel chatModel, RepositoryStorable repository) throws IOException {
String query = "良渚遗址公司有哪些景点?"

//知识库检索
List<Document> context = repository.search(message);

//消息增强
ChatMessage message = ChatMessage.augment(query, context)

chatModel.prompt(message).call();
}
  • MCP-server
@McpServerEndpoint(sseEndpoint = "/mcp/sse")
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";
}

@ResourceMapping(uri = "db://users/{user_id}/email", description = "根据用户ID查询邮箱")
public String getEmail(@Param(description = "用户Id") String user_id) {
return user_id + "@example.com";
}

@PromptMapping(description = "生成关于某个主题的提问")
public Collection<ChatMessage> askQuestion(@Param(description = "主题") String topic) {
return Arrays.asList(ChatMessage.ofUser("请解释一下'" + topic + "'的概念?"));
}
}
  • MCP-client
public void client(ChatModel chatModel){
McpClientProvider clientProvider = McpClientProvider.builder()
.apiUrl("http://localhost:8080/mcp/sse")
.build();

String rst = clientProvider.callToolAsText("getWeather", Map.of("location", "杭州"))
 .getContent();
 
 
chatModel.prompt("杭州今天的天气怎么样?")
.options(options -> { options.toolsAdd(clientProvider))
.call();
}
  • AiFlow
id: helloworld
layout:
- task: "@VarInput"
meta:
message: "你好"
- task: "@ChatModel"
meta:
chatConfig: # "@type": "org.noear.solon.ai.chat.ChatConfig"
provider: "ollama"
model: "qwen2.5:1.5b"
apiUrl: "http://127.0.0.1:11434/api/chat"
- task: "@ConsoleOutput"

# flowEngine.eval("helloworld");

4、最近更新日志

  • 新增 solon-ai-flow 插件
  • 新增 solon-ai-load-ddl 插件
  • 添加 solon-ai-core ChatMessage:ofUser(media) 方法
  • 添加 solon-ai-core ChatSession:addMessage(ChatPrompt) 方法
  • 添加 solon-ai-core ChatSession:addMessage(Collection) 方法
  • 添加 solon-ai-core RerankingConfig,RerankingModel toString 方法
  • 添加 solon-ai-core 模型的网络代理支持(支持简单配置,和复杂构建)
  • 添加 solon-ai-mcp 客户端的网络代理简单配置支持
  • 添加 solon-ai-mcp messageEndpoint 端点配置支持(应对特殊需求,一般自动更好)
  • 添加 solon-ai-mcp ToolMapping,ResourceMapping 注解方法对 Produces 注解的支持(用它可指定结果转换处理)
  • 添加 solon-ai-mcp ToolCallResultConverter:matched 方法
  • 添加 solon-ai-mcp 资源模板的响应适配
  • 添加 solon-ai-mcp McpClientProvider:getResourceTemplates 方法
  • 添加 solon-ai-mcp 检查原语是否存在的方法(hasTool, hasPrompt, hasResource)
  • 添加 solon-ai-mcp 提示语支持 UserMessage 拆解成多条 mcp 内容(如果,同时有媒体和文本的话)
  • 优化 solon-ai-core tool 空参数时的不同大模型兼容性
  • 优化 solon-ai-core ChatSession 的作用,为限数提供支持
  • 优化 solon-ai-core MethodFunctionTool 移除对 Mapping 注解的支持(语意更清楚,之前 MethodToolProvider 已经移除,这个落了)
  • 优化 solon-ai-core EmbeddingRequest,ImageRequest,RerankingRequest 当 resp.getError() 非 null 时,直接出抛异常
  • 优化 solon-ai-mcp 取消 MethodFunctionResource 对反回类型的限制(增加了 resultConverter 转换处理)
  • 优化 solon-ai-mcp McpServerEndpointProvider 支持零添加原语,postStart 后,可添加原语
  • 修复 solon-ai ChatRequestDefault:stream 请求 r1 时,可能会产生两次 tink 消息发射

相關推薦

2025-04-30

2025年4月29日,Qwen家族新成员Qwen3正式发布,包含多种模型版本。 1. 模型类型与参数 MoE 模型:有Qwen3-235B-A22B(总参数2350亿,激活参数220亿)和Qwen3-30B-A3B(总参数300亿,激活参数30亿)。 密集模型:包括Qwen3-32B、14B、8B、4B

2025-05-22

次 ,近半年下载量1200万次。 有透明可预期的《版本发布与维护计划》 有“【社区交流】”和“【商业服务】”双重技术支持 同时支持运行时环境(不基于 java-ee 构建,所以可以同时兼容): java8, java11, java17, java21, j

2025-04-29

产业生态创新发布会上,开源人工智能社区“模力方舟”正式发布,“开源人工智能应用创新大赛”也同步启动,经开区将围绕建设全域人工智能之城,助力共建国内AI开源开放生态。 模力方舟依托开源PHP17年生态构建,积累超

2025-05-14

次 ,近半年下载量1200万次。 有透明可预期的《版本发布与维护计划》 有“【社区交流】”和“【商业服务】”双重技术支持 有什么特点(相对 Java Spring 方案)? 特点 描述 更高的计算性价比 并发高

2025-04-02

今天,模力方舟怀着「严谨且真诚」的态度,向全球代码界宣布一项革命性突破 ——Moark-M1,通过独创的 FishNet 神经融合引擎(FishNet Neuro-Fusion Engine, FNFE),实现了「推理速度快过闪电、训练成本低于一杯奶茶、腹有笑话气

2025-05-23

北京市人民政府发布了关于2024年度北京市科学技术奖励的决定,对为科学技术进步、国际科技创新中心建设、首都经济社会发展作出创造性贡献的科技人员和组织给予奖励。 北京奥思研工智能科技有限公司(原深圳市奥思网

2025-05-22

Spring AI 1.0 现已正式发布,随之一起发布的还有一首新歌以及一个新 logo。 Spring AI 的核心是ChatClient,一种可移植且易于使用的 API,是与 AI 模型交互的主要接口。 Spring AI 的 ChatClient 支持调用20 个AI 模型,从 Anthropic 到 ZhiPu。

2025-04-08

Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,完全支持离线运行。它支持多种 LLM(大型语言模型)运行器,如Ollama和OpenAI兼容 API,并内置了用于 RAG 的推理引擎,使其成为一个强大的 AI 部署解决方案。 上周

2025-05-12

:通过装饰器模式,简化MCP服务器的创建 丰富的功能:支持工具(Tools)、资源(Resources)、提示模板(Prompts)等MCP核心元素 多种传输方式:支持 STDIO 和 SSE 等不同传输协议 类型安全:利用 Java 的类型提示,自动生成 MCP

2025-03-27

其是“小版本升级”。 下面是官方针对 DeepSeek-V3-0324 发布的更新说明。 DeepSeek V3 模型已完成小版本升级,目前版本号 DeepSeek-V3-0324,用户登录官方网页、APP、小程序进入对话界面后,关闭深度思考即可体验。API 接口和使用

2025-03-27

北京时间 3 月 24 日晚,DeepSeek 「突然」发布了模型更新。 但暂时还不是 DeepSeek V4 或 R2,而是 DeepSeek V3 模型的一次更新。 目前,其开源版本目前已经上架开源网站。其开源版本模型体积为 6850 亿参数。 https://huggingface.co/dee

2025-04-29

DeepSeek-R1的发布掀起了AI智能变革的浪潮。在过去几个月里,MaxKB开源企业级AI助手已经帮助大量企业和组织快速落地了DeepSeek,让AI在不同的行业土壤中产生持续、可度量的业务价值。 MaxKB(github.com/1Panel-dev/MaxKB) 可以为本地部

2025-03-28

次 ,近半年下载量1200万次。 有透明可预期的《版本发布与维护计划》 有“【社区交流】”和“【商业服务】”双重技术支持 有什么特点(相对 Java Spring 方案)? 特点 描述 更高的计算性价比 并发高

2025-04-08

Solon AI Solon AI ,是一套大语言模型的 Java 通用开发工具包(是 Solon 的二级项目)。特点: 一套接口支持不同提供者、不同大模型调用(通过方言适配) 支持 Function Call 支持 RAG 支持 AI-Flow(与 Solon Flow 配