AI-агентов надо тестировать. С этим, думаю, никто не спорит.
Конечно, можно использовать ручное тестирование, но по мере усложнения агента это делать всё сложнее. Да и есть такая «неприятная» часть бизнес-логики, которая заложена в виде промпта. А его изменение, бывает, начинает влиять на поведение агента там, где не ожидаешь.
Короче, тесты нужны. Мы их пишем в виде обычных
pytest-ов.Но LLM — вещь недетерминированная. Сейчас она ответила так, а при следующем прогоне иначе. Мы регулярно сталкивались с «миганиями» тестов. И пришли к тому, что для LLM это ок. Они по определению не гарантируют правильный ответ в всех случаях.
Мы для себя задаем планку в 80% успешных прогонов. Реализуем через многократный прогон теста нужное количество раз. Для 80% тест должен успешно выполниться как минимум 4 раза из 5.
Все упаковали и оформили в pypi-пакет llm-flaky.
Как пользоваться llm-flaky
1. Ставите пакет
2. Размечаете llm-тесты
import pytest
@pytest.mark.llm
async def test_llm_response():
response = await call_llm("What is 2+2?")
assert "4" in response
3. Прогоняете и на выходе получаете красивый отчет 🙂
Вы можете настроить свои пороги успешного прохождения llm-теста, в пакете предусмотрены соответствующие параметры.
Также поддерживается рапараллеливание через
pytest-xdist. Сильно ускоряет прогоны.🔗 Инженерия и AI | Ilyas Salikhov
