第23章:LLM 节点与模型调度机制深度解析
📅 2026/7/6 8:31:35
👁️ 阅读次数
📝 编程学习
1. 项目背景
Workflow 中使用频率最高的节点是什么?LLM 节点。但它不是"把 Prompt 拼好一发了事"——背后有三层调度,每一层都可能出问题,排查效率取决于你对这三层的理解深度。
第一层:Prompt 模板渲染(Jinja2)。你在 LLM 节点的输入框中写了{ {#start.query#}}和{ {#context#}}。Dify 在调用 LLM 之前,必须先用变量池中的实际值替换这些占位符。如果变量不存在、类型不匹配、或者嵌套引用循环——渲染失败就是"变量未找到"错误的根源。
第二层:模型实例获取(ModelManager)。Dify 需要根据租户 ID + Provider 类型 + 模型名称,找到匹配的 API 凭据。如果配了 3 个 OpenAI Key,ModelManager 还要决定用哪一个——这就是负载均衡(Round Robin)+ 故障转移(Cooldown)的调度逻辑。选不到可用凭据就报NoAvailableModelError。
第三层:LLM 调用执行。不同的 Provider 调用方式不同——OpenAI 走httpx.post("https://api.openai.com/v1/chat/completions"),Ollama 走httpx.post("http://ollama:11434/api/chat"),插件模型走 gRPC。
编程学习
技术分享
实战经验