ثابت هو إطار اختبار الضربات الكاملة للمطالبات. الهدف من الثبات هو إنشاء اختبارات قابلة للتكرار للتطبيقات المستندة إلى LLM بغض النظر عن FM المستخدمة.
pip install consistent
الثابت يأتي مع نوعين من المدققين (اختبار)
يتم استخدام هذا النوع من المدققين للقيام بتأكيدات ثابتة لإخراج 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" ,
)