SAAD_AI / README.md
saad-sust's picture
Upload README.md
3adeca5 verified
|
Raw
History Blame Contribute Delete
4.63 kB
---
title: Saad.AI
emoji: 🧠
colorFrom: blue
colorTo: indigo
sdk: streamlit
sdk_version: "1.40.0"
python_version: "3.10"
app_file: app.py
pinned: false
---
# Saad.AI — B.Sc. Mathematics Engine
Saad.AI is an academic mathematics assistant for university students. It combines a deterministic **SymPy computation engine** with configurable AI providers for explanations, proofs, theory questions, graph descriptions, and image/PDF-based problem solving.
> **Important:** SymPy verification applies only when a request matches one of the implemented deterministic adapters. General proofs, theory questions, unsupported matrix formats, and unsupported subjects are treated as AI-generated unless a deterministic adapter returns a verified result.
## Current capabilities
| Area | Examples | Verification mode |
|---|---|---|
| Calculus | Derivatives, integrals, limits | SymPy when parsed successfully |
| Equations | Polynomial equations and roots | SymPy when parsed successfully |
| Differential equations | Selected first- and second-order ODE forms | SymPy for supported forms |
| Numerical methods | Newton–Raphson, bisection, secant, Simpson, trapezoidal, Euler, RK4 | Deterministic numeric adapter |
| Number theory | GCD, LCM, factorization, totient, congruences, CRT, selected theorems, modulo | SymPy / deterministic adapter |
| Linear algebra | Determinants, eigenvalues/eigenvectors, inverses, ranks, transposes | Deterministic SymPy adapter |
| Real analysis | Selected sequence, series, Taylor, and integral computations | SymPy for supported computations; AI for theory/proofs |
| Differential geometry | Curvature, arc length, Frenet–Serret, fundamental forms | SymPy for supported parametric forms |
| Hydro mechanics | Continuity, Bernoulli, Reynolds, flow rate, pressure, Torricelli | Deterministic formula adapter for supported prompts |
| Graphing | Explicit requests to plot or graph a function | Matplotlib rendering |
| Attachments | JPG, PNG, WEBP, and PDF questions | Vision provider; deterministic verification when extractable |
The engine is intentionally not presented as a universal proof checker. For questions that cannot be deterministically parsed, the application sends the prompt to the configured AI provider and labels the result as AI-generated where appropriate.
## Portfolio architecture
The deployed Space uses a flat layout because the Hugging Face web uploader preserves uploaded filenames. The responsibilities remain separated into the same modules used by the GitHub portfolio branch:
```text
app.py # Streamlit UI, session flow, and graph rendering
config.py # Centralized provider and runtime configuration
sympy_engine.py # Deterministic symbolic and numeric adapters
ai.py # Provider rotation, vision, uploads, and verification
requirements.txt # Runtime dependencies
```
Chat history is intentionally **session-local** in the portfolio edition. This keeps the application easy to understand and deploy while still allowing users to create, switch, and delete conversations during a demo session. A database is not required.
## Example prompts
```text
Find the derivative of x^3 + 5x^2 - 3x + 7
Integrate sin(x) * e^x dx
Find limit of sin(x)/x as x -> 0
Apply Newton-Raphson to x^3 - 2x - 5 = 0, x0=2, 3 iterations
Apply bisection of x^3 - x on [0, 2], 4 iterations
Find gcd of 84 and 30
Solve 14x ≡ 30 (mod 44) using Euclidean algorithm
Plot y = x^2 - 4 from -3 to 3
```
## Configuration
AI providers are optional for deterministic SymPy requests but required for explanations and unsupported subjects. Configure provider credentials through Hugging Face Space secrets:
```text
GROQ_API_KEY_1
GROQ_API_KEY_2
GROQ_API_KEY_3
GEMINI_API_KEY_1
GEMINI_API_KEY_2
GEMINI_API_KEY_3
GEMINI_API_KEY_4
OPENROUTER_API_KEY
```
If providers are unavailable, supported deterministic requests still return their verified SymPy result instead of failing with “All providers failed.”
## Local development
```bash
git clone https://github.com/almuyed-saad/math-engine.git
cd math-engine
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
streamlit run app.py
```
The project source and full test suite are maintained in the [GitHub repository](https://github.com/almuyed-saad/math-engine/tree/refactor/stabilize-saadai).
## Credits
The project was created by Saad for B.Sc. Mathematics students at Shahjalal University of Science and Technology. It uses [Streamlit](https://streamlit.io), [SymPy](https://www.sympy.org), [Matplotlib](https://matplotlib.org), and hosted AI provider APIs.