解决Dify1.5版本以上无法下载文件问题
一、添加开始节点,支持上传文件
开始节点,添加变量,字段类型选单文件或多文件,文件类型选文档(可以是其他类型)。
接入文档提取器,设置好入参,接入llm。

二、添加一个可以生成文件的插件
我这里用的是 Markdown转换器,输入变量是前一个节点LLM输出的Markdown文本。
注意:
- 不需要让模型输出 “markdown\n ……”,需要是纯Markdown文本,这一步需要提前调试好prompt。例如:请只输出纯markdown文本内容,不要包含任何代码块标记(如markdown),不要输出多余的解释说明。
- 我是使用Markdown转换器的转成xlsx功能,所以llm要输出表格形式。根据插件的输入变量要求传入合适的文本,这个也需要在prompt调试好,不然插件会报错。

三、添加代码执行
传入上一步生成的结果(Array[File]),变量名和代码中保持一致,替换代码中的base_url为自己的Dify地址。

完整代码:
def main(files: list) -> dict:
if not files or len(files) == 0:
return {"result": "没有可用的文件"}
file_info = files[0]
file_url = file_info.get("url", "")
# 构建完整URL(替换为您的Dify服务器地址)
base_url = "http://localhost"
full_url = base_url + file_url
file_link = f"[点击下载]({full_url})"
return {
"result": file_link
}
四、添加直接回复
回复中为代码执行的输出结果变量,到这里就结束了,也可以把llm输出的结果展示出来再跟下载按钮。

2218

被折叠的 条评论
为什么被折叠?



