使用 AI 修复工作流错误
工作流步骤失败或记录警告时,AI 修复助手会读取该错误并找出原因;如果原因是步骤本身的配置有误,它会提出更正后的配置,并在您批准后应用。它不止于解释错误,还可以替您做出更改。
它是 PlaidCloud 的 Weave AI 的一部分,可从项目的日志查看器中打开,并已指向失败的步骤。也可以从项目 Weave 选项卡中的问题打开。
打开修复助手
Section titled “打开修复助手”在项目的日志选项卡中,位于原始日志条目旁边:
- 打开项目,点击日志选项卡。
- 在日志列表中,选择失败步骤的条目。其完整消息(包括任何回溯信息)会显示在右侧面板的日志消息选项卡下。
- 将该面板切换到 AI 助手选项卡。
AI 助手聊天打开时已指向所选日志条目所属的工作流和步骤,因此会立即开始诊断,无需告诉它哪个步骤失败。您可以在日志消息下查看原始错误,同时在 AI 助手下与助手聊天。对于一些常见错误,它的第一条回复是一段解释,请参阅常见错误。
从 Weave 选项卡
Section titled “从 Weave 选项卡”在项目的 Weave 选项卡中,点击 Weave 发现的问题卡片上的修复。助手会在单独的窗口中打开,已指向该问题所涉及的步骤,并以 Weave 当前报告的问题为起点。哪些发现项提供修复,请参阅使用 AI 助手修复发现项。
- 诊断:读取失败步骤的配置及其涉及的表和列,并对照您的数据核实自己的判断,而不是仅凭错误文本猜测。
- 提出方案:如果发现确实是配置有误,它会在卡片上显示更改:先用一句话说明失败原因,然后为每个要更改的设置显示一个框,尽可能使用步骤表单中的名称,当前值以红色显示,新值以绿色显示。只列出发生变化的内容,对于列列表,只列出有变化的列。此时尚未保存任何内容。
- 由您批准:在卡片上选择批准 N 项更改,或选择以后再说,保持步骤不变。用自己的话回复同样有效。助手完成回复后,按钮才可用,而且您的批准始终出现在方案之后的消息中。
- 应用:您批准后,它会通过与步骤编辑器相同的途径将更改写入步骤。保存的就是卡片上的更改,一次批准只保存一次。在保存之前,它会保留步骤当前设置的副本,以便您撤消该修复,请参阅撤消修复。
- 提议重新运行:第二张卡片会询问是否立即重新运行该步骤以确认修复。批准后,助手会运行该步骤,并告知您它是成功、带警告完成还是再次失败;新的失败属于错误,助手会随后诊断。如果步骤在两分钟内未完成,助手会说明这一点,结果会显示在工作流和日志选项卡中。
对于向 ERP 系统过账或运行另一个工作流的步骤,助手不会提议重新运行,请从其工作流中重新运行,在那里可以选择 ERP 过账模式。聊天未关联工作流时,或您的角色无法运行工作流时,也不会提议。如果工作流已在运行,则不会运行任何内容,助手会提议再试一次。
每条方案、您的批准或拒绝,以及更改本身,都会记录在项目的 Weave 活动历史中,其中包含被替换的内容和写入的内容。您的批准会在更改之前记录。如果无法记录,则不会保存任何内容,卡片会予以说明,您可以稍后再次批准。
修复的卡片会说明该修复是否可以撤消:*Weave 会保留步骤当前设置的副本,因此在有限的时间内,只要步骤没有再次更改,您就可以撤消此修复。*没有这一行的卡片无法撤消。如果 Weave 无法保留副本,它不会保存任何内容并会说明,您可以再次请求。
修复保存后,卡片会显示撤消。项目 Weave 活动历史中该修复的条目有同样的按钮,因此在聊天关闭后仍可撤消修复。项目中任何角色可以更改步骤的人都可以撤消修复,不限于批准它的人。
撤消会打开一个窗口,显示撤消会恢复的内容:该修复更改的每个设置,包括其当前值和撤消后的值。然后选择:
- 撤消:将步骤的设置恢复为修复之前的样子。
- 撤消并运行:恢复设置,然后运行该步骤。当您的角色可以运行工作流、该步骤仍在做出修复的工作流中(否则就是仅在一个工作流中)且您可以打开该工作流,并且该步骤不向 ERP 系统过账或运行另一个工作流时,才提供此选项。运行本身无法撤消。
- 取消:保持步骤不变。
撤消只更改步骤的设置。该步骤此前的运行已写入的数据保持不变,请重新运行该步骤以重建数据。
在以下情况下,Weave 不会撤消修复,也不会更改任何内容:
- 步骤在修复之后已发生更改。 撤消会恢复过时的设置,因此窗口会并排显示步骤的当前状态和 Weave 更改前的设置,您可以自行更改。
- 步骤已经具有修复之前的设置。
- 副本已不再保留。 副本只保留有限的时间。
- 您的角色无法更改该步骤,或项目已被锁定。
- Weave 无法记录撤消操作。 请稍后再试。
撤消会在活动历史中记录为一次独立的更改,例如已按批准执行:撤消 Weave 对步骤设置所做的更改。
当步骤因以下常见错误之一而失败时,第一条回复是 PlaidCloud 已为此类错误准备好的解释,因此会立即出现。
适用于任何类型的步骤:
- 表达式使用了步骤所读取的表中不存在的列
- 列映射的源列不在步骤所读取的表中
- 步骤所需的设置留空,例如它使用的连接或读取的表
- 步骤运行的工作流失败,原因很可能出在该工作流的某个步骤中,因此请查看该工作流的日志
- 步骤中指定的表找不到
- Snowflake 或 Databricks 仓库阻止了 PlaidCloud 的地址、拒绝其登录、已用尽配额、无法找到或使用,或缺少 PlaidCloud 的角色所需的权限
适用于 SQL 提取步骤:
- SQL 按所写内容无法读取,例如关键字拼写错误或括号未闭合
- 数据库无法识别的函数
- 不存在的表
- 函数收到了它无法处理的值类型,例如对文本列求和(在 Databend 上)
- 值无法转换为 SQL 所要求的类型,例如应为数字或日期的位置出现了文本(在 Databend 上)
适用于表提取步骤,修复建议指向步骤自己的选项卡和字段,而不是 SQL:
- 源表尚不存在或已不存在(在 Databend 上)
- 表达式使用了数据库无法识别的函数(在 Databend 上)
- 函数收到了它无法处理的值类型,例如在表达式中或通过汇总对文本列求和(在 Databend 上)
- 没有输出列的步骤,例如所有列都已被移除的步骤
解释会说明该错误通常的成因、应关注错误消息中的哪些词,以及如何修复。它是通用说明,不会检查您的步骤,也不会更改任何内容。若要让助手查看步骤本身,请回复。此后它按工作原理中所述工作,并将这段解释作为对话的一部分。
任何其他错误都会直接交给助手自己诊断。当上述数据库错误来自任何其他类型的步骤时,也是如此。
它能修复什么
Section titled “它能修复什么”助手修复的是错误所在那个步骤的配置,例如拼错的列名或函数名、无效的表达式、错误的数据类型或转换,或格式错误的 SQL。它只做能解决错误的最小改动:一次失败,一处有针对性的更改,其余配置保持原样。
失败的表达式(无论在列、筛选器还是 having 子句中)会连同错误和源表的列,交给表达式编辑器旁边的同一个表达式专家处理。它返回的更正后表达式会在提出之前经过检查,而该方案仍然只是对步骤中那一个字段的更改,批准方式与其他更改相同。
它不会做什么
Section titled “它不会做什么”它唯一的着力点是该步骤的配置,当问题出在别处时,它会坦率说明,而不是把某次编辑硬说成解决方案。
- 它只编辑一个步骤的配置,不做其他任何事:不会创建、删除或重新排序步骤,不会创建表,不会编辑其他步骤,也不会更改您的数据。
- 许多失败并非配置问题:源数据缺失或格式错误、上游步骤先行失败、暂时性或基础设施错误、权限问题、UDF 或用户代码步骤中的 Python 有误、文档账户中缺少文件,或资源或超时限制。对于这些情况,它会说明发现的内容,并指出真正的修复所在之处。
- 警告通常无害,无需更改,它会直接说明,而不会凭空编造编辑。
- 当它不确定某项更改是否有效时,会如实说明并指出不确定之处,而不是把猜测当作确定的结论。
- 诊断基于您实时的步骤配置和表元数据,因此反映的是项目当前的状态,而不是缓存或假定的结构。
- 修复应用后,在助手提议重新运行该步骤时回答“是”,或自行重新运行,以确认错误已解决。
- 如果助手说原因在步骤配置之外(数据有误、上游失败、权限问题),这就是答案,请在问题真正所在之处修复,而不要让助手无论如何都去编辑步骤。