在 PaiFlow 里,LLM 节点是最核心的节点之一,它要做提示词拼装、多轮对话、流式输出、异常兜底。所以我们在实现上,力求:
第一,不管是 DeepSeek、讯飞星火、智谱,还是后面可能接入的其他模型,节点层都不应该感知这些差异。第二,它要理解“上下文”。提示词模板、变量替换、多轮对话历史,都要能兼顾。第三,支持实时反馈,流式输出几乎是刚需。
1.LLM节点执行器的整体设计
LLMNodeExecutor 是 PaiFlow 工作流引擎中专门负责与大语言模型(LLM)进行交互的节点执行器 。它的核心目标是:将工作流中的业务数据(如用户输入、上下文历史)转换为标准的 LLM 请求,然后处理 LLM 返回的响应(包括流式和非流式),并将输出格式化为工作流可以继续处理的结果。
作为 AbstractNodeExecutor 的子类,它天然继承了超时、重试、输入解析、输出存储、事件回调( onNodeStart / onNodeEnd )等通用能力。
LLMNodeExecutor 的核心是实现 executeNode(...) 方法,在这个方法中注入 LLM 独有的业务逻辑。
它通过经典的设计模式(模板方法模式+工厂模式),将通用流程控制、具体业务实现和底层服务依赖三者完美解耦。对上,遵守 AbstractNodeExecutor 定义的模板,无缝融入工作流的生命周期管理;对下 ,通过工厂和接口,灵活适配多种 LLM 服务。另外,还能通过 Callback 将引擎的 SSE 事件推送机制连接起来。
2.LLM节点执行器的具体实现
2.1 LLM节点的配置示例
LLM ...
热门评论
15 条评论
回复