Konsisten adalah kerangka kerja pengujian pukulan penuh untuk petunjuk. Tujuan konsisten adalah untuk membuat tes yang dapat direproduksi untuk aplikasi berbasis LLM terlepas dari FM yang digunakan.
pip install consistent
Konsisten dilengkapi dengan 2 jenis validator (penguji)
Jenis validator ini digunakan untuk melakukan pernyataan statis output LLM. Misalnya memvalidasi jika output dalam format JSON tertentu dan menegaskan skema. Anda juga dapat menggunakan validator sintaksis untuk menegaskan sesuatu adalah sepotong kode yang valid (JS atau Python didukung saat ini)
Validator sintaksis digunakan untuk menegaskan bentuk respons
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?"}' )
Jenis validator ini digunakan untuk menegaskan kualitas respons dengan lebih banyak parameter "lunak" misalnya, periksa apakah ada sesuatu yang benar secara faktual, periksa halusinasi, periksa label seperti "lucu"/"menarik" dll ... jenis lain Validator Semantik adalah validator konsistensi semantik di mana Anda memberikan benih input yang divalidasi dan ambang batas, dan tes akan menegaskan jarak semantik output baru dari cluster benih.
Validator semantik digunakan untuk menegaskan konten respons
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" ,
)