在Dify中配置代码执行节点需确保Python代码适配沙箱环境并返回合法字典:检查上游输入格式(如documents数组或JSON字符串),仅用支持模块,最后一行赋值result字典,测试输出是否为纯dict。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中配置代码执行节点时,必须确保Python代码能被沙箱环境安全运行且返回符合后续节点预期的数据结构,否则流程会中断或输出空值。
确认代码节点的输入数据格式
进入工作流编辑页→点击目标Code节点→在右侧面板查看「Inputs」区域。这里显示的是上游节点传入的变量名与值类型,如user_input为字符串、files为文件列表(含url和name字段)。
若上游是「知识库检索」节点,实际传入的是documents数组,每个元素含content和metadata——不检查这个就直接写input['text']会报KeyError。
编写可被沙箱执行的Python代码
在Code节点编辑区粘贴Python代码,注意:沙箱仅支持Python 3.11,不支持os.system、subprocess、open读写本地文件、import除内置模块及numpypandasrequests外的第三方包。
方法一:处理文本并返回字典
直接写:result = {"summary": input['user_input'][:50] + "...", "length": len(input['user_input'])}→最后一行必须是result变量(不可用print或return)。
方法二:解析JSON字符串再加工
若上游传入的是JSON字符串(如{"score": 87, "tags": ["A", "B"]}),需先import json→再data = json.loads(input['user_input'])→最后构造result = {"level": "high" if data["score"] > 80 else "low"}。【未加try-except捕获json.loads异常会导致整个节点失败】
调试代码节点输出结构
第一步:点击右上角「Test」按钮,手动输入测试数据(如{"user_input": "hello world"})→观察「Output」面板是否返回合法JSON对象。
第二步:检查返回值是否为纯字典(非嵌套类实例、非None、不含函数对象),因为下游「LLM」或「条件分支」节点只认dict类型。
第三步:若需传递多个字段给下游,必须全部写进result字典,例如result = {"answer": "yes", "confidence": 0.92, "source": "rule_based"}——漏掉任一键都可能让后续节点拿不到值。
这一步操作起来很简单,直接把文件拖进去就行。


















