c5125e981e
Прогнал 250 вопросов через настоящий вебхук шесть раз и сравнил четыре модели вслепую силами судей-агентов. Итоги — в docs findings. Модель. Появился переключатель services.jivo_bot.llm: yandex (данные не покидают РФ) либо aitunnel (зарубежные модели через российский шлюз). По слепому сравнению Claude Haiku 4.5 выиграл финал у Gemini 157:24 и у обеих моделей Яндекса: он полнее, точнее по кнопкам и цифрам и говорит как человек, а не справочник. Три замка, потому что живая модель = самоуверенная модель: - PersonalDataMask — телефоны и почта вырезаются ДО отправки в любую модель (клиент оставляет номер в чате; за границу ПДн уходить не должны). - ChatTextCleaner — markdown и смайлики (Jivo их не рисует): было 191 ответ с разметкой, стало 0. - AnswerGuard — режет юридические гарантии («вас не оштрафуют», «мы гарантируем», «не нарушаем закон») и ЛЮБУЮ цену, которой нет в выданных статьях. Пусто после чистки → зовём живого специалиста. Поиск по инструкции переписан: выбрасываются вопросительные слова (из-за них «какие у вас тарифы» находило выгрузку в Excel), ранжирование сперва по заголовку и синонимам, выдача — три РАЗНЫЕ статьи и каждая целиком, плюс починка опечаток («каг сазадь праэкт») и учёт прошлой реплики в коротких «а это платно?». Инструкция: 40 → 51 статья. Новые — по фактам владельца: бесплатный тест и подарок 1000 ₽, «мы канал, а не реклама», СМС → через час звонок, средние показатели (8–12 из 100 разговаривают, ещё 5–7 по СМС), номер не вернётся 30 дней, замена брака, вывод остатка, поддержка 24/7, удаление данных, ниши. Вычищено враньё: минус баланса, «списали без заявки», пауза вечером, выходные, «Вся РФ», статус «Отказ» (его нет — есть «Не реализовано»), amoCRM, платный повторный сбор, нарастающий итог тарифных ступеней. Тесты: 106 из 106. Каждая найденная тупость закреплена тестом. НЕ НА ПРОДЕ. Выкат — только по прямой команде владельца. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
52 lines
2.5 KiB
XML
52 lines
2.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
|
|
bootstrap="vendor/autoload.php"
|
|
colors="true"
|
|
>
|
|
<testsuites>
|
|
<testsuite name="Unit">
|
|
<directory>tests/Unit</directory>
|
|
</testsuite>
|
|
<testsuite name="Feature">
|
|
<directory>tests/Feature</directory>
|
|
</testsuite>
|
|
<testsuite name="Browser">
|
|
<directory>tests/Browser</directory>
|
|
</testsuite>
|
|
</testsuites>
|
|
<source>
|
|
<include>
|
|
<directory>app</directory>
|
|
</include>
|
|
</source>
|
|
<php>
|
|
<env name="JIVO_BOT_LLM" value="yandex"/>
|
|
<env name="AITUNNEL_API_KEY" value=""/>
|
|
<env name="APP_ENV" value="testing"/>
|
|
<env name="APP_MAINTENANCE_DRIVER" value="file"/>
|
|
<env name="BCRYPT_ROUNDS" value="4"/>
|
|
<env name="BROADCAST_CONNECTION" value="null"/>
|
|
<env name="CACHE_STORE" value="array"/>
|
|
<env name="DB_CONNECTION" value="pgsql"/>
|
|
<env name="DB_DATABASE" value="liderra_testing"/>
|
|
<!-- DB_USERNAME / DB_PASSWORD come from the untracked local .env (dev creds). -->
|
|
<!-- Not hardcoded here so no secret is committed to git. -->
|
|
<env name="DB_URL" value=""/>
|
|
<env name="MAIL_MAILER" value="array"/>
|
|
<env name="AUTH_PASSWORD_RESET_TOKEN_TABLE" value="password_resets" force="true"/>
|
|
<env name="QUEUE_CONNECTION" value="sync"/>
|
|
<!-- Автоподбор: живой движок поиска ВЫКЛ в тестах (иначе findCompetitors ходит в сеть).
|
|
В .env флаг может быть включён для локального прогона портала — тесты его перебивают. -->
|
|
<env name="AUTOPODBOR_REAL_FIND" value="false" force="true"/>
|
|
<!-- Капча: в тестах фейк-верификатор (NullCaptchaVerifier, fake_passes),
|
|
иначе наследуется боевой CAPTCHA_DRIVER=yandex из .env и регистрация-тесты падают на «я не робот». -->
|
|
<env name="CAPTCHA_DRIVER" value="null"/>
|
|
<env name="CAPTCHA_FAKE_PASSES" value="true"/>
|
|
<env name="SESSION_DRIVER" value="array"/>
|
|
<env name="PULSE_ENABLED" value="false"/>
|
|
<env name="TELESCOPE_ENABLED" value="false"/>
|
|
<env name="NIGHTWATCH_ENABLED" value="false"/>
|
|
</php>
|
|
</phpunit>
|