consisTent
v0.0.10
一貫性は、プロンプトの完全な打撃テストフレームワークです。一貫性のある目標は、使用するFMに関係なく、LLMベースのアプリケーションの再現可能なテストを作成することです。
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" ,
)