Skip to content

ServiceFoundation/solon-ai

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,711 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


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 的嵌入(包括第三方框架)示例:

核心模块体验

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

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

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<ChatResponse>
  • RAG(知识库)

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

//构建知识库
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<Document> 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),支持跨平台的工具、资源与提示语共享。

//服务端
@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 协作。

//自省智能体:
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 化编排。

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

About

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

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%