fix: LLM иногда возвращает пустой текст — raise при пустом content, ретрай в generate_response_with_retry, фронтенд показывает ошибку вместо молчания

This commit is contained in:
apuc committed 2026-09-22 11:37:38 +03:00
1 parent d757d2f8c7
commit 8ca070ed70
3 files changed
+8 -3

No files matched your search

+4 -1
View File
@@ -90,7 +90,10 @@ def generate_response(llm_config, vacancy, resume_text, style_hint=""):
raise RuntimeError(f"LLM ошибка {resp.status_code}: {resp.text[:300]}")
data = resp.json()
return data["choices"][0]["message"]["content"].strip()
content = (data["choices"][0]["message"].get("content") or "").strip()
if not content:
raise RuntimeError("LLM вернул пустой текст — попробуйте ещё раз")
return content
def generate_response_with_retry(llm_config, vacancy, resume_text, style_hint="", attempts=2):
+2
View File
@@ -656,6 +656,8 @@ async function openSendModal(id) {
renderTexts();
} else if (data.errors && data.errors[id]) {
document.getElementById('send-modal-note').textContent = 'Ошибка: ' + data.errors[id];
} else {
document.getElementById('send-modal-note').textContent = 'Не удалось сгенерировать текст — попробуйте ещё раз';
}
} catch (e) {
document.getElementById('send-loading').classList.add('hidden');
+2 -2
View File
@@ -31,7 +31,7 @@ from werkzeug.security import check_password_hash, generate_password_hash
from hh_search import (search_vacancies, fetch_vacancy_details, fetch_my_resumes,
parse_cookies, get_proxies)
from hh_llm import generate_response
from hh_llm import generate_response_with_retry
from hh_browser import browser_open, browser_send, browser_close
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
@@ -508,7 +508,7 @@ def api_generate(name):
details = fetch_vacancy_details(vid, proxies=get_proxies()) or {}
vacancy_full = {**vacancy, **details}
try:
texts[vid] = generate_response(cfg.get("llm", {}), vacancy_full,
texts[vid] = generate_response_with_retry(cfg.get("llm", {}), vacancy_full,
resume, cfg.get("style", ""))
if limit is not None:
used += 1