To explore a synthetic health record before installing, open the
Mirobody Web demo.
A · Use the library
Install uv, then run:
血红蛋白 and ヘモグロビン both resolve to LOINC 718-7. The broad category
血脂 is left unresolved to avoid assigning a code for the wrong test.
For Python 3.12+ projects, install the library:
pip install 'mirobody[parse]'
and configure a model API key. For an MCP client, run
uvx --python 3.12 mirobody mcp: vocabulary tools work offline over stdio;
the document tool standardize_report requires [parse] and a model key.
See standardization.md for symptom and diagnosis coding,
unit conversion and FHIR output, or try the scripts in
examples/.
B · Start the full app
The app includes the web client, server, background worker and Postgres with pgvector. Choose a cloud or local setup.Try it in Codespaces
18060 is forwarded privately by default.
The app and records are stored in GitHub’s cloud; documents and questions sent
for model processing go to your model provider. Use the supplied synthetic
data for this trial. Codespaces billing
and model charges apply. Stop the codespace when finished; reopening it starts
the app again.
Run it 100% locally
With Git, OpenSSL and Docker Compose installed:.env, selects the local models and prints
the app link. The prebuilt image includes the LOINC bundle, so Git LFS is not
needed for Docker deployment.
To use a cloud model, run ./deploy.sh without a local profile. Open the
setup link at http://localhost:18060 and enter a model API key. Records stay
on your host; documents and questions sent for model processing go to that
provider.
Sign in and try an upload
On the Email code tab, sign in asyou@mirobody.ai with code 111111.
No mail service is needed. Ask “How has my cholesterol changed?”, then upload
a synthetic file from demo/upload/ on the Data page. Those files
are not included in the seeded records, so uploading one tests document processing.
Before the first start of a deployment for real data, set
SEED_DEMO_DATA=false. Otherwise the app creates the two public demo accounts.
You can also put a model key in .env: OPENROUTER_API_KEY, OPENAI_API_KEY,
GOOGLE_API_KEY or ANTHROPIC_API_KEY. Use <PROVIDER>_BASE_URL for an
OpenAI-compatible gateway. config.llm.yaml lists the
variable each entry reads; store secrets in the environment, not that file.
After changing .env, run docker compose up -d; restart does not reload it.
Check the selected models and send a test request to each:
C · Develop from source
version. Run dev from the repository root to serve
the web client in frontend/ alongside the API. The Python package alone does
not include the web client.
dev generates temporary secrets. To preserve sessions and encrypted
configuration across restarts, set JWT_KEY and CONFIG_ENCRYPTION_KEY.
For deployment, serve reads the shipped configuration and
config.{ENV}.yaml and expects persistent secrets.
On Debian or Ubuntu, scripts/install_native.sh installs PostgreSQL, pgvector
and a Python environment without Docker; scripts/start_native.sh starts the
worker and server on port 18060.