diff --git a/src/axiomatic/axtract/axtract_report.py b/src/axiomatic/axtract/axtract_report.py
index 34a82ed..bc10d9d 100644
--- a/src/axiomatic/axtract/axtract_report.py
+++ b/src/axiomatic/axtract/axtract_report.py
@@ -248,7 +248,7 @@ def create_report(report_data: EquationExtractionResponse, report_path: str = ".
html_content += f"""
| \\({symbol.key}\\) |
- {symbol.key} |
+ {symbol.value} |
"""
diff --git a/src/axiomatic/axtract/interactive_table.py b/src/axiomatic/axtract/interactive_table.py
index 428088d..4122124 100644
--- a/src/axiomatic/axtract/interactive_table.py
+++ b/src/axiomatic/axtract/interactive_table.py
@@ -409,6 +409,6 @@ def _create_variable_dict(equation_response: EquationExtractionResponse) -> dict
for symbol in equation.latex_symbols:
# Only add if not already present (avoid duplicates)
if symbol.key not in variable_dict:
- variable_dict[symbol.key] = {"name": symbol.key}
+ variable_dict[symbol.key] = {"name": symbol.value}
return variable_dict
diff --git a/src/axiomatic/base_client.py b/src/axiomatic/base_client.py
index e5dfa3a..886a251 100644
--- a/src/axiomatic/base_client.py
+++ b/src/axiomatic/base_client.py
@@ -27,7 +27,6 @@
from .fso.client import AsyncFsoClient
from .pic.client import AsyncPicClient
-
class BaseClient:
"""
Use this class to access the different functions within the SDK. You can instantiate any number of clients with different configuration that will propagate to these functions.
diff --git a/src/axiomatic/client.py b/src/axiomatic/client.py
index 0215d4f..b753b19 100644
--- a/src/axiomatic/client.py
+++ b/src/axiomatic/client.py
@@ -1,7 +1,7 @@
import base64
import dill # type: ignore
import json
-import requests
+import requests # type: ignore
import os
import time
import json
@@ -42,24 +42,29 @@ def analyze_equations(
file_path: Optional[str] = None,
url_path: Optional[str] = None,
parsed_paper: Optional[ParseResponse] = None,
- ) -> Optional[EquationExtractionResponse]:
- response: Union[EquationExtractionResponse, EquationProcessingResponse]
-
+ ) -> Optional[EquationExtractionResponse]:
if file_path:
- with open(file_path, "rb") as file:
- response = self._ax_client.document.equation.from_pdf(document=file)
+ with open(file_path, "rb") as pdf_file:
+ response = self._ax_client.document.equation.from_pdf(document=pdf_file)
+
elif url_path:
if "arxiv" in url_path and "abs" in url_path:
url_path = url_path.replace("abs", "pdf")
-
- response = self._ax_client.document.equation.from_pdf(document=url_path)
+ url_file = requests.get(url_path)
+ from io import BytesIO
+ pdf_stream = BytesIO(url_file.content)
+ response = self._ax_client.document.equation.from_pdf(document=pdf_stream)
+
elif parsed_paper:
- response = self._ax_client.document.equation.process(**parsed_paper.model_dump())
+ response = EquationExtractionResponse.model_validate(
+ self._ax_client.document.equation.process(**parsed_paper.model_dump()).model_dump()
+ )
+
else:
print("Please provide either a file path or a URL to analyze.")
return None
-
- return EquationExtractionResponse(equations=response.equations)
+
+ return response
def validate_equations(
self,