feat: car_info в upload — свободное описание авто от водителя
This commit is contained in:
+6
-2
@@ -22,10 +22,13 @@ logger = logging.getLogger("elmer.script")
|
|||||||
_ping_llm_cache: dict = {}
|
_ping_llm_cache: dict = {}
|
||||||
|
|
||||||
|
|
||||||
def _build_diagnosis_prompt(data: dict) -> str:
|
def _build_diagnosis_prompt(data: dict, car_info: str = "") -> str:
|
||||||
"""Строит промпт для LLM из распарсенных данных."""
|
"""Строит промпт для LLM из распарсенных данных."""
|
||||||
parts = ["## Данные диагностики\n"]
|
parts = ["## Данные диагностики\n"]
|
||||||
|
|
||||||
|
if car_info:
|
||||||
|
parts.append(f"**Водитель сообщил:** {car_info}")
|
||||||
|
|
||||||
if data["vin"]:
|
if data["vin"]:
|
||||||
parts.append(f"**VIN:** {data['vin']}")
|
parts.append(f"**VIN:** {data['vin']}")
|
||||||
|
|
||||||
@@ -95,6 +98,7 @@ def register(app):
|
|||||||
client_info["content_length"] = request.content_length
|
client_info["content_length"] = request.content_length
|
||||||
|
|
||||||
parsed = parse_batch(responses)
|
parsed = parse_batch(responses)
|
||||||
|
car_info = (data.get("car_info") or "").strip()
|
||||||
|
|
||||||
cfg = load()
|
cfg = load()
|
||||||
api_key = cfg["llm"]["api_key"]
|
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"),
|
base_url=cfg["llm"].get("base_url", "https://api.aillm.ru/v1"),
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
diagnosis = diagnoser.diagnose(SYSTEM_PROMPT, _build_diagnosis_prompt(parsed))
|
diagnosis = diagnoser.diagnose(SYSTEM_PROMPT, _build_diagnosis_prompt(parsed, car_info))
|
||||||
llm_success = True
|
llm_success = True
|
||||||
except LLMError as e:
|
except LLMError as e:
|
||||||
logger.warning(f"LLM failed: {e}")
|
logger.warning(f"LLM failed: {e}")
|
||||||
|
|||||||
Reference in New Issue
Block a user