diff --git a/hh_llm.py b/hh_llm.py index 030af68..7b80dca 100644 --- a/hh_llm.py +++ b/hh_llm.py @@ -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): diff --git a/templates/index.html b/templates/index.html index 860f5cb..82243fc 100644 --- a/templates/index.html +++ b/templates/index.html @@ -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'); diff --git a/webui.py b/webui.py index 99bc316..7d2a8d8 100644 --- a/webui.py +++ b/webui.py @@ -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,8 +508,8 @@ 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, - resume, cfg.get("style", "")) + texts[vid] = generate_response_with_retry(cfg.get("llm", {}), vacancy_full, + resume, cfg.get("style", "")) if limit is not None: used += 1 bump_llm_usage(current_user())