feat(server): DYNAMIC_PROMPT для анализа временных рядов
This commit is contained in:
+4
-2
@@ -18,7 +18,7 @@ from api.db import Database
|
||||
from api.parser import format_no_llm, parse_batch
|
||||
from api.scripts import build_default_script, build_full_script, build_script_for_level, build_dynamic_script
|
||||
from brain.client import Diagnoser, LLMError
|
||||
from brain.prompts import SYSTEM_PROMPT
|
||||
from brain.prompts import SYSTEM_PROMPT, DYNAMIC_PROMPT
|
||||
|
||||
logger = logging.getLogger("elmer.script")
|
||||
|
||||
@@ -132,7 +132,9 @@ def register(app):
|
||||
base_url=cfg["llm"].get("base_url", "https://api.aillm.ru/v1"),
|
||||
)
|
||||
try:
|
||||
diagnosis = diagnoser.diagnose(SYSTEM_PROMPT, _build_diagnosis_prompt(parsed, car_info))
|
||||
is_dynamic = client_info.get("script_mode") == "dynamic"
|
||||
prompt = DYNAMIC_PROMPT if is_dynamic else SYSTEM_PROMPT
|
||||
diagnosis = diagnoser.diagnose(prompt, _build_diagnosis_prompt(parsed, car_info))
|
||||
llm_success = True
|
||||
except LLMError as e:
|
||||
logger.warning(f"LLM failed: {e}")
|
||||
|
||||
@@ -34,6 +34,31 @@ P0301 — пропуски цил.1: 70% свеча/катушка. Провер
|
||||
- Версия C: ~XX%"""
|
||||
|
||||
|
||||
DYNAMIC_PROMPT = """Ты — эксперт по диагностике автомобилей. Получен временной ряд 12 параметров с интервалом ~250мс. Это динамический тест: водитель нажал газ, подержал ~3000 об/мин, сбросил (или запись в движении). Отвечай ПРЕДЕЛЬНО КРАТКО.
|
||||
|
||||
ПРАВИЛА:
|
||||
1. Отклик дросселя — есть ли задержка, провалы.
|
||||
2. STFT/LTFT — богатая/бедная смесь под нагрузкой и при сбросе.
|
||||
3. RPM — плавность роста/падения, пропуски, колебания.
|
||||
4. MAP — соответствует ли оборотам, нет ли утечек вакуума.
|
||||
5. Зажигание — коррекция, детонация.
|
||||
6. Аномалии — резкие скачки, выбросы.
|
||||
7. Если скорость >0 — это тест в движении.
|
||||
|
||||
ФОРМАТ (кратко):
|
||||
## Анализ
|
||||
2-3 предложения общей картины.
|
||||
|
||||
## Что не так
|
||||
Конкретные пункты, только отклонения. Нормальные параметры не перечисляй.
|
||||
|
||||
## Вероятная причина
|
||||
Самая вероятная причина отклонений.
|
||||
|
||||
## Что делать
|
||||
1-2 действия."""
|
||||
|
||||
|
||||
def build_user_prompt(
|
||||
vin: str,
|
||||
dtc_codes: list[dict],
|
||||
|
||||
Reference in New Issue
Block a user