-
Notifications
You must be signed in to change notification settings - Fork 0
Document Library
The library is Draggy's answer to "what does my lease say about pets". You point it at a folder, it indexes the contents locally, and from then on questions that look like they are about your own material get searched there before the web.
Nothing is uploaded. Indexing runs against your local Ollama, and the index lives in the same SQLite database as your chats.
Settings → Library → Add folder. Pick a directory and Draggy walks it,
extracts text from what it recognises, splits it into passages, and computes an
embedding for each one. Progress is shown per file.
It reads PDFs, Word, PowerPoint and Excel, Markdown, source code and plain text. A PDF is indexed page by page, so a passage it returns can tell you which page it came from.
Large folders take a while, since this is a model running over every paragraph you own. It is a one-time cost per folder, and you can keep using Draggy while it runs.
You can add several folders. Each is listed with how many files and passages it contributed, and each can be removed on its own without rebuilding the rest.
Picked from your VRAM, the same way the talk model is, see Choosing a Model. Bigger cards get a model that embeds noticeably better, and the ladder can climb further per gigabyte than the chat or talk model does, because a passage is one forward pass through the encoder rather than one pass per generated word.
| VRAM | Model |
|---|---|
| under 2 GB | All-MiniLM |
| 2 GB | Nomic Embed Text |
| 4 GB | MxBai Embed Large |
| 8 GB | Qwen 3 Embedding 0.6B |
| 16 GB | Qwen 3 Embedding 4B |
| 24 GB and up | Qwen 3 Embedding 8B |
The picker, in Settings → Personalization, works like the talk model's:
Automatic at the top, then every embedding model you have installed. Pick
one and it is remembered; delete it and Draggy quietly goes back to automatic
rather than downloading it again behind your back.
If you do change it, by hand or because automatic sized a different model to
new hardware, the existing index becomes meaningless: embeddings from one
model cannot be compared with embeddings from another. Re-index after
switching, from Settings → Library.
When a question looks like it could be about your own files, the assistant
calls search_library before search_web. It answers from the passages that
come back and names the file each fact came from, so you can go and check.
Two searches run at once and are fused into one ranking. One compares meaning, using the embeddings, and finds a passage that says the same thing in different words. The other matches words, and finds the part number, the surname, the error code and the version string that a meaning-based search reliably misses. Neither is trusted on its own.
If you have several folders indexed you can name one ("search my work notes for the renewal date") and only that folder is searched. Name one that is not indexed and Draggy tells you which ones are, rather than quietly searching everything.
If the library has nothing relevant it says so rather than inventing something, and offers to search the web instead.
You can also force it: ask "what do my notes say about X" and the intent is usually clear enough.
Structure helps. Documents with headings chunk into meaningful passages. A long PDF with no headings chunks into page-sized soup, which retrieves worse than the same text with sections.
Index less, not more. A folder of what you actually care about beats your entire home directory. Precision drops as the index grows, because there are simply more near-matches competing.
Check the file names in the answer. If it cites the wrong document repeatedly, the passages it is finding are probably too short to be distinctive.
Settings → Library lists what is indexed, removes a single source, or clears
everything. Clearing the index does not touch your actual files. Draggy only ever reads
them.