Biomedical education
PhysioLab
Enter a biomedical word problem. PhysioLab interprets it with an LLM, computes the answer with Wolfram|Alpha, and returns a concise educational explanation.
How this works
PhysioLab keeps language understanding and numerical computation separate. An LLM interprets the problem; Wolfram|Alpha computes; another LLM explains only what Wolfram returned. API keys stay on the server.
Browser
You submit a biomedical word problem to POST /api/solve.
Next.js server
Validates input, rate-limits, and orchestrates the solve pipeline.
LLM interpret
OpenAI turns the word problem into a structured query, variables, and assumptions.
Wolfram|Alpha
The Full Results API computes the answer. Wolfram is authoritative; failures stop the flow.
LLM explain
A second LLM call writes a short educational explanation grounded in the Wolfram result.
Cached response
Successful results are stored on disk and returned to the browser with optional plot labels.
Request flow
Browser
│ POST /api/solve { problem }
▼
Next.js API route
│ validate · rate-limit · disk cache lookup
▼
┌──────────────┐ ┌─────────────────────┐
│ OpenAI LLM │────▶│ Structured query │
│ interpret │ │ + variables/axes │
└──────────────┘ └──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Wolfram|Alpha API │
│ compute + plot pods │
└──────────┬──────────┘
│ authoritative result
▼
┌──────────────┐ ┌─────────────────────┐
│ OpenAI LLM │────▶│ Short explanation │
│ explain │ │ (no invented math) │
└──────────────┘ └──────────┬──────────┘
│
▼
Browser result panel
(+ disk cache write)