Brzi početak
Preduvjeti
- uv za upravljanje Python okruženjem
- Docker + Docker Compose za puni stog
- (opcionalno, za lokalnu matematiku bez Dockera)
brew install libqalculate
Razvojni poslužitelj
Orkestrator se može pokrenuti samostalno; data API mora biti pokrenut zasebno ili kroz Docker:
uv run python run.py # http://localhost:5000
Samo data API:
cd data_api && uvicorn data_api.main:app --reload --port 8000
Note
Binarna datoteka qalc postoji samo u Docker slici. Pokrenite
qed-data kroz Docker (ili instalirajte libqalculate lokalno) prije
testiranja matematičkih alata izvan kontejnera.
Puni stog
docker compose up --build # Orkestrator: :8850, Data API: :8800
Testovi
Jedinični testovi rade samostalno u manje od sekunde — gramatike, bodovanje klasifikatora, razrješavanje entiteta, validatori, dispečer, keš, i18n i WL→qalc prevoditelj:
uv run python -m pytest tests/unit -q
Integracijski testovi gađaju cijeli cjevovod preko HTTP-a, pa stog mora biti pokrenut:
QED_BASE_URL=http://localhost:8850 uv run python -m pytest tests/ -v # docker
QED_BASE_URL=http://localhost:5000 uv run python -m pytest tests/ -v # dev
Integracijski testovi čekaju 2,1 s između zahtjeva kako bi ostali ispod ograničenja od 30 zahtjeva u minuti.
test_wolfram_fixtures.py uspoređuje odgovore s prikupljenim odgovorima
Wolfram Alphe i očekivano ima mnogo xfail rezultata. Test se promiče u
prolazni dodavanjem njegove oznake u KNOWN_PASSING.
Inicijalizacija podataka
Neki konektori dolaze s minimalnim početnim podacima dok se njihove baze ne inicijaliziraju:
uv run python scripts/bootstrap_food.py # baza namirnica
Podatkovne datoteke konektora (CIA Factbook, HJP rječnik, namirnice)
konfiguriraju se kroz HJP_DB_PATH, CIA_DB_PATH i FOOD_DB_PATH — vidi
Konfiguracija.
Lint i formatiranje
uv run ruff check .
uv run ruff format .