initial: idea and analysis
This commit is contained in:
+95
@@ -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.*
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
замысел - сделать сервис по анализу ошибок электроники автомобиля
|
||||||
|
|
||||||
|
lfyyst - jn Cканер для диагностики автомобилей ELM327 OBD2
|
||||||
|
Bluetooth v1.5 чип PIC18F25K80 - это моя модель
|
||||||
|
|
||||||
|
Пользователь вводит в произвольной форме симптомы жалобы и тд и тп
|
||||||
|
|
||||||
|
Приложение на андроиде устанавливает соединение и запрашивает параметры у ЭБУ
|
||||||
|
сначала - ВИН номер, он уникален и по нему дальнгейшая идентификация
|
||||||
|
затем - список ошибок
|
||||||
|
Приложение дополнительно опрашивает ЭБУ по данным необходимых параметров
|
||||||
|
затем Приложение отсылает сформированный запрос на Сервер
|
||||||
|
Сервер формирует запрос к ЛЛМ (какая модель, как авторизоваться и оплачивать - отдельный вопрос)
|
||||||
|
ЛЛМ отвечает, сервер анализирует, задаёт ещё вопросы ЛЛМ если надо
|
||||||
|
Пересылает сообщение Приложению, к котором
|
||||||
|
либо диагноз,
|
||||||
|
либо команда Приложенгию считать и переслать ещё какие то параметры,
|
||||||
|
либо - задание Пользователю произвести необходимые действия (прогазовать и держать обороты какие то время, проехать расстояние, дожать до кикдауна и тд и тп)
|
||||||
|
И так - пока не будут считаны все нужные параметры в нужных режимах
|
||||||
|
|
||||||
|
То есть в итоге - надо разработать
|
||||||
|
Приложение на андроиде, версия наиболее стабильная, пользователю неохота устанавливать/обновлять
|
||||||
|
Сервер - на ВМ или кубере в дальнейшем
|
||||||
|
|
||||||
|
Предполагается - ноутбук с выходом в интернет, на неём копилот (ТЫ)
|
||||||
|
ноут по блютус соединяется с ELM
|
||||||
|
Ты имеешь возможность считывать данные с ЭБУ двигателя, анализируешь
|
||||||
|
и сочиняешь Приложение и Сервер
|
||||||
Reference in New Issue
Block a user