From 200a27c26e33433617c6c0ff0add92dc7ead1715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 25 May 2026 07:26:53 +0400 Subject: [PATCH] initial: idea and analysis --- analysis.md | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++ idea.md | 28 ++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 analysis.md create mode 100644 idea.md diff --git a/analysis.md b/analysis.md new file mode 100644 index 0000000..0ce0f7c --- /dev/null +++ b/analysis.md @@ -0,0 +1,95 @@ +# Elmer — анализ и план (2026-05-25) + +## Суть проекта + +Сервис анализа ошибок электроники автомобиля через ELM327 OBD2 + LLM. + +## Железо + +- **Сканер:** ELM327 Bluetooth v1.5, чип PIC18F25K80 (китайский клон) +- **Ноутбук разработчика:** с Bluetooth, будет соединяться с ELM327 напрямую для отладки + +## Целевая аудитория + +- Технически любопытный автовладелец (не профессионал, но и не «глубинарий») +- Уже имеет ELM327 — значит базовое понимание есть +- Хочет понять проблему, а не просто получить код ошибки + +## Ключевые требования к ответам + +- **Честная уверенность:** «С вероятностью ~80% проблема в X, потому что...» +- **Пояснение логики:** почему именно этот вывод +- **Предупреждения:** «Если НЕ помогло — тогда проверь Y» +- **Никаких категоричных «меняй X»** без 100% уверенности +- **Liability Protection:** нельзя чтобы пользователь сломал машину из-за неверного диагноза + +## LLM + +- Рассматривается DeepSeek (дёшево через API) +- Или другая простая/дешёвая модель +- Нужен RAG/grounding на реальных repair manuals и TSB, чтобы минимизировать галлюцинации + +## Компоненты системы + +1. **Android-приложение** (в последнюю очередь) + - Стабильная версия Android (не гоняться за новейшей) + - Максимально простое: минимум кнопок + - Русский язык + - Bluetooth SPP → ELM327 + +2. **Сервер** (после отладки логики на ноутбуке) + - Принимает данные от приложения + - Формирует запросы к LLM + - Итеративный цикл: запрос → ответ → может запросить ещё параметры или действия от пользователя + - Отдаёт диагноз с пояснениями + +3. **LLM-слой** + - Промпт с контекстом автомобиля (VIN → марка/модель/двигатель) + - RAG на базу знаний (ошибки, мануалы, TSB) + - Итеративная диагностика: сервер может переспрашивать LLM + +## Протокол диагностики (конечный автомат) + +Цикл: +1. Приложение считывает VIN → сервер +2. Приложение считывает коды ошибок → сервер +3. Сервер → LLM: первичный анализ +4. LLM может запросить: + - Дополнительные PID'ы с ЭБУ (live data) + - Действия от пользователя (прогазовать, проехать, считать на холодную и т.д.) +5. Повторять пока не будет достаточно данных для диагноза +6. Финальный ответ: диагноз + степень уверенности + пояснения + что делать + +## План разработки (три фазы) + +### Фаза 1: Ноутбук + ELM327 (СЕЙЧАС) +- Python-скрипт: Bluetooth → ELM327 → читаем VIN, ошибки, PID'ы +- Отправляем в LLM вручную — отлаживаем логику, промпты, цикл вопросов-ответов +- Никакого сервера, никакого Android + +### Фаза 2: Сервер +- Flask/FastAPI — принимать данные, проксировать в LLM +- База знаний / RAG +- State machine диагностики + +### Фаза 3: Android-приложение +- Bluetooth SPP (Serial Port Profile) — есть нюансы на Android 12+ +- Минималистичный UI +- Отправка данных на сервер, отображение ответов + +## Риски + +1. **ELM327 v1.5 клон** — неполный протокол, глюки на高速 CAN +2. **PID'ы разные у разных марок** — нужна БД по производителям +3. **LLM галлюцинации** — только grounding/RAG спасёт +4. **Bluetooth SPP на Android 12+** — permissions, pairing + +## Ресурсы + +- `python-OBD` — библиотека для работы с ELM327 (или свой serial-протокол) +- `pyserial` уже установлен в системе +- DeepSeek API (или OpenRouter как альтернатива) + +--- + +*Продолжить: читать данные с ELM327 на ноутбуке по Bluetooth.* diff --git a/idea.md b/idea.md new file mode 100644 index 0000000..b0afc9e --- /dev/null +++ b/idea.md @@ -0,0 +1,28 @@ +замысел - сделать сервис по анализу ошибок электроники автомобиля + +lfyyst - jn Cканер для диагностики автомобилей ELM327 OBD2 +Bluetooth v1.5 чип PIC18F25K80 - это моя модель + +Пользователь вводит в произвольной форме симптомы жалобы и тд и тп + +Приложение на андроиде устанавливает соединение и запрашивает параметры у ЭБУ +сначала - ВИН номер, он уникален и по нему дальнгейшая идентификация +затем - список ошибок +Приложение дополнительно опрашивает ЭБУ по данным необходимых параметров +затем Приложение отсылает сформированный запрос на Сервер +Сервер формирует запрос к ЛЛМ (какая модель, как авторизоваться и оплачивать - отдельный вопрос) +ЛЛМ отвечает, сервер анализирует, задаёт ещё вопросы ЛЛМ если надо +Пересылает сообщение Приложению, к котором + либо диагноз, + либо команда Приложенгию считать и переслать ещё какие то параметры, + либо - задание Пользователю произвести необходимые действия (прогазовать и держать обороты какие то время, проехать расстояние, дожать до кикдауна и тд и тп) +И так - пока не будут считаны все нужные параметры в нужных режимах + +То есть в итоге - надо разработать + Приложение на андроиде, версия наиболее стабильная, пользователю неохота устанавливать/обновлять + Сервер - на ВМ или кубере в дальнейшем + +Предполагается - ноутбук с выходом в интернет, на неём копилот (ТЫ) +ноут по блютус соединяется с ELM +Ты имеешь возможность считывать данные с ЭБУ двигателя, анализируешь +и сочиняешь Приложение и Сервер \ No newline at end of file