Spaces:
Running
Running
| import re | |
| def evaluate_answer(answer: str) -> dict: | |
| """Оценивает качество ответа по базовым критериям""" | |
| score = 0 | |
| feedback = [] | |
| if len(answer) < 150: | |
| feedback.append("Ответ слишком короткий.") | |
| else: | |
| score += 1 | |
| if re.search(r"потому что|так как|следовательно|в итоге|пример", answer.lower()): | |
| score += 1 | |
| else: | |
| feedback.append("Не хватает объяснений и примеров.") | |
| if "ошибка" in answer.lower() or "не знаю" in answer.lower(): | |
| feedback.append("Ответ содержит неопределённость.") | |
| else: | |
| score += 1 | |
| overall = "Отлично ✅" if score == 3 else "Нужно улучшить ⚙️" | |
| return {"score": score, "feedback": feedback, "result": overall} | |
| def improve_answer(answer: str) -> str: | |
| """Улучшает ответ, если он слишком краткий""" | |
| if len(answer) < 200: | |
| answer += ( | |
| "\n\n💡 Добавим пояснение:\n" | |
| "Чтобы лучше понять, представь это на практике — " | |
| "если применить этот принцип, можно заметить закономерности " | |
| "и глубже осознать логику процесса." | |
| ) | |
| if "пример" not in answer.lower(): | |
| answer += "\n📘 Пример: допустим, у нас есть ситуация, где этот принцип работает..." | |
| return answer | |