An open API service indexing awesome lists of open source software.

https://github.com/opensolon/solon-ai

Java AI 应用开发框架(支持 LLM,RAG,MCP,Agent)。同时兼容 java8 ~ java25。也可嵌入到 SpringBoot、jFinal、Vert.x、Quarkus 等框架中使用。
https://github.com/opensolon/solon-ai

ai chat deepseek embedding function-call java llm mcp-client mcp-server modelcontextprotocol openai rag reranking tool-call

Last synced: about 10 hours ago
JSON representation

Java AI 应用开发框架(支持 LLM,RAG,MCP,Agent)。同时兼容 java8 ~ java25。也可嵌入到 SpringBoot、jFinal、Vert.x、Quarkus 等框架中使用。

Awesome Lists containing this project

README

          





Solon-AI



Java LLM & RAG & MCP & Agent 应用开发框架(支持已知 AI 开发的各种能力)


克制、高效、开放



https://solon.noear.org/article/learn-solon-ai


Ask DeepWiki

Maven


Apache 2


jdk-8


jdk-11


jdk-17


jdk-21


jdk-25




gitee star


github star


gitcode star


## 简介

Solon AI 是 Solon 项目核心子项目之一。它是一个全场景的 Java AI 开发框架,旨在将 LLM 推理、RAG 知识库、MCP 协议以及 Agent 协作编排进行深度整合。

* 全场景支持:完美契合 Solon 生态,亦可无缝嵌入 SpringBoot、Vert.X、Quarkus 等框架。
* 多模型方言:通过 ChatModel 统一接口,屏蔽不同模型供应商(OpenAI, Ollama, DeepSeek, Gemini 等)的协议差异。
* 图驱动编排:支持将 AI 推理转化为可观测、可治理的计算流图。

其中 solon-ai 的嵌入(包括第三方框架)示例:

* https://gitee.com/solonlab/solon-ai-mcp-embedded-examples
* https://gitcode.com/solonlab/solon-ai-mcp-embedded-examples
* https://github.com/solonlab/solon-ai-mcp-embedded-examples

## 核心模块体验

* ChatModel(通用大语言模型 LLM 调用接口)

支持同步、流式(Reactive)调用,内置方言适配,工具调用,会话记忆等能力。

```java
ChatModel chatModel = ChatModel.of("http://127.0.0.1:11434/api/chat")
.provider("ollama") //需要指定供应商,用于识别接口风格(也称为方言)
.model("qwen2.5:1.5b")
.build();
//同步调用,并打印响应消息
AssistantMessage result = ChatchatModel.prompt("今天杭州的天气情况?")
.options(op->op.toolsAdd(new WeatherTools())) //添加工具
.call()
.getMessage();
System.out.println(result);

//响应式调用
chatModel.prompt("hello").stream(); //Publisher
```

* RAG(知识库)

提供从加载(DocumentLoader)、切分(DocumentSplitter)、向量化(EmbeddingModel)到检索重排(RerankingModel)的全链路支持。

```java
//构建知识库
EmbeddingModel embeddingModel = EmbeddingModel.of(apiUrl).apiKey(apiKey).provider(provider).model(model).batchSize(10).build();
RerankingModel rerankingModel = RerankingModel.of(apiUrl).apiKey(apiKey).provider(provider).model(model).build();
InMemoryRepository repository = new InMemoryRepository(TestUtils.getEmbeddingModel()); //3.初始化知识库

repository.insert(new PdfLoader(pdfUri).load());

//检索
List docs = repository.search(query);

//如果有需要,可以重排一下
docs = rerankingModel.rerank(query, docs);

//提示语增强是
ChatMessage message = ChatMessage.ofUserAugment(query, docs);

//调用大模型
chatModel.prompt(message)
.call();
```

* MCP (Model Context Protocol)

深度集成 MCP 协议(MCP_2025_06_18),支持跨平台的工具、资源与提示语共享。

```java
//服务端
@McpServerEndpoint(channel = McpChannel.STREAMABLE, mcpEndpoint = "/mcp")
public class MyMcpServer {
@ToolMapping(description = "查询天气")
public String getWeather(@Param(description = "城市") String location) {
return "晴,25度";
}
}

//客户端
McpClientProvider clientProvider = McpClientProvider.builder()
.channel(McpChannel.STREAMABLE)
.url("http://localhost:8080/mcp")
.build();
```

* Agent (基于计算流图的智能体体验)

Solon AI 将推理逻辑转化为图驱动的协作流,支持ReAct 自省推理与多专家 Team 协作。

```java
//自省智能体:
ReActAgent agent = ReActAgent.of(chatModel) // 或者用 SimpleAgent.of(chatModel)
.name("weather_expert")
.description("查询天气并提供建议")
.addTool(weatherTool) // 注入 MCP 或本地工具
.build();

agent.prompt("今天北京适合穿什么?").call(); // 自动完成:思考 -> 调用工具 -> 观察 -> 总结

// 组建团队智能体:通过协议(Protocol)自动编排成员角色
TeamAgent team = TeamAgent.of(chatModel)
.name("marketing_team")
.protocol(TeamProtocols.HIERARCHICAL) // 层级式协作(6种预置协议)
.agentAdd(copywriterAgent) // 文案专家
.agentAdd(illustratorAgent) // 视觉专家
.build();

team.prompt("策划一个深海矿泉水的推广方案").call(); // Supervisor 自动拆解任务并分发给对应专家
```

* Ai Flow(流程编排体验)

模拟 Dify 的低代码流式应用,将 RAG、提示词增强、模型调用等环节 YAML 化编排。

```yaml
id: demo1
layout:
- type: "start"
- task: "@VarInput"
meta:
message: "Solon 是谁开发的?"
- task: "@EmbeddingModel"
meta:
embeddingConfig: # "@type": "org.noear.solon.ai.embedding.EmbeddingConfig"
provider: "ollama"
model: "bge-m3"
apiUrl: "http://127.0.0.1:11434/api/embed"
- task: "@InMemoryRepository"
meta:
documentSources:
- "https://solon.noear.org/article/about?format=md"
splitPipeline:
- "org.noear.solon.ai.rag.splitter.RegexTextSplitter"
- "org.noear.solon.ai.rag.splitter.TokenSizeTextSplitter"
- task: "@ChatModel"
meta:
systemPrompt: "你是个知识库"
stream: false
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 flowEngine = FlowEngine.newInstance();
# ...
# flowEngine.eval("demo1");
```

## Solon 项目相关代码仓库

| 代码仓库 | 描述 |
|-----------------------------------------------------------------------------|----------------------------------|
| [/opensolon/solon](../../../../opensolon/solon) | Solon ,主代码仓库 |
| [/opensolon/solon-examples](../../../../opensolon/solon-examples) | Solon ,官网配套示例代码仓库 |
| | |
| [/opensolon/solon-expression](../../../../opensolon/solon-expression) | Solon Expression ,代码仓库 |
| [/opensolon/solon-flow](../../../../opensolon/solon-flow) | Solon Flow ,代码仓库 |
| [/opensolon/solon-ai](../../../../opensolon/solon-ai) | Solon Ai ,代码仓库 |
| [/opensolon/solon-cloud](../../../../opensolon/solon-cloud) | Solon Cloud ,代码仓库 |
| [/opensolon/solon-admin](../../../../opensolon/solon-admin) | Solon Admin ,代码仓库 |
| [/opensolon/solon-integration](../../../../opensolon/solon-integration) | Solon Integration ,代码仓库 |
| [/opensolon/solon-java17](../../../../opensolon/solon-java17) | Solon Java17 ,代码仓库(base java17) |
| [/opensolon/solon-java25](../../../../opensolon/solon-java25) | Solon Java25 ,代码仓库(base java25) |
| | |
| [/opensolon/solon-gradle-plugin](../../../../opensolon/solon-gradle-plugin) | Solon Gradle ,插件代码仓库 |
| [/opensolon/solon-idea-plugin](../../../../opensolon/solon-idea-plugin) | Solon Idea ,插件代码仓库 |
| [/opensolon/solon-vscode-plugin](../../../../opensolon/solon-vscode-plugin) | Solon VsCode ,插件代码仓库 |