UI bugfixes with boss

This commit is contained in:
Константин Лебединский
2026-04-30 19:53:49 +05:00
parent df6e770f90
commit b72b485fce
17 changed files with 469 additions and 250 deletions
+8 -3
View File
@@ -6,6 +6,7 @@ from typing import Any
from .draft_validator import (
assert_draft_matches_shape,
parse_json_from_llm_text,
shuffle_options_in_questions,
validate_and_normalize_draft,
)
from .llm_client import LlmError, chat_completion_text_content, get_llm_config
@@ -103,6 +104,7 @@ def generate_full_test_by_shape(test_title: str, test_description: str, shape: l
parsed = parse_json_from_llm_text(raw)
draft = validate_and_normalize_draft(parsed)
assert_draft_matches_shape({'questions': draft['questions']}, shape)
shuffle_options_in_questions(draft['questions'])
return {
'title': draft['title'],
'description': draft['description'],
@@ -153,6 +155,7 @@ def generate_test_by_title(
raw = chat_completion_text_content(cfg, system, user, 0.45)
parsed = parse_json_from_llm_text(raw)
draft = validate_and_normalize_draft(parsed)
shuffle_options_in_questions(draft['questions'])
return {
'title': draft['title'],
'description': draft['description'],
@@ -475,9 +478,11 @@ def generate_or_rephrase_question(
shape = [{'optionsCount': n, 'hasMultipleAnswers': bool(has_multiple_answers)}]
assert_draft_matches_shape({'questions': [parsed]}, shape)
draft = validate_and_normalize_draft({'title': 'временно', 'questions': [parsed]})
q0 = draft['questions'][0]
shuffle_options_in_questions([q0])
return {
'mode': 'full',
'text': draft['questions'][0]['text'],
'hasMultipleAnswers': draft['questions'][0]['hasMultipleAnswers'],
'options': draft['questions'][0]['options'],
'text': q0['text'],
'hasMultipleAnswers': q0['hasMultipleAnswers'],
'options': q0['options'],
}