diff --git a/api/routes.py b/api/routes.py index fc5bf90..868c6ba 100644 --- a/api/routes.py +++ b/api/routes.py @@ -22,10 +22,13 @@ logger = logging.getLogger("elmer.script") _ping_llm_cache: dict = {} -def _build_diagnosis_prompt(data: dict) -> str: +def _build_diagnosis_prompt(data: dict, car_info: str = "") -> str: """Строит промпт для LLM из распарсенных данных.""" parts = ["## Данные диагностики\n"] + if car_info: + parts.append(f"**Водитель сообщил:** {car_info}") + if data["vin"]: parts.append(f"**VIN:** {data['vin']}") @@ -95,6 +98,7 @@ def register(app): client_info["content_length"] = request.content_length parsed = parse_batch(responses) + car_info = (data.get("car_info") or "").strip() cfg = load() api_key = cfg["llm"]["api_key"] @@ -114,7 +118,7 @@ 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)) + diagnosis = diagnoser.diagnose(SYSTEM_PROMPT, _build_diagnosis_prompt(parsed, car_info)) llm_success = True except LLMError as e: logger.warning(f"LLM failed: {e}")