«ИИдеал Авто» (AIdeal Auto) — полнофункциональная кроссплатформенная экспертная система для автомастерских, сервисных центров, диагностов и автолюбителей. Система выполняет комплексную диагностику неисправностей автомобилей по описанию симптомов, кодам ошибок OBD-II (DTC), логам сканеров, нативным голосовым записям и фотографиям узлов или приборной панели с формированием специфицированного инвентаря и интерактивных пошаговых чеклистов ремонта.
Система полностью автономна (без зависимости от внешних облаков или серверов llama-server) и работает на базе послойного движка AirLLM с мультимодальной нейросетью Google Gemma 4 12B Unified (google/gemma-4-12B-it-qat-w4a16-ct, 48 слоев, Text + Vision + Audio), гибридным ядром RAG (BERT + FAISS + BM25 + CrossEncoder), нативным аудиовходом, окном контекста 32K токенов, бюджетом ответа ~5000 токенов с автообрезкой по предложениям и двухрежимным HUD дополненной реальности для очков RayNeo.
Примечание по весам: Веса нейросетей не хранятся в git-репозитории. При первом запуске
run_dev.ps1(или скриптаprepare_airllm_model.py) система автоматически скачивает модель Google Gemma 4 12B и модели RAG BERT, нарезая их на 52 независимых послойных шарда AirLLM. Личный HuggingFace токен указывать в коде не требуется (при необходимости передайте его через переменную окружения$env:HF_TOKEN).
Скрипт run_dev.ps1 сам создаст .venv, установит PyTorch с поддержкой GPU CUDA 12.4, скачает и подготовит шарды Gemma 4 12B, применит миграции и запустит веб-интерфейс:
.\run_dev.ps1
# 1. Создание виртуального окружения
python -m venv .venv
# 2. Установка PyTorch с поддержкой GPU (CUDA 12.4)
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
# 3. Установка зависимостей проекта
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
# 4. Скачивание Google Gemma 4 12B и нарезка на шарды AirLLM (~7.5 ГБ)
.\.venv\Scripts\python.exe prepare_airllm_model.py
# 5. Применение миграций БД SQLite
.\.venv\Scripts\python.exe manage.py migrate
# 6. Запуск сервера с автоматической предзагрузкой модели в GPU VRAM
.\.venv\Scripts\python.exe manage.py runserver 0.0.0.0:8000 --noreload
chmod +x run_dev.sh
./run_dev.sh
.\.venv\Scripts\python.exe MAIN_app_with_LLM.py┌────────────────────────────────────────────────────────────────────────────────────────┐
│ КЛИЕНТСКИЙ УРОВЕНЬ «ИИДЕАЛ АВТО» (PWA / AR HUD / Desktop) │
│ • Фирменный стиль ИИдеал Авто + логотип + векторные иконки SVG (192 / 512) │
│ • Два режима AR: 1) RayNeo Optical (#000000) 2) Камера-фон (Video Passthrough) │
│ • Мгновенный Optimistic UI + анимированный индикатор послойной генерации │
│ • Прямой аудиоввод (без Whisper), прикрепление фото, логов и словаря DTC │
└───────────────────────────────────────────┬────────────────────────────────────────────┘
│ HTTP / JSON / Multipart
┌───────────────────────────────────────────▼────────────────────────────────────────────┐
│ БЭКЕНД DJANGO (autodiag_project & diagnostics) │
│ ┌───────────────────────────────┐ ┌──────────────────────────────────────────────┐ │
│ │ Динамический воркер памяти │ │ Оркестратор AirLLM Gemma 4 12B │ │
│ │ (diagnostics/context_worker) │ │ (diagnostics/airllm_vulkan_service.py) │ │
│ │ • Окно контекста 32K токенов │ │ • Автоматическая предзагрузка в GPU VRAM │ │
│ │ • Динамический расчет бюджета │ │ • Ответ модели ~5000 токенов │ │
│ │ • Память 5 последних реплик │ │ • Автообрезка truncate_to_last_sentence │ │
│ │ • Мгновенный сброс (0 мс) │ │ • Строгая Pydantic v2 JSON Schema │ │
│ └───────────────────────────────┘ └──────────────────────┬───────────────────────┘ │
└─────────────────────────────────────────────────────────────┼──────────────────────────┘
│
┌────────────────────────────────────────────────────┼─────────────────────┐
▼ ▼ ▼
┌─────────────────────────────────┐ ┌─────────────────────────────────┐ ┌───────────────────────┐
│ Гибридный RAG-движок (engine.py)│ │ AdaptiveAirLLMGemma4 (AirLLM) │ │ Стек GPU / Vulkan / │
│ • Bi-Encoder Multilingual-MiniLM│ │ • Google Gemma 4 12B (48 слоев) │ │ CUDA (vulkan_backend) │
│ • FAISS IndexFlatIP (Cosine Sim)│ │ • Вход Vision + Direct Audio │ │ • Закрепление в VRAM │
│ • BM25Okapi + N-gram фильтрация │ │ • W4A16 QAT квантование │ │ • PCIe DMA Pinned │
│ • CrossEncoder mmarco-mMiniLMv2 │ │ • Стриминг слоев без OOM │ │ Memory стриминг │
└─────────────────────────────────┘ └─────────────────────────────────┘ └───────────────────────┘
В модуле diagnostics/airllm_vulkan_service.py реализован движок AdaptiveAirLLMGemma4:
google/gemma-4-12B-it-qat-w4a16-ct (12 миллиардов параметров, 48 декодер-слоев, 4-битное квантование весов W4A16, 7.54 ГБ).model.language_model.embed_tokens, model.language_model.layers.0..47, model.language_model.norm, model.embed_vision, model.embed_audio).Архитектура RAG в engine.py полностью воспроизводит эталонную логику коммита 4c196ae3d4751845fefce7e8f1cde6f77bdb37ed и работает автоматически из коробки:
sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 формирует плотные эмбеддинги для базы знаний kb_data.json и эталонной телеметрии VehicleDiagnosticSample.txt (32 733 записи). Индекс faiss.IndexFlatIP отбирает топ-10 семантических кандидатов.BM25Okapi и триграммный N-gram анализатор отбирают топ-10 лексических кандидатов с принудительным бустингом точных кодов OBD-II (DTC).cross-encoder/mmarco-mMiniLMv2-L12-H384-v1 выполняет глубокое попарное переранжирование объединенного пула кандидатов с учетом формулы остаточного ресурса (100 - health_index) / 200.models/rag_cache/ по контрольной сумме SHA-256 исходных данных (мгновенный повторный старт).evaluate_model.py система обеспечивает Recall@3 = 100% и MRR = 1.000 при времени отклика всего ~4.5 мс.Все прикреплённые материалы (фотографии узлов, снимки с камеры, логи OBD-II, документы PDF/DOCX и аудиозаписи) сохраняются напрямую в базе данных SQLite в виде base64 Data URI (data:<mime>;base64,...), без записи файлов на диск сервера:
media/, а резервное копирование и экспорт диалогов инкапсулированы внутри базы данных.diagnostics/voice_service.py декодирует аудиозаписи любых форматов (.webm, .wav, .mp3, .ogg, .m4a) в 16 кГц моно float32 тензор с фильтрацией DC offset и нормализацией амплитуды для аудио-проектора model.embed_audio Gemma 4. Сторонние модели распознавания речи (Whisper) полностью исключены — распознавание русской речи мастера и акустический анализ шумов автомобиля осуществляются исключительно нативно архитектурой Google Gemma 4 12B Unified.context_window_tokens): Расширено до 32768 токенов (32K) по умолчанию. Это позволяет загружать детальные диагностические карты, дампы телеметрии и длинную историю диалога.max_new_tokens): Установлен на уровне 5000 токенов для формирования развернутых инструкций по ремонту.truncate_to_last_sentence): Механизм в diagnostics/schemas.py отслеживает границы предложений (точки, вопросительные и восклицательные знаки, закрывающие кавычки и скобки) и гарантирует, что ответ модели никогда не обрывается на полуслове.diagnostics/context_worker.py динамически вычисляет объем свободного места в окне 32K токенов:
$$\text{free_context} = \text{context_window} - \text{reserved_tokens} - \text{recent_tokens}$$
и адаптирует степень сжатия фоновой сводки под размер активного контекста.0 мс), отвечая без задержек.На странице /ar/ (кнопка «AR HUD» в шапке) реализованы два подрежима:
#000000). На MicroOLED экранах AR-очков (RayNeo X2, Air 2) черный цвет не излучает свет и становится 100% прозрачным в поле зрения.#arWindowCamera) отображается для прицеливания и съемки проблемных узлов.#arSessionSelect) и кнопка создания нового диалога (#btnArNewSession) прямо в верхней панели статуса AR.#arWindowAssistant).#arStagingBar):
#btnArSnapInAssistant), голосовая запись (#btnArVoiceTriggerAssistant), перетаскивание плавающих панелей (Pointer Events).Система поддерживает как гостевой режим работы, так и полноценную изоляцию рабочих пространств:
db.sqlite3 исключена из git (.gitignore), что гарантирует конфиденциальность пользовательских данных и защиту от случайных перезаписей.db_clean.sqlite3 со всеми примененными миграциями и предсозданными учетными записями. При первом запуске Django автоматически инициализирует db.sqlite3 из db_clean.sqlite3.adminAIdealAutoAdmin2026!mechanicMechanic2026!Все пути в проекте строго относительны к корню репозитория (BASE_DIR):
ExpertSystem_auto_diag/
├── autodiag_project/ # Конфигурация Django (settings, urls, wsgi, asgi)
├── diagnostics/ # Основное приложение экспертной системы «ИИдеал Авто»
│ ├── apps.py # Автоматическая предзагрузка AirLLM Gemma 4 в GPU VRAM при старте
│ ├── airllm_vulkan_service.py # AdaptiveAirLLMGemma4 + стриминг слоев + Function Calling
│ ├── context_worker.py # Динамический вытесняемый воркер памяти (окно 32K, 5 реплик)
│ ├── document_service.py # Универсальный парсер документов (.pdf, .docx, .txt, .log, .json, .csv)
│ ├── voice_service.py # Нативный аудиовход 16 кГц float32 для Gemma 4 (embed_audio)
│ ├── schemas.py # Pydantic v2 схемы, JSON Schema и truncate_to_last_sentence
│ ├── models.py # Модели SQLite: SystemSettings, DiagnosticProject, DialogSession, ChatMessage
│ ├── views.py # Представления интерфейса, авторизации, REST API и PWA
│ ├── urls.py # Маршруты веб-приложения
│ └── tests.py # Комплексный набор автотестов (11 тестов)
├── templates/diagnostics/
│ └── index.html # Единый интерфейс (Desktop + Mobile PWA + RayNeo AR HUD + Auth Modal)
├── static/
│ ├── css/app.css # Фирменные стили ИИдеал Авто, Industrial HUD, AR #000000, Auth UI
│ ├── js/app.js # Клиентская логика: Optimistic UI, чеклисты, камера, диктофон, AR, Auth
│ ├── js/sw.js # Service Worker офлайн-кэширования PWA
│ ├── icons/ # Векторные и растровые иконки PWA (icon-192, icon-512)
│ └── images/ # Фирменный логотип ИИдеал Авто (aideal_logo.jpg, aideal_badge.png)
├── models/ # Локальные модели и шарды (относительные пути)
│ ├── gemma-4-12B-it/ # Конфигурация и токенизатор Google Gemma 4 12B
│ ├── airllm_shards/
│ │ └── splitted_model/ # 52 послойных шарда safetensors (embed, layers.0..47, norm, vision, audio)
│ └── rag_cache/ # SHA-256 кэш эмбеддингов FAISS
├── prepare_airllm_model.py # Скрипт автозагрузки и послойной нарезки Gemma 4 12B
├── vulkan_backend.py # Менеджер видеопамяти GPU / Vulkan / CUDA
├── engine.py # RAG-движок (BERT bi-encoder + FAISS + BM25 + CrossEncoder)
├── kb_data.json # База знаний кодов неисправностей и регламентов ремонта
├── VehicleDiagnosticSample.txt # База эталонной телеметрии (32 733 строки)
├── evaluate_model.py # Бенчмарк RAG (Recall@3: 100%, MRR: 1.000)
├── MAIN_app_with_LLM.py # Консольный режим диагностики через AirLLM Gemma 4
├── manage.py # Точка входа Django
├── run_dev.ps1 # Быстрый запуск на Windows (PowerShell)
├── run_dev.sh # Быстрый запуск на Linux (Bash)
├── Dockerfile # Контейнер с поддержкой GPU/Vulkan и AirLLM
├── docker-compose.yml # Конфигурация Docker Compose
└── requirements.txt # Зависимости Python
DiagnosticStructuredResponse) и JSON Schema./api/messages/<id>/toggle-task/ и передается в контекст воркера.lookup_dtc_code(code) — карточка ошибки и эталон телеметрии из БД.search_knowledge_base(symptom_query, top_n) — гибридный RAG-поиск по базе знаний.inspect_attached_image(filename) — мультимодальный анализ фото узлов через embed_vision.inspect_attached_audio(duration_sec, sampling_rate) — нативный анализ шумов узлов через embed_audio.build_repair_inventory(system, codes) — подбор необходимых инструментов и моментов затяжки.# Сборка и запуск контейнера с пробросом GPU
docker compose up --build -d
В файле .vscode/launch.json преднастроены профили отладки (клавиша F5):
Django: AIdeal Auto (AirLLM Gemma 4 12B + Adaptive GPU VRAM) — запуск сервера Django с предзагрузкой модели в GPU VRAM.Django: Тестирование системы (Gemma 4 + RAG + Worker) — запуск полного набора автотестов.RAG Benchmark: Оценка точности и Vulkan (evaluate_model.py) — тестирование RAG-ядра.| Метод | Эндпоинт | Назначение |
|---|---|---|
GET | / | Главный интерфейс (Mobile-First PWA + Desktop) |
GET | /ar/ | Режим для AR-очков (RayNeo Optical / Видео-фон) |
POST | /api/auth/register/ | Регистрация нового пользователя |
POST | /api/auth/login/ | Авторизация (вход) пользователя |
POST | /api/auth/logout/ | Выход из системы |
GET | /api/auth/status/ | Проверка текущего статуса авторизации |
POST | /api/ask/ | Диагностический запрос (текст, фото, аудио, документы, коды DTC) |
GET/POST | /api/projects/ | Список проектов пользователя и создание нового проекта |
GET/POST | /api/sessions/ | Список сессий пользователя и создание нового диалога |
GET/PATCH | /api/sessions/<id>/ | Детали сессии и история сообщений |
POST | /api/sessions/<id>/pin/ | Закрепление/открепление диалога |
POST | /api/sessions/<id>/tag/ | Установка тега узла/системы авто |
POST | /api/sessions/<id>/rename/ | Переименование диалога |
POST | /api/messages/<id>/delete/ | Удаление одного сообщения из чата и контекста |
POST | /api/messages/delete/ | Пакетное удаление выбранных сообщений или очистка чата |
GET | /api/worker-status/<session_id>/ | Статус динамического воркера памяти |
POST | /api/messages/<id>/toggle-task/ | Сохранение состояния чекбоксов ремонта/инвентаря |
GET | /api/dtc/?q=...&system=... | Поиск по словарю кодов DTC и телеметрии |
GET/POST | /api/settings/ | Управление настройками AirLLM, GPU VRAM и памятью |
# Запуск полного набора автотестов (11 тестов)
powershell -Command "$env:AUTODIAG_FAST_TEST='1'; .\.venv\Scripts\python.exe manage.py test diagnostics -v 2"
# Запуск бенчмарка RAG
.\.venv\Scripts\python.exe evaluate_model.py
«ИИдеал Авто» (AIdeal Auto) — полнофункциональная кроссплатформенная экспертная система для автомастерских, сервисных центров, диагностов и автолюбителей. Система выполняет комплексную диагностику неисправностей автомобилей по описанию симптомов, кодам ошибок OBD-II (DTC), логам сканеров, нативным голосовым записям и фотографиям узлов или приборной панели с формированием специфицированного инвентаря и интерактивных пошаговых чеклистов ремонта.
Система полностью автономна (без зависимости от внешних облаков или серверов llama-server) и работает на базе послойного движка AirLLM с мультимодальной нейросетью Google Gemma 4 12B Unified (google/gemma-4-12B-it-qat-w4a16-ct, 48 слоев, Text + Vision + Audio), гибридным ядром RAG (BERT + FAISS + BM25 + CrossEncoder), нативным аудиовходом, окном контекста 32K токенов, бюджетом ответа ~5000 токенов с автообрезкой по предложениям и двухрежимным HUD дополненной реальности для очков RayNeo.
Примечание по весам: Веса нейросетей не хранятся в git-репозитории. При первом запуске
run_dev.ps1(или скриптаprepare_airllm_model.py) система автоматически скачивает модель Google Gemma 4 12B и модели RAG BERT, нарезая их на 52 независимых послойных шарда AirLLM. Личный HuggingFace токен указывать в коде не требуется (при необходимости передайте его через переменную окружения$env:HF_TOKEN).
Скрипт run_dev.ps1 сам создаст .venv, установит PyTorch с поддержкой GPU CUDA 12.4, скачает и подготовит шарды Gemma 4 12B, применит миграции и запустит веб-интерфейс:
.\run_dev.ps1
# 1. Создание виртуального окружения
python -m venv .venv
# 2. Установка PyTorch с поддержкой GPU (CUDA 12.4)
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
# 3. Установка зависимостей проекта
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
# 4. Скачивание Google Gemma 4 12B и нарезка на шарды AirLLM (~7.5 ГБ)
.\.venv\Scripts\python.exe prepare_airllm_model.py
# 5. Применение миграций БД SQLite
.\.venv\Scripts\python.exe manage.py migrate
# 6. Запуск сервера с автоматической предзагрузкой модели в GPU VRAM
.\.venv\Scripts\python.exe manage.py runserver 0.0.0.0:8000 --noreload
chmod +x run_dev.sh
./run_dev.sh
.\.venv\Scripts\python.exe MAIN_app_with_LLM.py┌────────────────────────────────────────────────────────────────────────────────────────┐
│ КЛИЕНТСКИЙ УРОВЕНЬ «ИИДЕАЛ АВТО» (PWA / AR HUD / Desktop) │
│ • Фирменный стиль ИИдеал Авто + логотип + векторные иконки SVG (192 / 512) │
│ • Два режима AR: 1) RayNeo Optical (#000000) 2) Камера-фон (Video Passthrough) │
│ • Мгновенный Optimistic UI + анимированный индикатор послойной генерации │
│ • Прямой аудиоввод (без Whisper), прикрепление фото, логов и словаря DTC │
└───────────────────────────────────────────┬────────────────────────────────────────────┘
│ HTTP / JSON / Multipart
┌───────────────────────────────────────────▼────────────────────────────────────────────┐
│ БЭКЕНД DJANGO (autodiag_project & diagnostics) │
│ ┌───────────────────────────────┐ ┌──────────────────────────────────────────────┐ │
│ │ Динамический воркер памяти │ │ Оркестратор AirLLM Gemma 4 12B │ │
│ │ (diagnostics/context_worker) │ │ (diagnostics/airllm_vulkan_service.py) │ │
│ │ • Окно контекста 32K токенов │ │ • Автоматическая предзагрузка в GPU VRAM │ │
│ │ • Динамический расчет бюджета │ │ • Ответ модели ~5000 токенов │ │
│ │ • Память 5 последних реплик │ │ • Автообрезка truncate_to_last_sentence │ │
│ │ • Мгновенный сброс (0 мс) │ │ • Строгая Pydantic v2 JSON Schema │ │
│ └───────────────────────────────┘ └──────────────────────┬───────────────────────┘ │
└─────────────────────────────────────────────────────────────┼──────────────────────────┘
│
┌────────────────────────────────────────────────────┼─────────────────────┐
▼ ▼ ▼
┌─────────────────────────────────┐ ┌─────────────────────────────────┐ ┌───────────────────────┐
│ Гибридный RAG-движок (engine.py)│ │ AdaptiveAirLLMGemma4 (AirLLM) │ │ Стек GPU / Vulkan / │
│ • Bi-Encoder Multilingual-MiniLM│ │ • Google Gemma 4 12B (48 слоев) │ │ CUDA (vulkan_backend) │
│ • FAISS IndexFlatIP (Cosine Sim)│ │ • Вход Vision + Direct Audio │ │ • Закрепление в VRAM │
│ • BM25Okapi + N-gram фильтрация │ │ • W4A16 QAT квантование │ │ • PCIe DMA Pinned │
│ • CrossEncoder mmarco-mMiniLMv2 │ │ • Стриминг слоев без OOM │ │ Memory стриминг │
└─────────────────────────────────┘ └─────────────────────────────────┘ └───────────────────────┘
В модуле diagnostics/airllm_vulkan_service.py реализован движок AdaptiveAirLLMGemma4:
google/gemma-4-12B-it-qat-w4a16-ct (12 миллиардов параметров, 48 декодер-слоев, 4-битное квантование весов W4A16, 7.54 ГБ).model.language_model.embed_tokens, model.language_model.layers.0..47, model.language_model.norm, model.embed_vision, model.embed_audio).Архитектура RAG в engine.py полностью воспроизводит эталонную логику коммита 4c196ae3d4751845fefce7e8f1cde6f77bdb37ed и работает автоматически из коробки:
sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 формирует плотные эмбеддинги для базы знаний kb_data.json и эталонной телеметрии VehicleDiagnosticSample.txt (32 733 записи). Индекс faiss.IndexFlatIP отбирает топ-10 семантических кандидатов.BM25Okapi и триграммный N-gram анализатор отбирают топ-10 лексических кандидатов с принудительным бустингом точных кодов OBD-II (DTC).cross-encoder/mmarco-mMiniLMv2-L12-H384-v1 выполняет глубокое попарное переранжирование объединенного пула кандидатов с учетом формулы остаточного ресурса (100 - health_index) / 200.models/rag_cache/ по контрольной сумме SHA-256 исходных данных (мгновенный повторный старт).evaluate_model.py система обеспечивает Recall@3 = 100% и MRR = 1.000 при времени отклика всего ~4.5 мс.Все прикреплённые материалы (фотографии узлов, снимки с камеры, логи OBD-II, документы PDF/DOCX и аудиозаписи) сохраняются напрямую в базе данных SQLite в виде base64 Data URI (data:<mime>;base64,...), без записи файлов на диск сервера:
media/, а резервное копирование и экспорт диалогов инкапсулированы внутри базы данных.diagnostics/voice_service.py декодирует аудиозаписи любых форматов (.webm, .wav, .mp3, .ogg, .m4a) в 16 кГц моно float32 тензор с фильтрацией DC offset и нормализацией амплитуды для аудио-проектора model.embed_audio Gemma 4. Сторонние модели распознавания речи (Whisper) полностью исключены — распознавание русской речи мастера и акустический анализ шумов автомобиля осуществляются исключительно нативно архитектурой Google Gemma 4 12B Unified.context_window_tokens): Расширено до 32768 токенов (32K) по умолчанию. Это позволяет загружать детальные диагностические карты, дампы телеметрии и длинную историю диалога.max_new_tokens): Установлен на уровне 5000 токенов для формирования развернутых инструкций по ремонту.truncate_to_last_sentence): Механизм в diagnostics/schemas.py отслеживает границы предложений (точки, вопросительные и восклицательные знаки, закрывающие кавычки и скобки) и гарантирует, что ответ модели никогда не обрывается на полуслове.diagnostics/context_worker.py динамически вычисляет объем свободного места в окне 32K токенов:
$$\text{free_context} = \text{context_window} - \text{reserved_tokens} - \text{recent_tokens}$$
и адаптирует степень сжатия фоновой сводки под размер активного контекста.0 мс), отвечая без задержек.На странице /ar/ (кнопка «AR HUD» в шапке) реализованы два подрежима:
#000000). На MicroOLED экранах AR-очков (RayNeo X2, Air 2) черный цвет не излучает свет и становится 100% прозрачным в поле зрения.#arWindowCamera) отображается для прицеливания и съемки проблемных узлов.#arSessionSelect) и кнопка создания нового диалога (#btnArNewSession) прямо в верхней панели статуса AR.#arWindowAssistant).#arStagingBar):
#btnArSnapInAssistant), голосовая запись (#btnArVoiceTriggerAssistant), перетаскивание плавающих панелей (Pointer Events).Система поддерживает как гостевой режим работы, так и полноценную изоляцию рабочих пространств:
db.sqlite3 исключена из git (.gitignore), что гарантирует конфиденциальность пользовательских данных и защиту от случайных перезаписей.db_clean.sqlite3 со всеми примененными миграциями и предсозданными учетными записями. При первом запуске Django автоматически инициализирует db.sqlite3 из db_clean.sqlite3.adminAIdealAutoAdmin2026!mechanicMechanic2026!Все пути в проекте строго относительны к корню репозитория (BASE_DIR):
ExpertSystem_auto_diag/
├── autodiag_project/ # Конфигурация Django (settings, urls, wsgi, asgi)
├── diagnostics/ # Основное приложение экспертной системы «ИИдеал Авто»
│ ├── apps.py # Автоматическая предзагрузка AirLLM Gemma 4 в GPU VRAM при старте
│ ├── airllm_vulkan_service.py # AdaptiveAirLLMGemma4 + стриминг слоев + Function Calling
│ ├── context_worker.py # Динамический вытесняемый воркер памяти (окно 32K, 5 реплик)
│ ├── document_service.py # Универсальный парсер документов (.pdf, .docx, .txt, .log, .json, .csv)
│ ├── voice_service.py # Нативный аудиовход 16 кГц float32 для Gemma 4 (embed_audio)
│ ├── schemas.py # Pydantic v2 схемы, JSON Schema и truncate_to_last_sentence
│ ├── models.py # Модели SQLite: SystemSettings, DiagnosticProject, DialogSession, ChatMessage
│ ├── views.py # Представления интерфейса, авторизации, REST API и PWA
│ ├── urls.py # Маршруты веб-приложения
│ └── tests.py # Комплексный набор автотестов (11 тестов)
├── templates/diagnostics/
│ └── index.html # Единый интерфейс (Desktop + Mobile PWA + RayNeo AR HUD + Auth Modal)
├── static/
│ ├── css/app.css # Фирменные стили ИИдеал Авто, Industrial HUD, AR #000000, Auth UI
│ ├── js/app.js # Клиентская логика: Optimistic UI, чеклисты, камера, диктофон, AR, Auth
│ ├── js/sw.js # Service Worker офлайн-кэширования PWA
│ ├── icons/ # Векторные и растровые иконки PWA (icon-192, icon-512)
│ └── images/ # Фирменный логотип ИИдеал Авто (aideal_logo.jpg, aideal_badge.png)
├── models/ # Локальные модели и шарды (относительные пути)
│ ├── gemma-4-12B-it/ # Конфигурация и токенизатор Google Gemma 4 12B
│ ├── airllm_shards/
│ │ └── splitted_model/ # 52 послойных шарда safetensors (embed, layers.0..47, norm, vision, audio)
│ └── rag_cache/ # SHA-256 кэш эмбеддингов FAISS
├── prepare_airllm_model.py # Скрипт автозагрузки и послойной нарезки Gemma 4 12B
├── vulkan_backend.py # Менеджер видеопамяти GPU / Vulkan / CUDA
├── engine.py # RAG-движок (BERT bi-encoder + FAISS + BM25 + CrossEncoder)
├── kb_data.json # База знаний кодов неисправностей и регламентов ремонта
├── VehicleDiagnosticSample.txt # База эталонной телеметрии (32 733 строки)
├── evaluate_model.py # Бенчмарк RAG (Recall@3: 100%, MRR: 1.000)
├── MAIN_app_with_LLM.py # Консольный режим диагностики через AirLLM Gemma 4
├── manage.py # Точка входа Django
├── run_dev.ps1 # Быстрый запуск на Windows (PowerShell)
├── run_dev.sh # Быстрый запуск на Linux (Bash)
├── Dockerfile # Контейнер с поддержкой GPU/Vulkan и AirLLM
├── docker-compose.yml # Конфигурация Docker Compose
└── requirements.txt # Зависимости Python
DiagnosticStructuredResponse) и JSON Schema./api/messages/<id>/toggle-task/ и передается в контекст воркера.lookup_dtc_code(code) — карточка ошибки и эталон телеметрии из БД.search_knowledge_base(symptom_query, top_n) — гибридный RAG-поиск по базе знаний.inspect_attached_image(filename) — мультимодальный анализ фото узлов через embed_vision.inspect_attached_audio(duration_sec, sampling_rate) — нативный анализ шумов узлов через embed_audio.build_repair_inventory(system, codes) — подбор необходимых инструментов и моментов затяжки.# Сборка и запуск контейнера с пробросом GPU
docker compose up --build -d
В файле .vscode/launch.json преднастроены профили отладки (клавиша F5):
Django: AIdeal Auto (AirLLM Gemma 4 12B + Adaptive GPU VRAM) — запуск сервера Django с предзагрузкой модели в GPU VRAM.Django: Тестирование системы (Gemma 4 + RAG + Worker) — запуск полного набора автотестов.RAG Benchmark: Оценка точности и Vulkan (evaluate_model.py) — тестирование RAG-ядра.| Метод | Эндпоинт | Назначение |
|---|---|---|
GET | / | Главный интерфейс (Mobile-First PWA + Desktop) |
GET | /ar/ | Режим для AR-очков (RayNeo Optical / Видео-фон) |
POST | /api/auth/register/ | Регистрация нового пользователя |
POST | /api/auth/login/ | Авторизация (вход) пользователя |
POST | /api/auth/logout/ | Выход из системы |
GET | /api/auth/status/ | Проверка текущего статуса авторизации |
POST | /api/ask/ | Диагностический запрос (текст, фото, аудио, документы, коды DTC) |
GET/POST | /api/projects/ | Список проектов пользователя и создание нового проекта |
GET/POST | /api/sessions/ | Список сессий пользователя и создание нового диалога |
GET/PATCH | /api/sessions/<id>/ | Детали сессии и история сообщений |
POST | /api/sessions/<id>/pin/ | Закрепление/открепление диалога |
POST | /api/sessions/<id>/tag/ | Установка тега узла/системы авто |
POST | /api/sessions/<id>/rename/ | Переименование диалога |
POST | /api/messages/<id>/delete/ | Удаление одного сообщения из чата и контекста |
POST | /api/messages/delete/ | Пакетное удаление выбранных сообщений или очистка чата |
GET | /api/worker-status/<session_id>/ | Статус динамического воркера памяти |
POST | /api/messages/<id>/toggle-task/ | Сохранение состояния чекбоксов ремонта/инвентаря |
GET | /api/dtc/?q=...&system=... | Поиск по словарю кодов DTC и телеметрии |
GET/POST | /api/settings/ | Управление настройками AirLLM, GPU VRAM и памятью |
# Запуск полного набора автотестов (11 тестов)
powershell -Command "$env:AUTODIAG_FAST_TEST='1'; .\.venv\Scripts\python.exe manage.py test diagnostics -v 2"
# Запуск бенчмарка RAG
.\.venv\Scripts\python.exe evaluate_model.py