Від коду до рішення: як CarStream пояснює коди несправностей
Код помилки не відповідає на жодне з трьох запитань власника: чи можна їхати, що це найімовірніше і що перевірити першим. Що надсилає кнопка «Пояснити», що повертається і чому відповідь має саме таку форму.
Лампа Check Engine ставить три запитання і не відповідає на жодне. Чи можна їхати далі? Що це найімовірніше? Що перевірити першим? Сканер або безкоштовний застосунок перетворює код на назву: «P0420, ефективність каталізатора нижча за поріг». Це переклад, а не відповідь. Власник лишається там, де й був: на парковці, з пошуковиком у руках.
Цей текст — про те, що CarStream робить із кодом натомість і чому це влаштовано саме так.
Чому «погуглити код» не працює
Три речі роблять загальний довідник слабким.
Той самий код означає різне на різних авто. Публічні списки кодів покривають діапазони, які визначає стандарт. Решту лишено кожному виробнику — і там P1xxx означає одне на Audi й інше на Ford. Загальний список або показує «невідомо», або показує значення з чужого авто.
За діапазонами нумерації SAE J2012, а не за частотою, з якою коди трапляються. У нашій таблиці близько двох тисяч стандартних назв; усе в сірій частині називається з огляду на марку й модель.
Код рідко приходить сам. P0420 поруч із пропусками запалювання — це історія про пропуски: каталізатор тут жертва, а не причина. Код від модуля шасі — інша розмова, ніж код від двигуна. Довідник бачить один код за раз.
Чесна відповідь залежить від авто. «Чи можна їхати» з пропусками запалювання на бензиновому авто, де незгоріле паливо потрапляє в каталізатор, — не та сама відповідь, що для того ж симптому на дизелі. Назва коду цього не несе.
Що CarStream знає ще до того, як ви запитали
Пристрій в авто читає три списки кодів блока керування кожні 30 секунд, поки працює двигун, і веде кожну несправність як епізод: коли з’явилася вперше, коли востаннє, скільки разів поверталася. Новий збережений код надсилає одне сповіщення. Очікуваний код відстежується, але мовчить — перше попередження ще не новина.
Кожен рядок також несе, який модуль його повідомив. Це важливіше, ніж здається. Одне з наших авто тижнями носило три постійні коди від модуля шасі: лампа не горіла, кожен сканер показував «чисто», а блок двигуна мовчав. CarStream показує такі коди як у пам’яті, а не як несправності — бо саме це вони і є.

А коли код специфічний для виробника і в стандартній таблиці для нього немає назви, пристрій не лишає на екрані «невідомий код помилки». Він просить модель назвати код коротко, за стандартом, знаючи марку й модель авто, — і записує назву лише в рядки цього авто. Той самий код на іншій марці отримає власний запит.
Що надсилає кнопка «Пояснити»
«Пояснити з AI» — це не код, вставлений у вікно чату. Запит несе все, що рядок уже знає:
- КодP0420
- Авто з VINрік · марка · модель · двигун · пальне
- Інші активні кодиP0301
- ЛампаMIL увімкнена
- Модуль0x7E8 · блок двигуна
- Моваукраїнська
- Вердиктok · caution · danger — і чи можна їхати
- Значеннядва-три речення простою мовою
- Причини2–4, за порядком, з вагою кожної
- Кроки2–4, спершу дешеві перевірки
Поле «Контекст» під відповіддю показує саме ці вхідні дані — авто, двигун, сусідні коди. Якщо чип хибний, відповідь може бути хибною, і це видно до того, як їй повірити.
Авто береться з розшифровки VIN: рік, марка, модель, двигун, пальне. Інші активні коди і стан лампи йдуть у запит, тож P0420 поруч із P0301 отримує іншу відповідь, ніж P0420 сам-один. Модуль, що повідомив код, названо. А відповідь запитується вашою мовою, а не перекладається потім.
Що повертається і чому в такій формі
Моделі не дозволено відповідати прозою. Вона щоразу має заповнити форму:
- Вердикт: ok, caution або danger — і один рядок із відповіддю на єдине запитання, яке має значення на парковці. Чи можна їхати?
- Значення — два-три речення простою мовою.
- Від двох до чотирьох імовірних причин за порядком, кожна з вагою. Вага — це порядок причин за оцінкою моделі, а не вимір з авто. Вона існує, щоб список мав форму.
- Від двох до чотирьох кроків по черзі, починаючи з дешевих перевірок.
Покажіть авто на сервісі за нагоди.
Запишіться на перевірку цього тижня. Без різких прискорень.
Зупиніться й викликайте допомогу. Їхати далі дорожче за евакуатор.
Одне з трьох слів — обов'язкове поле відповіді. Прозове «залежить від обставин» неможливе за побудовою.
Під відповіддю чипи контексту показують рівно те, що отримала модель: авто, двигун, сусідні коди. Якщо чип хибний, відповідь може бути хибною — і це видно до того, як їй повірити.

Три рішення, ухвалені свідомо
Найсильніша модель, яку ми можемо запустити. Вердикт — єдине місце, де система відповідає «чи можна їхати», і впевнена помилка там — найгірше, що вона може видати. Тому це єдиний виклик, де ми платимо за найбільшу модель, а не за найшвидшу. Перше пояснення триває якийсь час, і екран про це каже, а не вдає.
Одна відповідь на авто, код і мову — і вона зберігається. Згенероване пояснення лишається за цим авто і цим кодом. Другий клік миттєвий, і відповідь не «пливе» від візиту до візиту. Перемкніть мову — і отримаєте нову відповідь цією мовою, а не переклад старої.
Кожна відповідь закінчується словами «перевірте з механіком» — і це не формальність. Пояснення — початок розмови, а не заміна підйомника й мультиметра. Змінюється те, хто приходить підготовленим. Власник заходить, знаючи ймовірні причини, як давно висить код і що вже відкинуто, — і сервіс починає звідти, а не з числа.
Яку проблему це насправді розв’язує
Дорога помилка коду несправності — не сама несправність. Це рефлекс: довідник каже «каталізатор», рахунок виставляється за каталізатор, а «лінивий» датчик, що був справжньою причиною, лишається в авто. Друга помилка — кнопка «стерти», натиснута на парковці: вона видаляє докази й тримає лампу вимкненою ще тиждень.
Пояснення, яке приходить разом із кодом, у контексті саме цього авто, відповідає на запитання «чи можна їхати», ставить дешеві причини перед дорогою і каже, що перевірити першим. Це і є відстань між «знати код» і «знати, що з ним робити». Код ніколи не був найскладнішою частиною.