摘要:Dify v0.7.0 重磅发布。新特性引入 Conversation Variables 与 Variable Assigner。该更新突破上下文窗口限制,赋予 Chatflow 更精细的 LLM 记忆控制力。助力开发者构建更智能的生产级应用。
分类:Release
Dify v0.7.0:引入 Conversation Variables 与 Variable Assigner,全面增强 LLM 记忆能力
我们一直专注于优化 LLM 应用中的记忆管理。目标是满足特定场景的定制化需求。LLM 可以将聊天记录存入上下文窗口。但注意力机制存在天然限制。在复杂场景中,这容易导致记忆断层或焦点模糊。
Dify 最新版本通过两项新功能解决了这一痛点:Conversation Variables 和 Variable Assigner 节点。这两项功能共同为基于 Chatflow 构建的 LLM 应用提供了更灵活的记忆控制能力。它们允许应用读取和写入关键用户输入。这显著提升了 LLM 处理特定业务需求的能力。同时,进一步改善了其在生产环境中的实际表现。
Conversation Variables:实现精准的上下文记忆存储
Conversation Variables 使 LLM 应用能够存储和引用上下文信息。开发者可以在 Chatflow 会话中使用这些变量。它们可用于临时存储特定数据。例如上下文信息、用户偏好,以及即将支持的上传文件。Variable Assigner 节点可以在对话流程的任何阶段写入或更新这些信息。

Conversation Variables 的优势:
- 精准的上下文管理: 在变量级别管理信息。不再局限于完整的聊天记录。
- 结构化数据支持: 能够处理复杂的数据类型。包括字符串、数字、对象和数组。
- 工作流无缝集成: 可在 Chatflow 的任意位置写入或更新变量。下游 LLM 节点可直接调用。
相比默认的聊天记录,Conversation Variables 提供了更细粒度的管理方式。这使得应用能够准确记忆并引用特定信息。从而实现更个性化的多轮对话交互。
Variable Assigner 节点:设置与写入对话变量
Variable Assigner 节点用于为可写变量设置值。例如新推出的 Conversation Variables。该节点允许开发者临时存储用户输入。以便在对话过程中持续调用。

对于需要记录初始用户偏好的应用,开发者可以结合使用 Conversation Variables 和 Variable Assigner 节点:
- 存储用户的语言偏好。
- 在后续回复中始终使用该语言。
例如,如果用户在对话开始时选择了中文。Variable Assigner 节点会将该选择写入 language 变量。随后,LLM 会读取该变量。确保整个交互过程保持中文沟通。

这种方式简化了偏好的捕获与使用流程。有效提升了 LLM 应用的对话流畅度与用户体验。
更多应用场景
Conversation Variables 与 Variable Assigner 节点的应用远不止于存储偏好。以下是几个典型场景:
- 患者问诊助手: 将用户输入的性别、年龄和症状存储至变量中。从而提供精准的科室推荐。

- 对话摘要生成: 在上游 LLM 节点中使用 Variable Assigner 节点提取对话概要。避免因完整聊天记录过长而导致记忆过载。
- 数据分析助手: 支持在对话过程中检索外部系统数据。并将其用于后续的交互环节。
- 创意写作: 支持动态故事创作。通过存储和修改对象数组(Object arrays)来构建故事元素:
json [ {name: "Alice", role: "protagonist", trait: "brave"}, {name: "Mystical Forest", type: "setting", atmosphere: "eerie"} ]
这些示例充分展示了 Conversation Variables 与 Variable Assigner 节点如何通过个性化的记忆存储,满足复杂的业务需求。欢迎查阅我们的 文档 与 模板。立即开始构建具备记忆能力的 LLM 应用!
