微信扫码
添加专属顾问
我要投稿
从Docker到源码部署,一文掌握Dify1.6.0升级1.9.1全流程,避开关键陷阱。核心内容: 1. 详细升级步骤:Docker Compose与源码部署两种方式 2. 必须执行的数据迁移与破坏性操作警告 3. 知识库检索报错解决方案与底层原因分析
重要提示
升级后,您必须运行以下迁移来转换现有数据源凭据。此步骤是确保与新版本兼容性所必需的:uv run flask transform-datasource-credentials
一、Docker Compose部署
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
git checkout 1.9.1
git pull origin 1.9.1
docker compose down
tar -cvf volumes-$(date +%s).tgz volumes
docker compose up -d
docker exec -it docker-api-1 uv run flask transform-datasource-credentials
二、源代码部署
git checkout 1.9.1
cd api
uv sync
uv run flask db upgrade
uv run flask transform-datasource-credentials
重要提示
如果您当前使用的是 v2.0.0 - beta.1 或 v2.0.0 - beta.2 版本,您必须运行以下迁移脚本来升级。
[警告] 这是一个破坏性操作,将导致数据丢失。
此迁移脚本将永久删除以下数据:
所有现有知识管道所有相关数据集凭据请在继续之前确保您已备份所有必要信息。
一、知识库检索使用【迭代器】输出给LLM 报错:Run failed: Invalid context structure: xxx
1.1、现象
要解决这个问题,请确保你的代码执行节点输出一个像这样的数组:
请确保你的代码执行节点输出一个像这样的数组:
[
{"content":"First message"},
{"content":"Second message"}
]
如果你的对象还有其他字段,你需要对它们进行转换或序列化,让每个对象都包含一个content 键,里面放着你希望 LLM 处理的文本。直接传递没有这种结构的原始对象数组肯定会触发错误。你可以在 Dify 的LLM 节点实现中看到这个验证和错误处理逻辑。
从GitHub 的关于Dify Issue 中发现:
迭代节点中断性变更 ·问题 #26630 ·朗天才/DIFY
代节点输出中的这种变化(从对象的平面数组到对象数组的数组)是在 Dify 1.9.1 中引入的,这是由于工作流引擎中的重构和新的并行模式支持。节点现在将每个并行作业的输出收集到有序列表中,因此如果每个作业返回一个数组/对象,则结果是嵌套数组。没有代码在并行执行后合并或展平这些数组;这现在是并行模式源中的默认行为。
没有关于此重大更改的官方文档或迁移说明警告。如果您的工作流需要平面数组,则可以手动平展下游代码节点中的输出作为解决方法。例如,在 Python 中:
# If output is an array of arrays of objects
flat= [item for sublist in output for item in sublist]
相关问题和 PR 以获取更多背景信息:
如果需要以前的行为,则需要更新工作流以展平输出,直到发布官方修补程序或选项。请密切关注未来的版本以获取任何更新。
1.3、处理方法
在【迭代器】与【LLM节点】之间增加 【代码执行处理】,把迭代器输出的数组嵌套数组的结果,扁平化处理,处理好后统一合并给LLM节点
from typing import List
from typing import List
def main(output: List[List[str]]):
flattened = [item for sublist in output for item in sublist]
return {
"result": " ".join(flattened)
}
往期推荐
Ollama" data-itemshowtype="0" linktype="text" data-linktype="2">大语言模型引擎全解析:Transformers、vLLM、Llama.cpp、SGLang、MLX 和 Ollama
DeepSeek+BGE-M3来搭建本地知识库实操" data-itemshowtype="0" linktype="text" data-linktype="2">Dify+Ollama+Deepseek+BGE-M3来搭建本地知识库实操
Agent 入门,通往AGI必由之路" data-itemshowtype="0" linktype="text" data-linktype="2">AI Agent 入门,通往AGI必由之路
公众号:架构工匠(ID: gh_e3ddf5fb9980)
CSDN博客:架构工匠
长按二维码关注
愿一个热爱技术的灵魂,给你带来更多共鸣与激情碰撞。
感谢您的阅读!常来哦
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-10-10
用 Dify 零代码搭建 AI 用研助理,5分钟完成100个虚拟用户调研
2025-09-30
重大消息,刚刚Dify 1.9.1发布了!我们聊聊带来了哪些吸引人的功能特性?
2025-09-26
内网环境下Dify1.9.0版本镜像构建过程记录
2025-09-23
刚刚Dify 1.9.0正式发布,快看看有哪些新变化?
2025-09-17
全网首发Dify Nano Banana工作流
2025-09-16
Dify 2.0 重磅升级!知识管道登场,RAG 开发效率直接翻倍
2025-09-07
Dify发布页面用户鉴权方案讨论
2025-09-06
全网首发!Dify 2.0.0 图文混排上线,每个新功能都是爆款!附实战教程(建议收藏)
2025-09-16
2025-09-03
2025-09-06
2025-08-19
2025-07-17
2025-07-18
2025-07-24
2025-07-30
2025-09-02
2025-08-18
2025-09-30
2025-09-23
2025-09-06
2025-09-05
2025-08-29
2025-08-18
2025-08-02
2025-07-30