Repository navigation
Releases: FengZhenfei/carrel
Releases · FengZhenfei/carrel
Release list
Carrel 0.2.0
The search service gains read-only endpoints for listing what the knowledge base and its graph hold, the first search now carries graph leads, and the carrel-search skill answers from one search, lists the reference files and offers numbered follow-ups.
v0.1.1: Ops: ordered model start, nightly state backup, dependency lock files
Model servers. Started together, the vLLM processes profile the free GPU memory while the others are still loading or freeing theirs, fail the memory check and restart until Docker's backoff happens to separate them: on a unified-memory machine one to eight restarts per server and about a quarter of an hour until all were up, at every boot. The five local-models services now start in a queue: each entrypoint waits for the previous server's /health before it loads its model (embedding, reranker, vl-embedding, vl-reranker, vlm), with depends_on for `docker compose up` and the wait inside the container for Docker restoring the containers at boot. The parser is outside the profile, so it waits through MINERU_WAIT_FOR_URL, which deploy.sh sets together with the profile. The explicit entrypoint also runs each service's `vllm serve` command as written under the vllm/vllm-openai image, whose own entrypoint is `vllm serve`; the NVIDIA image's entrypoint is kept. The health-check grace period covers the whole queue. Measured on a DGX Spark with the same chain: the five servers healthy in order after 2.7, 4.6, 6.5, 8.6 and 12.2 minutes, the parser after 14.5, no restarts. Backup. The nightly round first copies what cannot be regenerated into backups/state/<stamp>/: an online snapshot of the state database (library configuration, model registry, extraction and fact caches), the pipeline env, deployment/*/.env and the evaluation sets; directory 700, files 600, newest KB_BACKUP_KEEP (7) kept. Vectors, indexes, graphs and the parse cache are rebuilt from the mirror and are left out. Needs no service, runs before the Qdrant wait, and a failure is not a maintenance failure. New `kb cleanup backup`. Dependencies. pyproject keeps ranges, with upper bounds for libraries that have had breaking major releases; app/requirements.lock is the installed closure of the declared dependencies plus pytest (54 packages) that the suite was run against, and deploy.sh installs from it. The optional pdf-images extra (PyMuPDF, AGPL) is pinned separately in requirements-pdf-images.lock and installed only with --with-pdf-images. scripts/kb-lock-deps.py regenerates the lock from a tested environment; a test checks that every declared dependency is pinned inside its range and that the extra stays out of the main lock. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Carrel 0.1.0
First public release, see the README