本篇文档为您介绍循环使用说明。
概述
在使用大模型的过程中,有些场景下需要使用到循环。例如,用大模型生成测评数据,如果需要生成多条时,可以选择多次执行当前大模型节点,而不需要拉多个节点,更不需要通过多次执行应用调用来实现。考虑到循环的中间结果与业务逻辑实现紧密相关,同时方便控制循环的次数和跳出条件,我们将循环作为节点的属性进行扩展。
循环属性展示
循环属性需要在【是否开启循环】打开后才生效,一共有5项配置可以配置。
1、最大循环次数:循环最大次数,当没有符合【终止条件】时最多循环的次数,默认为2,最大为10,
2、循环集合变量:节点发生循环后,每一轮都会有一个结果,这个变量会存储每次循环的结果,返回结果是一个list。
3、当前循环变量:节点发生循环,当前轮次的结果会保存在当前变量下,方便获取最终的变量,或者用当前变量设置终止条件。 4、循环次数变量:循环最终次数保存在当前变量下,可用于设置终止条件,比如this.loopCount == 2,则循环2次跳出。
5、设置终止条件:可以在【设置终止条件】中设置符合跳出循环的条件组,匹配逻辑和逻辑节点基本一致,不同的是这个条件可以引用当前节点的循环属性,比如this.loopCount为当前循环的次数,this.finalItem为当次循环结果,this.list为循环结果list等。当终止条件符合时,跳出循环。
如下图:
支持范围
当前仅支持大模型设置循环属性,后续其他节点会视情况再开放扩展。
结果示例
循环结果调试结果
循环结果展示
{
"finalResult": {
"LLM_UItAJj": {
"loopResult": {
"stopReason": "满足跳出条件", // 循环跳出原因,有2种,满足跳出条件、达到循环次数
"testList": [
{
"params": {
"modelId": "qwen-max",
"prompt": "输出一句鲁迅说过的名言,不输出下面提到过的名言:${svcVars.LLM_UItAJj.loopResult.testList.#response.text#},仅输出到名言本身"
},
"response": {
"text": "“其实地上本没有路,走的人多了,也便成了路。”"
}
},
{
"params": {
"modelId": "qwen-max",
"prompt": "输出一句鲁迅说过的名言,不输出下面提到过的名言:${svcVars.LLM_UItAJj.loopResult.testList.#response.text#},仅输出到名言本身"
},
"response": {
"text": "“时间就像海绵里的水,只要愿挤,总还是有的。”"
}
},
{
"params": {
"modelId": "qwen-max",
"prompt": "输出一句鲁迅说过的名言,不输出下面提到过的名言:${svcVars.LLM_UItAJj.loopResult.testList.#response.text#},仅输出到名言本身"
},
"response": {
"text": "“不在沉默中爆发,就在沉默中灭亡。”"
}
}
],
"loopCount": 3, // 完成的循环次数
"isStop": true, // 是否结束
"testItem": "“不在沉默中爆发,就在沉默中灭亡。”" // 最后一次循环结果
},
……
}
}
}
文档内容是否对您有帮助?