Update app.py
Browse files
app.py
CHANGED
|
@@ -18,7 +18,6 @@ def clean_latex(latex):
|
|
| 18 |
latex = latex.replace('\\ ', '')
|
| 19 |
latex = latex.replace('\\\\', '\\')
|
| 20 |
latex = re.sub(r'\\[ \t\n\r\f\v]*', '', latex)
|
| 21 |
-
|
| 22 |
latex = re.sub(r'\\([+\-=])', r'\1', latex)
|
| 23 |
|
| 24 |
replacements = {
|
|
@@ -45,7 +44,6 @@ def clean_latex(latex):
|
|
| 45 |
latex = latex.replace('{', '').replace('}', '')
|
| 46 |
latex = latex.strip().rstrip(',.')
|
| 47 |
latex = re.sub(r'(?<![a-zA-Z0-9])e(?![a-zA-Z0-9])', 'E', latex)
|
| 48 |
-
|
| 49 |
latex = re.sub(r'(\d)([a-zA-Z])', r'\1*\2', latex)
|
| 50 |
latex = re.sub(r'(\d+)\s*i', r'\1*I', latex)
|
| 51 |
latex = re.sub(r'(?<![a-zA-Z0-9])i(?![a-zA-Z0-9])', 'I', latex)
|
|
@@ -58,7 +56,6 @@ def clean_latex(latex):
|
|
| 58 |
if '=' not in latex:
|
| 59 |
latex += '=0'
|
| 60 |
|
| 61 |
-
# β
Final replacements to force real constants
|
| 62 |
latex = latex.replace('pi', '3.1416')
|
| 63 |
latex = latex.replace('e', '2.7183')
|
| 64 |
|
|
@@ -98,7 +95,6 @@ def solve_polynomial(image, llm_url):
|
|
| 98 |
|
| 99 |
try:
|
| 100 |
expr = parse_latex(cleaned_latex)
|
| 101 |
-
# β
Force numeric substitution even if pi/E not in free_symbols
|
| 102 |
expr = expr.subs(sp.pi, sp.Float(3.1416)).subs(sp.E, sp.Float(2.7183))
|
| 103 |
|
| 104 |
if not isinstance(expr, sp.Equality):
|
|
@@ -115,7 +111,6 @@ def solve_polynomial(image, llm_url):
|
|
| 115 |
cleaned_latex = clean_latex(fixed_latex)
|
| 116 |
try:
|
| 117 |
expr = parse_latex(cleaned_latex)
|
| 118 |
-
# β
Apply again after fallback
|
| 119 |
expr = expr.subs(sp.pi, sp.Float(3.1416)).subs(sp.E, sp.Float(2.7183))
|
| 120 |
|
| 121 |
if not isinstance(expr, sp.Equality):
|
|
@@ -174,7 +169,6 @@ def solve_polynomial(image, llm_url):
|
|
| 174 |
except Exception as e:
|
| 175 |
return f"β **Error**: {str(e)}", "", ""
|
| 176 |
|
| 177 |
-
|
| 178 |
# Gradio UI
|
| 179 |
with gr.Blocks() as demo:
|
| 180 |
llm_url = gr.Textbox(label="π Enter LLM Microservice URL (from Colab)", placeholder="https://xxxx.ngrok-free.app")
|
|
|
|
| 18 |
latex = latex.replace('\\ ', '')
|
| 19 |
latex = latex.replace('\\\\', '\\')
|
| 20 |
latex = re.sub(r'\\[ \t\n\r\f\v]*', '', latex)
|
|
|
|
| 21 |
latex = re.sub(r'\\([+\-=])', r'\1', latex)
|
| 22 |
|
| 23 |
replacements = {
|
|
|
|
| 44 |
latex = latex.replace('{', '').replace('}', '')
|
| 45 |
latex = latex.strip().rstrip(',.')
|
| 46 |
latex = re.sub(r'(?<![a-zA-Z0-9])e(?![a-zA-Z0-9])', 'E', latex)
|
|
|
|
| 47 |
latex = re.sub(r'(\d)([a-zA-Z])', r'\1*\2', latex)
|
| 48 |
latex = re.sub(r'(\d+)\s*i', r'\1*I', latex)
|
| 49 |
latex = re.sub(r'(?<![a-zA-Z0-9])i(?![a-zA-Z0-9])', 'I', latex)
|
|
|
|
| 56 |
if '=' not in latex:
|
| 57 |
latex += '=0'
|
| 58 |
|
|
|
|
| 59 |
latex = latex.replace('pi', '3.1416')
|
| 60 |
latex = latex.replace('e', '2.7183')
|
| 61 |
|
|
|
|
| 95 |
|
| 96 |
try:
|
| 97 |
expr = parse_latex(cleaned_latex)
|
|
|
|
| 98 |
expr = expr.subs(sp.pi, sp.Float(3.1416)).subs(sp.E, sp.Float(2.7183))
|
| 99 |
|
| 100 |
if not isinstance(expr, sp.Equality):
|
|
|
|
| 111 |
cleaned_latex = clean_latex(fixed_latex)
|
| 112 |
try:
|
| 113 |
expr = parse_latex(cleaned_latex)
|
|
|
|
| 114 |
expr = expr.subs(sp.pi, sp.Float(3.1416)).subs(sp.E, sp.Float(2.7183))
|
| 115 |
|
| 116 |
if not isinstance(expr, sp.Equality):
|
|
|
|
| 169 |
except Exception as e:
|
| 170 |
return f"β **Error**: {str(e)}", "", ""
|
| 171 |
|
|
|
|
| 172 |
# Gradio UI
|
| 173 |
with gr.Blocks() as demo:
|
| 174 |
llm_url = gr.Textbox(label="π Enter LLM Microservice URL (from Colab)", placeholder="https://xxxx.ngrok-free.app")
|