2025-02-24
rag clone
, rag push
Finally, ragit supports push
operation. It is still a minimum viable product, but works!
In 0.2.1, clone
naively fetches all the chunks and images, one per http request. It was very inefficient. Now it uses archive files, which is significantly more efficient.
rag archive-create
, rag archive-extract
0.3.0 supports creating/extracting archive files. You can easily create an archive of your knowledge-base using rag archive-create
. You can share knowledge-bases even more easily with archive files. Clone/Push operations now also use archive files.
rag add
Fixed some quirks. Previously, you could add files in .ragit/
and .git/
.
rag build
Now rag build
uses multi-process to call LLMs and build chunks. It makes LLM calls and incremental ii-build much more efficient.
rag retrieve-chunks
Added a new command, which only retrieves chunks and does not ask a question. It's like rag tfidf
, but a bit different.
rag tfidf | rag retrieve-chunks | |
---|---|---|
default input | Keywords, but there's --query flag | Query |
extract keywords | No | Yes |
rerank | No | Yes |
Also, when ragit implements vector searches (someday), rag retrieve-chunks
may use vector searches, but rag tfidf
will still use tfidf.
Previously, all the models are hard-coded, and there's no way to add/remove your own models. Now, ragit uses models.json
to manage models. If you're using an OpenAI-compatible model, Anthropic model or Cohere model, you can easily add your model to models.json
.
CLI commands for adding/removing models are coming soon!
Finally, ragit supports short flags and --
flag. Instead of rag rm --recursive
, you can use rag rm -r
. At ragit 0.2.1, there's no way to add a file whose name starts with "-"
. Now you can use rag add -- --file-name
to do so.
0.3.0 implements WriteMode::Atomic
, which tries its best to write a file atomically. It first creates a tmp file then rename the tmp file. In most file systems, a rename operation is atomic.
It reduces the error rate of tests/many_chunks.py
and tests/many_jobs.py
significantly.
Fixed a few bugs in the ignore-parser.
Implemented 5 new endpoints
/{user-name}/{repo-name}/archive-list
/{user-name}/{repo-name}/archive/{archive-key}
/{user-name}/{repo-name}/begin-push
/{user-name}/{repo-name}/archive
/{user-name}/{repo-name}/finalize-push
These are for the new push/clone operations.
7 tests are added: add_and_rm2, ignore, archive, many_jobs, symlink, extract_keywords and migrate2.