diff --git a/dokogen/ui.py b/dokogen/ui.py index e1820a0..2de5dbf 100644 --- a/dokogen/ui.py +++ b/dokogen/ui.py @@ -450,7 +450,7 @@ class DokoGenApp: for key, res in results: label = "Полное название" if key == 'declension' else "Краткое название" lines.append(f"\n{label}:") - for code, name_case in [('Р', 'Родительный'), ('Д', 'Дательный'), ('В', 'Винительный'), + for code, name_case in [('И', 'Именительный'), ('Р', 'Родительный'), ('Д', 'Дательный'), ('В', 'Винительный'), ('Т', 'Творительный'), ('П', 'Предложный')]: if code in res['data']: lines.append(f" {name_case}: {res['data'][code]}") diff --git a/dokogen/verify.py b/dokogen/verify.py index f0b4670..89fe671 100644 --- a/dokogen/verify.py +++ b/dokogen/verify.py @@ -159,6 +159,11 @@ def check_declension_morpher(text): if not decl: return None, "Морфер не смог просклонять (возможно, это не слово/ФИО)" + # Морфер не возвращает именительный падеж (он равен исходному слову) — + # добавляем его сами, иначе поле «Именительный» остаётся пустым + if 'И' not in decl: + decl['И'] = text.strip() + return { 'source': 'Морфер 3.0', 'source_url': 'https://morpher.ru', @@ -298,6 +303,10 @@ def check_declension_ai(text, api_key, model='deepseek-chat', base_url=None): if not decl: return None, "ИИ не смог просклонять" + # Именительный падеж равен исходному слову — подставляем, если ИИ его не вернул + if 'И' not in decl: + decl['И'] = text.strip() + return { 'source': 'ИИ', 'source_url': 'openai-совместимый API',