Rivet - 验证器图表
Trivet不使用内置验证,而是通过Rivet图表来对您的测试图进行验证。这为您提供了在如何验证图表方面的终极灵活性。通常的做法是通过LLM调用来验证您的图表——一个很好的模式是让LLM在回答问题时用YES
或NO
来响应,然后使用Match节点来查找YES或NO。
使用顶部的下拉菜单选择验证器图表:
验证器图是一种特殊构建的Rivet图,需满足以下要求:
- 它必须有一个名为
input
的Graph Input节点,类型为Object。 - 它必须有一个名为
output
的Graph Input节点,类型为Object。 - 它必须有一个名为
expectedOutput
的Graph Input节点,类型为Object。 - 它必须包含任意数量的Graph Output节点,这些节点必须是String或Boolean类型。这些是图形执行的"验证"。
您可以选择这些输入节点中的任何一个,也可以忽略其中任何一个来执行验证。
input
输入
这是一个表示传入测试图的输入对象。它是一个对象类型,其中每个属性对应测试图的一个输入。
output
输出
这是一个表示从测试图返回的输出结果的对象。它是一个对象类型,其中每个属性对应测试图的一个输出。
expectedOutput
输出
这是一个表示测试图预期输出的对象。它是一个对象类型,从测试用例传入验证图。其属性将与output
对象上的属性完全匹配,但实际值可以是您想要的任何内容。
一个常见的模式是,如果验证图正在执行LLM调用来检查结果,对于每个预期的输出作为一个简单的陈述验证,你询问的是对应的output
。例如,如果你有以下输出:
{
"name": "John Doe",
"age": 42
}
那么您可能会看到预期的输出:
{
"name": "The name must be John Doe.",
"age": "The age must be 42."
}
输出
验证器图的输出是执行的验证结果。每个输出必须是字符串或布尔值。如果是字符串,则必须是真值,例如"true"
或"false"
。如果是布尔值,则属于布尔验证。
未来,我们可能会允许输出指定验证过程中出现的问题。