Conseptent - это полная структура тестирования для подсказок. Цель согласованности - создать воспроизводимые тесты для приложений на основе 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" ,
)