WisdomHub, technical docs
Install (fresh VPS)
- Copy the release zip to
/var/www/wisdomhuband unzip. - Put your source PDF at
data/book.pdf. - Edit
config.local.php: setoneminai_api_key. Theadmin_tokenis auto-generated. ./run.sh ingest, wait for it to finish (single-digit minutes without pre-warm, up to 20 with).systemctl enable --now wisdomhub.- Include
nginx.wisdomhub.confin your existing sevinhub server block,nginx -t && systemctl reload nginx. - Open
https://wisdom.sevinhub.com/.
Ingest flags
./run.sh ingest --skip-vision, skip image captioning (faster, no vision cost)../run.sh ingest --skip-prewarm, skip the cache warming pass../run.sh ingest --chat-model gpt-4o-mini, cheaper model for pre-warm.
Endpoints (behind /wisdomhub/api/proxy.php)
?path=askPOST{question}, returns{answer, cited_pages, source, cached}. Source isexact,fuzzy, orlive.?path=ttsPOST{text, voice?}, streams cached MP3.?path=healthGET, returns chunk + cache counts.
Admin stats
curl -H "X-Admin-Token: $TOKEN" http://127.0.0.1:8088/stats shows chunk count, cache hits, and 1min credits spent. Get $TOKEN from config.local.php.
Rate limits
Defaults: 20 questions per IP per hour, 100 per day. Change rate_limit_hour and rate_limit_day in config.local.php.
Update
Drop the new release zip on top of the old install (keeping your config.local.php and data/ directory). Run ./run.sh ingest only if the PDF or embeddings changed.
Reset the cache
./run.sh ingest wipes chunks, chunks_vec, qa_cache, and qa_vec before rebuilding. Rate-limit history and usage log survive.