Cohérent est un cadre de test complet pour les invites. L'objectif de cohérent est de créer des tests reproductibles pour les applications basées sur LLM, quel que soit le FM utilisé.
pip install consistent
cohérent vient avec 2 types de validateurs (testeurs)
Ce type de validateurs est utilisé pour faire des affirmations statiques de la sortie LLM. Par exemple, valider si la sortie est dans un certain format JSON et affirme le schéma. Vous pouvez également utiliser des validateurs syntaxiques pour affirmer que quelque chose est un morceau de code valide (JS ou Python sont pris en charge pour le moment)
Des validateurs syntaxtiques sont utilisés pour affirmer la forme de la réponse
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?"}' )
Ce type de validateurs est utilisé pour affirmer la qualité de la réponse avec des paramètres plus "doux" par exemple, vérifiez si quelque chose est en fait correct, vérifiez les hallucinations, vérifiez des étiquettes comme "drôle" / "intéressant" etc ... un autre type du validateur sémantique est le validateur de cohérence sémantique où vous fournissez une graine d'entrée validée et un seuil, et le test affirmera la distance sémantique de la nouvelle sortie de l'amas de graines.
Les validateurs sémantiques sont utilisés pour affirmer le contenu de la réponse
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" ,
)