Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -499,7 +499,7 @@ STRICT REQUIREMENTS:
|
|
| 499 |
logger.error("No content received from Anthropic API")
|
| 500 |
return "Error: No content received from API", None, None
|
| 501 |
|
| 502 |
-
|
| 503 |
logger.debug("Successfully received response from Anthropic API")
|
| 504 |
|
| 505 |
# Execute SymPy code and append results
|
|
@@ -530,10 +530,6 @@ STRICT REQUIREMENTS:
|
|
| 530 |
logger.debug("Successfully created temporary files")
|
| 531 |
|
| 532 |
return response_text, questions_path, full_path
|
| 533 |
-
|
| 534 |
-
except Exception as e:
|
| 535 |
-
logger.error(f"Error generating question: {str(e)}")
|
| 536 |
-
return f"Error: {str(e)}", None, None
|
| 537 |
|
| 538 |
def extract_and_run_sympy_code_simple(response_text):
|
| 539 |
"""
|
|
@@ -605,8 +601,7 @@ def check_and_resolve_discrepancy(initial_response, sympy_output):
|
|
| 605 |
If the two answers are inconsistent with each other then please:
|
| 606 |
1. Identify which solution is correct
|
| 607 |
2. Explain the error in the incorrect solution
|
| 608 |
-
3. Provide a revised
|
| 609 |
-
and does not refer to the Original solution even if this means large parts of the Original solution are repeated.
|
| 610 |
|
| 611 |
Original solution:
|
| 612 |
{initial_response}
|
|
@@ -635,15 +630,31 @@ Please maintain the same LaTeX formatting as the original solution."""
|
|
| 635 |
resolution_text += "\n\nNew SymPy Verification Results:\n```\n" + new_sympy_output + "\n```"
|
| 636 |
|
| 637 |
# Determine if there was a discrepancy that required a revised solution
|
| 638 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 639 |
|
| 640 |
# Extract revised solution if it exists
|
| 641 |
revised_solution = None
|
| 642 |
-
if has_discrepancy:
|
| 643 |
# Look for the revised solution after the explanation
|
| 644 |
-
solution_parts = resolution_text.split(
|
| 645 |
if len(solution_parts) > 1:
|
| 646 |
revised_solution = solution_parts[1].strip()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 647 |
|
| 648 |
return resolution_text, has_discrepancy, revised_solution
|
| 649 |
|
|
@@ -669,7 +680,7 @@ Please:
|
|
| 669 |
|
| 670 |
If you find any issues:
|
| 671 |
1. Clearly explain what is incorrect or missing
|
| 672 |
-
2. Provide a COMPLETE
|
| 673 |
3. Maintain the same LaTeX formatting as the original
|
| 674 |
4. Include any missing assumptions or conditions
|
| 675 |
5. If relevant, provide corrected SymPy code
|
|
|
|
| 499 |
logger.error("No content received from Anthropic API")
|
| 500 |
return "Error: No content received from API", None, None
|
| 501 |
|
| 502 |
+
response_text = message.content[0].text
|
| 503 |
logger.debug("Successfully received response from Anthropic API")
|
| 504 |
|
| 505 |
# Execute SymPy code and append results
|
|
|
|
| 530 |
logger.debug("Successfully created temporary files")
|
| 531 |
|
| 532 |
return response_text, questions_path, full_path
|
|
|
|
|
|
|
|
|
|
|
|
|
| 533 |
|
| 534 |
def extract_and_run_sympy_code_simple(response_text):
|
| 535 |
"""
|
|
|
|
| 601 |
If the two answers are inconsistent with each other then please:
|
| 602 |
1. Identify which solution is correct
|
| 603 |
2. Explain the error in the incorrect solution
|
| 604 |
+
3. Provide a revised complete solution from the beginning that fixes any errors and does not refer to SymPy
|
|
|
|
| 605 |
|
| 606 |
Original solution:
|
| 607 |
{initial_response}
|
|
|
|
| 630 |
resolution_text += "\n\nNew SymPy Verification Results:\n```\n" + new_sympy_output + "\n```"
|
| 631 |
|
| 632 |
# Determine if there was a discrepancy that required a revised solution
|
| 633 |
+
# Check for various phrasings that indicate a revised solution
|
| 634 |
+
revision_phrases = ["revised complete solution", "revised solution", "correct complete solution", "corrected solution"]
|
| 635 |
+
has_discrepancy = False
|
| 636 |
+
found_phrase = None
|
| 637 |
+
|
| 638 |
+
for phrase in revision_phrases:
|
| 639 |
+
if phrase in resolution_text.lower():
|
| 640 |
+
has_discrepancy = True
|
| 641 |
+
found_phrase = phrase
|
| 642 |
+
break
|
| 643 |
|
| 644 |
# Extract revised solution if it exists
|
| 645 |
revised_solution = None
|
| 646 |
+
if has_discrepancy and found_phrase:
|
| 647 |
# Look for the revised solution after the explanation
|
| 648 |
+
solution_parts = resolution_text.split(found_phrase, maxsplit=1)
|
| 649 |
if len(solution_parts) > 1:
|
| 650 |
revised_solution = solution_parts[1].strip()
|
| 651 |
+
|
| 652 |
+
# Add additional check for solutions that might appear after "here's the"
|
| 653 |
+
if not revised_solution and "here's the" in solution_parts[0].lower():
|
| 654 |
+
solution_parts = resolution_text.split("here's the", maxsplit=1)
|
| 655 |
+
if len(solution_parts) > 1:
|
| 656 |
+
revised_solution = solution_parts[1].strip()
|
| 657 |
+
has_discrepancy = True
|
| 658 |
|
| 659 |
return resolution_text, has_discrepancy, revised_solution
|
| 660 |
|
|
|
|
| 680 |
|
| 681 |
If you find any issues:
|
| 682 |
1. Clearly explain what is incorrect or missing
|
| 683 |
+
2. Provide a COMPLETE CORRECTED solution
|
| 684 |
3. Maintain the same LaTeX formatting as the original
|
| 685 |
4. Include any missing assumptions or conditions
|
| 686 |
5. If relevant, provide corrected SymPy code
|