Allin Program

百炼大模型工作流应用开发分享

所有内容基于百炼平台的工作流应用展开,从以下方向分享:

  1. 工作流编排的坑;

  2. 工作流编排建议;

  3. 工作流脚本分享。

工作流编排的坑

列举出一些几乎100%出现的头痛问题。

幕布卡顿、假死

节点一旦超过10个后,页面卡顿、假死会非常明显,暂时可以通过幕布下方优化布局按钮处理。

当然也可以通过刷新解决,但是刷新太慢了。

粘贴提示词英文符号自动转义

假设当前你有两个工作流,其中一个用于测试提示词效果。

当你把测试完成好的提示词,放入另一个工作流的提示词输入框中会发现其中的英文符号如< >会被转义。

此时你可以任意改动下提示词内容,然后按下Ctrl + Z,此时会进行去转义。

知识库节点

无法删除imageList参数

一旦选择知识库节点,该字段会自动带出,无法删除,并且在发布工作流应用时,会抛出异常,提示节点输入为空。

这是百炼的问题,他们后期会删除该强校验。

当前可以传入[]或者指定系统变量query,以解决该问题。

content不能为空

知识库节点对于content输入存在强校验,传入值不能为空。

解决办法:

  1. 在知识库节点前增加条件判断节点,当字符为空时做出特殊处理(不调用工作流节点,或者增加默认值);

  2. 在知识库节点前的脚本(如果有)中,做出处理,对该字段增加默认值。

工作流使用建议

整体编排

对于无需并行调用大模型多次的场景(如条款解读),建议分工作流6列节点处理,会让工作流编排更加直观,维护性更好。整体上来说,节点越少,越好维护。

下面分别描述每列的作用:

  1. 开始节点:输入参数;

  2. 提示词节点:用提示词给大模型洗脑,教他干活;

  3. 初始解读数据处理脚本:提前拼装初始解读数据为业务领域模型,也就是你的解读结果模型;

  4. 知识库节点、循环节点、条件判断节点:统一完成知识库匹配等操作;

  5. 完成最终数据组装;

  6. 结束节点:输出结果。

循环节点处理

[
  {
    "studentName": "张三",
    "classes": [
      {
        "className": "语文",
        "scores": [
          {
            "examType": "期中考试",
            "score": 85
          },
          {
            "examType": "期末考试",
            "score": 92
          }
        ]
      },
      {
        "className": "数学",
        "scores": [
          {
            "examType": "期中考试",
            "score": 78
          },
          {
            "examType": "期末考试",
            "score": 88
          }
        ]
      }
    ]
  },
  {
    "studentName": "李四",
    "classes": [
      {
        "className": "英语",
        "scores": [
          {
            "examType": "期中考试",
            "score": 90
          },
          {
            "examType": "期末考试",
            "score": 95
          }
        ]
      },
      {
        "className": "物理",
        "scores": [
          {
            "examType": "期中考试",
            "score": 82
          },
          {
            "examType": "期末考试",
            "score": 86
          }
        ]
      }
    ]
  }
]

当遇见多级嵌套结构时,百炼并没有对应的循环节点嵌套。此时处理数据就有些头疼了。

解决方案推荐:

在第三列脚本中,构建新的字段,用于存储嵌套结构铺平后的数据,然后再进行遍历处理。

在第五列中,再将数据拼接组装处理。

提示词优化

工作流脚本分享

解析知识库节点返回数据

知识库节点的前置处理

循环节点的前置处理