Konsistent ist ein komplettes Schläge -Test -Framework für Eingabeaufforderungen. Das Ziel von konsistent ist es, reproduzierbare Tests für LLM -basierte Anwendungen unabhängig vom verwendeten FM zu erstellen.
pip install consistent
Konsistent wird mit 2 Arten von Validatoren (Tester) geliefert
Diese Art von Validatoren wird verwendet, um statische Behauptungen der LLM -Ausgabe auszuführen. Beispielsweise validieren, wenn sich die Ausgabe in einem bestimmten JSON -Format befindet und das Schema geltend macht. Sie können auch syntaktische Validatoren verwenden, um zu behaupten, dass etwas ein gültiges Stück Code ist (JS oder Python werden momentan unterstützt).
Syntaktische Validatoren werden verwendet, um die Form der Antwort zu gründen
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?"}' )
Diese Art von Validatoren wird verwendet, um die Qualität der Antwort mit mehr "weichen" Parametern zu behaupten. Überprüfen Sie, ob etwas sachlich korrekt ist, überprüfen Sie nach Halluzinationen, prüfen Sie nach Beschriftungen wie "lustig"/"interessant" usw. ... ein anderer Typ des semantischen Validators ist der semantische Konsistenz -Validator, bei dem Sie einen Saatgut validierter Eingabe und einen Schwellenwert bereitstellen, und der Test wird den semantischen Abstand der neuen Ausgabe aus dem Saatgut -Cluster geltend machen.
Semantische Validatoren werden verwendet, um den Inhalt der Antwort geltend zu machen
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" ,
)