Konfiguracija i proširivanje

Varijable okruženja

Varijabla Zadano Opis
DATA_API_URL http://qed-data:8000 URL FastAPI data servisa (http://localhost:8000 za lokalni razvoj)
ANTHROPIC_API_KEY Kada je postavljen, LLM planer koristi Anthropic API
ANTHROPIC_MODEL claude-opus-5 Model za Anthropic putanju planera
LLM_API_URL http://host.docker.internal:1234 Krajnja točka kompatibilna s OpenAI-jem (pričuvna putanja)
LLM_MODEL qwen3.5-27b Ime modela za OpenAI-kompatibilnu putanju
REDIS_URL redis://localhost:6379/0 Pričuvno ograničeni LRU u memoriji ako nije dostupan
FLASK_DEBUG 0 Postavite na 1 za razvojni način s automatskim ponovnim učitavanjem
SQLITE_PATH instance/qed.db Aliasi razrješavača entiteta + stanje aplikacije
HJP_DB_PATH /data/hjp.db Podaci konektora hrvatskog rječnika
CIA_DB_PATH /data/cia.db Podaci konektora CIA World Factbook
FOOD_DB_PATH /data/food.db Podaci konektora namirnica
QED_BASE_URL http://localhost:8850 Koristi ga skup integracijskih testova

Bez ANTHROPIC_API_KEY ili dostupnog LLM_API_URL, stupanj 2/3 uredno degradira: koristi parametre izvučene gramatikom kada su dostupni, inače vraća error pod.

Podaci konektora

Razrješavač entiteta zahtijeva inicijaliziranu bazu — instance/qed.db s tablicom entity_aliases (puni je app/data/seed_aliases.py, učitava se jednom pri pokretanju). Baze konektora pune skripte scripts/bootstrap_*.py u direktorij ./data/.

Proširivanje QED-a

Nova gramatika

Dodajte Grammar(...) u ENGLISH_KEYWORD_GRAMMARS (prevodive ključne riječi) ili NEUTRAL_GRAMMARS (vođene sintaksom) u app/nlp/stage1/grammars.py — specifični uzorci idu prvi. Dodajte jedinični test u tests/unit/test_grammars.py. Za i18n pokrivenost dodajte uzorke po jeziku u app/i18n/grammar_triggers.py.

Novi alat

  1. Stvorite app/tools/my_tool.py (koristite _client.call_data_api za HTTP pozadinske sustave).
  2. Registrirajte ga u app/tools/registry.py.
  3. Dodajte ga u LLM sistemski prompt u app/nlp/stage2/planner.py.
  4. Dodajte unos JSON sheme u app/schemas/validators.py.
  5. Dodajte logiku podova u app/assembler/pod_builder.py.

Ako alat treba računski pozadinski sustav, dodajte router u data_api/routers/ i uključite ga u data_api/main.py.

Novi izvor podataka

Jedna DataConnector podklasa u data_api/connectors/ plus jedna linija registry.register(...) u njegovom __init__.py.

Česte zamke

  • Gramatike visoke pouzdanosti potpuno zaobilaze NER/entity bodovanje — ako gramatika ≥ 0.95 krivo usmjerava, provjerite classifier.py:score().
  • Razrješavač entiteta treba inicijaliziranu bazu — ako se entiteti ne razrješavaju, provjerite da instance/qed.db ima tablicu entity_aliases.
  • qalc postoji samo u Docker slici — pokrenite qed-data kroz Docker ili instalirajte libqalculate lokalno.