找回密码
 立即注册
首页 业界区 业界 Solon Ai Flow 编排开发框架发布预告(效果预览) ...

Solon Ai Flow 编排开发框架发布预告(效果预览)

泥地锚 2025-6-2 23:55:22
Solon Ai 在推出 Solon Ai Mcp 后,又将推出 Solon Ai Flow。
1、Solon Ai Flow 是个啥?

Solon Ai Flow 是一个智能体编排开发框架(基于 solon-flow 构建)。它是框架!不是工具,不是产品(这与市面上流行的工具和产品,有较大差别)。
使用 yaml 格式编排,很像 docker-compose 的观感。
2、发布预告

预计下周(2025年农历小满)发布首个版本。
3、效果预览


  • 简单的聊天智能体
  1. id: chat_case1
  2. layout:
  3.   - type: "start"
  4.   - task: "@TextInput"
  5.     meta:
  6.       text: "你好"
  7.   - task: "@ChatModel"
  8.     meta:
  9.       systemPrompt: "你是个聊天助手"
  10.       stream: false
  11.       chatConfig: # "@type": "org.noear.solon.ai.chat.ChatConfig"
  12.         provider: "ollama"
  13.         model: "qwen2.5:1.5b"
  14.         apiUrl: "http://127.0.0.1:11434/api/chat"
  15.   - task: "@TextOutput"
复制代码

  • RAG 知识库智能体
  1. id: rag_case1
  2. layout:
  3.   - type: "start"
  4.   - task: "@TextInput"
  5.     meta:
  6.       text: "Solon 是谁开发的?"
  7.   - task: "@EmbeddingModel"
  8.     meta:
  9.       embeddingConfig: # "@type": "org.noear.solon.ai.embedding.EmbeddingConfig"
  10.         provider: "ollama"
  11.         model: "bge-m3"
  12.         apiUrl: "http://127.0.0.1:11434/api/embed"
  13.   - task: "@InMemoryRepository"
  14.     meta:
  15.       documentSources:
  16.         - "https://solon.noear.org/article/about?format=md"
  17.       splitPipeline:
  18.         - "org.noear.solon.ai.rag.splitter.RegexTextSplitter"
  19.         - "org.noear.solon.ai.rag.splitter.TokenSizeTextSplitter"
  20.   - task: "@ChatModel"
  21.     meta:
  22.       systemPrompt: "你是个知识库"
  23.       stream: false
  24.       chatConfig: # "@type": "org.noear.solon.ai.chat.ChatConfig"
  25.         provider: "ollama"
  26.         model: "qwen2.5:1.5b"
  27.         apiUrl: "http://127.0.0.1:11434/api/chat"
  28.   - task: "@TextOutput"
复制代码

  • 两个智能体表演相声式吵架(llm 与 llm 讲相声)
  1. id: pk_case1
  2. layout:
  3.   - type: "start"
  4.   - task: "@TextInput"
  5.     meta:
  6.       text: "你好"
  7.   - task: "@ChatModel"
  8.     id: model_a
  9.     meta:
  10.       systemPrompt: "你是一个智能体名字叫“阿飞”。将跟另一个叫“阿紫”的智能体,表演相声式吵架。"
  11.       stream: false
  12.       chatSession: "A"
  13.       chatConfig: # "@type": "org.noear.solon.ai.chat.ChatConfig"
  14.         provider: "ollama"
  15.         model: "qwen2.5:1.5b"
  16.         apiUrl: "http://127.0.0.1:11434/api/chat"
  17.   - task: "@TextOutput"
  18.     meta:
  19.       prefix: "阿飞: "
  20.   - task: "@ChatModel"
  21.     id: model_b
  22.     meta:
  23.       systemPrompt: "你是一个智能体名字叫“阿紫”。将跟另一个叫“阿飞”的智能体,表演相声式吵架。"
  24.       stream: false
  25.       chatSession: "B"
  26.       chatConfig: # "@type": "org.noear.solon.ai.chat.ChatConfig"
  27.         provider: "ollama"
  28.         model: "qwen2.5:1.5b"
  29.         apiUrl: "http://127.0.0.1:11434/api/chat"
  30.   - task: "@TextOutput"
  31.     meta:
  32.       prefix: "阿紫: "
  33.   - type: "exclusive"
  34.     link:
  35.       - nextId: model_a
  36.         condition: 'context.counter().incr("demo") < 10'
  37.       - nextId: end
  38.   - type: "end"
  39.     id: "end"
复制代码
4、如何运行?

case2, csae3, case4 是用 TextInput,TextOutput 作输出输入。通过流引擎和引上下文,即可运行。
  1. @SolonTest
  2. public class ChatTest {
  3.     @Inject
  4.     FlowEngine flowEngine;
  5.    
  6.     @Test
  7.     public void case2() {
  8.         flowEngine.eval("case2");
  9.     }
  10.    
  11.     @Test
  12.     public void case3() {
  13.         flowEngine.eval("case3");
  14.     }
  15.    
  16.     @Test
  17.     public void case4() {
  18.         flowEngine.eval("case4");
  19.     }
  20. }
复制代码
csae1 则是用 ChatInput 和 ChatOutput 作输入输出(基于 Context.current() 输入和输出),需要正常的 web 聊天场景
  1. @Controller
  2. public class DemoController {
  3.     @Inject
  4.     FlowEngine flowEngine;
  5.     ChatSession chatSession = new ChatSessionDefault();
  6.     @Mapping("case1")
  7.     public void case1() throws Exception {
  8.         FlowContext flowContext = new FlowContext();
  9.         flowContext.put(Attrs.CTX_CHAT_SESSION, chatSession); //传递聊天会话
  10.         flowEngine.eval("case1", flowContext);
  11.     }
  12. }
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册