AskKara is a local research assistant: a React UI on a FastAPI service backed by the YADA scraper. It searches for sources, scrapes pages locally, and streams an answer with references.
- Accepts natural-language questions and direct URLs.
- Uses source discovery (DuckDuckGo via
ddgs) when the question needs fresh or external information. - Scrapes selected pages through YADA's HTTP layers only (
allow_browser=False): fast and lightweight, no Playwright launch per source. YADA's browser layers remain available for the standalone YADA API. - Streams the final answer into the interface with source references.
- Optional accounts (JWT). Guests can ask by default; set
KARA_AUTH_REQUIRED=1to require sign-in.
Backend:
pip install -r requirements.txt
pip install -e ../YADA-Scraper-API
copy .env.example .envSet NIM_API_KEY in .env (get a key at build.nvidia.com). Every setting is documented in .env.example.
Frontend:
cd frontend
npm installBackend (port 4177):
python backend.pyFrontend (port 5173, proxies /api to the backend):
cd frontend
npm run devThen open:
http://localhost:5173
http://127.0.0.1:4177/api/health
python -m pytest tests -q
cd frontend
npm run lint
npm run test
npm run buildKara imports YADA directly, so the standalone YADA server is not required for the main demo. To show YADA separately (full ladder, including browser layers):
cd path\to\YADA-Scraper-API
python yada_scraper.pyYADA runs at:
http://127.0.0.1:8000