格式化评测结果为易于模型理解的字符串
(eval_result: Dict[str, Any])
| 387 | |
| 388 | |
| 389 | def format_evaluation_result(eval_result: Dict[str, Any]) -> str: |
| 390 | """格式化评测结果为易于模型理解的字符串""" |
| 391 | status = eval_result.get("status", "Unknown") |
| 392 | passed = eval_result.get("passed_cases", 0) |
| 393 | total = eval_result.get("total_cases", 0) |
| 394 | |
| 395 | result_text = f"Status: {status}\n" |
| 396 | result_text += f"Passed Cases: {passed}/{total}\n" |
| 397 | |
| 398 | if status == "Accepted": |
| 399 | runtime = eval_result.get("runtime", 0) |
| 400 | memory = eval_result.get("memory_usage", 0) |
| 401 | runtime_beats = eval_result.get("runtime_beats", 0) |
| 402 | memory_beats = eval_result.get("memory_beats", 0) |
| 403 | result_text += f"Runtime: {runtime}ms (beats {runtime_beats}%)\n" |
| 404 | result_text += f"Memory: {memory}MB (beats {memory_beats}%)\n" |
| 405 | elif status == "Wrong Answer": |
| 406 | result_text += "The solution produced incorrect output for some test cases.\n" |
| 407 | elif status == "Time Limit Exceeded": |
| 408 | result_text += "The solution is too slow. Consider optimizing the algorithm.\n" |
| 409 | elif status == "Runtime Error": |
| 410 | result_text += "The solution crashed during execution. Check for index errors, null pointers, etc.\n" |
| 411 | elif status == "Memory Limit Exceeded": |
| 412 | result_text += "The solution uses too much memory. Consider using more memory-efficient data structures.\n" |
| 413 | elif status == "Compile Error": |
| 414 | result_text += "The code failed to compile. Check for syntax errors.\n" |
| 415 | |
| 416 | if "details_text" in eval_result: |
| 417 | # 只取前200字符的details |
| 418 | details = eval_result["details_text"][:200] |
| 419 | result_text += f"Details: {details}...\n" |
| 420 | |
| 421 | return result_text |
| 422 | |
| 423 | |
| 424 | async def generate_initial_solution( |
no test coverage detected