Python 断言
python
断言允许你提供一个自定义的 Python 函数来验证 LLM 输出。
一个名为 output
的变量会被注入到上下文中。如果输出通过断言,函数应返回 true
,否则返回 false
。如果函数返回一个数字,它将被视为分数。
示例:
assert:
- type: python
value: output[5:10] == 'Hello'
你也可以返回一个数字,它将被视为分数:
assert:
- type: python
value: math.log10(len(output)) * 10
多行函数
Python 断言支持多行字符串:
assert:
- type: python
value: |
# 在此插入评分逻辑...
if output == 'Expected output':
return {
'pass': True,
'score': 0.5,
}
return {
'pass': False,
'score': 0,
}
使用测试上下文
在 Python 函数中可以使用一个 context
对象。以下是其类型定义:
from typing import Any, Dict, TypedDict, Union
class AssertContext(TypedDict):
prompt: str
vars: Dict[str, str]
test: Dict[str, Any] # 包含 "vars"、"assert"、"options" 等键