fix: именительный падеж при веб-склонении (Морфер/ИИ)

- Морфер и ИИ не всегда возвращают именительный падеж (он равен
  исходному слову) — теперь подставляем его сами
- табло результатов склонения показывает ВСЕ 6 падежей, включая
  именительный (раньше показывал только Р,Д,В,Т,П)
This commit is contained in:
2026-08-03 16:59:28 +04:00
parent 17a99627bc
commit fd6fd60507
2 changed files with 10 additions and 1 deletions
+1 -1
View File
@@ -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]}")
+9
View File
@@ -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',