consisTent
v0.0.10
一致是提示的完整打击测试框架。一致的目的是为基于LLM的应用程序创建可重复的测试,而不管使用哪种FM。
pip install consistent
一致带有2种类型的验证器(测试人员)
这种类型的验证器用于执行LLM输出的静态断言。例如,验证输出是否为某个JSON格式并主张架构。您还可以使用句法验证器来断言某些内容是有效的代码(目前支持JS或Python)
句法验证器用于断言响应的形式
consisTent . JsValidator (). validate ( 'console.log("Im a JS program!")' )
consisTent . PyValidator (). validate ( 'print("Im a python program!")' )
consisTent . JsonValidator (). validate ( '{"question": "is this a valid JSON?"}' )
这种类型的验证器用于通过更多的“软”参数来确定响应的质量,例如检查事实是否正确,检查幻觉,检查“有趣”/“有趣”等标签等...语义验证器的语义一致性验证器,您可以在其中提供有验证的输入和阈值的种子,测试将主张与种子群的新输出的语义距离。
语义验证器用于断言响应的内容
import consisTent
seed = [
"the cat sat on the mat" ,
"the feline layed on the carpet" ,
]
consisTent . ConsistencyValidator (
seed_size = 2 ,
consistency_threshold = 0.5 ,
). validate (
seed = seed ,
model_output = "the dog sat on the mat" ,
)
OPENAI_KEY = "XXXXXXXXXXXXXXX"
consisTent . LabelsValidator ( openai_key = OPENAI_KEY ). validate (
labels = [
"funny" ,
"short" ,
"about rabbits" ,
],
model_output = "What do you call a rabbit that tells jokes? A funny bunny!" ,
)
OPENAI_KEY = "XXXXXXXXXXXXXXX"
consisTent . FactsValidator ( openai_key = OPENAI_KEY ). validate (
facts = [ "this car weighs 1000KG" ],
model_output = "I can lift this car" ,
)