CliniqAl / SETUP.md
someonesphantom's picture
added foundaiton
ac6eeec
|
Raw
History Blame Contribute Delete
1.93 kB
# SETUP — Day 0 foundation is live
The shared rails Person C is supposed to ship on Day 0 are in place. A, B, and
C can each run their own track without blocking on one another.
## First-time setup
```bash
# 1) Install deps (requires uv: `curl -LsSf https://astral.sh/uv/install.sh | sh`)
make install
# 2) Copy env template, fill in keys you have
cp .env.example .env.local
# at minimum set GROQ_API_KEY or OPENROUTER_API_KEY for real LLM calls
# (the mocks below run without any keys)
# 3) Bring up Postgres + Redis + Langfuse
make up
# 4) Apply DB schema
make migrate
# 5) Smoke-test the orchestrator end-to-end (uses mocks if no keys present)
python -m app.orchestrator "please write today's SOAP note"
# 6) Run the API + UI
make api # in one terminal — FastAPI on :8000
make ui # in another terminal — Gradio on :7860
```
## Verify the foundation
```bash
make test # contract + routing smoke tests
make lint # ruff
curl localhost:8000/health
curl -X POST localhost:8000/orchestrate -d '{"utterance":"book me an appointment"}' -H 'content-type: application/json'
```
## Where each person starts
| You are… | Open this | First file you touch |
|---|---|---|
| **Person A** | `plans/PLAN_PERSON_A.md` | `app/agents/documentation/api.py` + `wiki/conditions/hypertension.md` |
| **Person B** | `plans/PLAN_PERSON_B.md` | `app/agents/appointment/api.py` + `app/integrations/whatsapp.py` |
| **Person C** | `plans/PLAN_PERSON_C.md` | `app/agents/roster/api.py` + `app/db/migrations/versions/` |
Every public agent function currently raises `NotImplementedError` with the
owner and target day. Every router endpoint returns the mock so the UI can be
driven end-to-end while the real agents are being built.
When you replace a `NotImplementedError`, also delete that agent's
`mocks.py` import from `app/orchestrator.py` and `app/api/routers/*.py`
or leave the mocks as a fallback path, your call.