fix: именительный падеж при веб-склонении (Морфер/ИИ)
- Морфер и ИИ не всегда возвращают именительный падеж (он равен исходному слову) — теперь подставляем его сами - табло результатов склонения показывает ВСЕ 6 падежей, включая именительный (раньше показывал только Р,Д,В,Т,П)
This commit is contained in:
+1
-1
@@ -450,7 +450,7 @@ class DokoGenApp:
|
|||||||
for key, res in results:
|
for key, res in results:
|
||||||
label = "Полное название" if key == 'declension' else "Краткое название"
|
label = "Полное название" if key == 'declension' else "Краткое название"
|
||||||
lines.append(f"\n{label}:")
|
lines.append(f"\n{label}:")
|
||||||
for code, name_case in [('Р', 'Родительный'), ('Д', 'Дательный'), ('В', 'Винительный'),
|
for code, name_case in [('И', 'Именительный'), ('Р', 'Родительный'), ('Д', 'Дательный'), ('В', 'Винительный'),
|
||||||
('Т', 'Творительный'), ('П', 'Предложный')]:
|
('Т', 'Творительный'), ('П', 'Предложный')]:
|
||||||
if code in res['data']:
|
if code in res['data']:
|
||||||
lines.append(f" {name_case}: {res['data'][code]}")
|
lines.append(f" {name_case}: {res['data'][code]}")
|
||||||
|
|||||||
@@ -159,6 +159,11 @@ def check_declension_morpher(text):
|
|||||||
if not decl:
|
if not decl:
|
||||||
return None, "Морфер не смог просклонять (возможно, это не слово/ФИО)"
|
return None, "Морфер не смог просклонять (возможно, это не слово/ФИО)"
|
||||||
|
|
||||||
|
# Морфер не возвращает именительный падеж (он равен исходному слову) —
|
||||||
|
# добавляем его сами, иначе поле «Именительный» остаётся пустым
|
||||||
|
if 'И' not in decl:
|
||||||
|
decl['И'] = text.strip()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'source': 'Морфер 3.0',
|
'source': 'Морфер 3.0',
|
||||||
'source_url': 'https://morpher.ru',
|
'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:
|
if not decl:
|
||||||
return None, "ИИ не смог просклонять"
|
return None, "ИИ не смог просклонять"
|
||||||
|
|
||||||
|
# Именительный падеж равен исходному слову — подставляем, если ИИ его не вернул
|
||||||
|
if 'И' not in decl:
|
||||||
|
decl['И'] = text.strip()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'source': 'ИИ',
|
'source': 'ИИ',
|
||||||
'source_url': 'openai-совместимый API',
|
'source_url': 'openai-совместимый API',
|
||||||
|
|||||||
Reference in New Issue
Block a user