跳至主要内容

Rivet - 验证器图表

Trivet不使用内置验证,而是通过Rivet图表来对您的测试图进行验证。这为您提供了在如何验证图表方面的终极灵活性。通常的做法是通过LLM调用来验证您的图表——一个很好的模式是让LLM在回答问题时用YESNO来响应,然后使用Match节点来查找YES或NO。

使用顶部的下拉菜单选择验证器图表:

Validator Graph Dropdown

验证器图是一种特殊构建的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"。如果是布尔值,则属于布尔验证。

未来,我们可能会允许输出指定验证过程中出现的问题。