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" ,
)