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 .