RAGNARDoc (RAG Native Automatic Reingestion for Documents) is a tool that runs natively on a developer workstation and automatically ingests local documents into various Retrieval Augmented Generation indexes. It is designed as a companion app for workstation RAG applications which would benefit from maintaining an up-to-date view of documents hosted natively on a user's workstation.
pip install ragnardoc
# Initialize ragnardoc on your system
ragnardoc init
# Add a directory to be ingested
ragnardoc add ~/Documents
# Run an ingestion
ragnardoc run
# Start as a background service
ragnardoc start & disown
The configuration for RAGNARDoc is managed by a yaml file. The default location is $HOME/.ragnardoc/config.yaml
, but can be overloaded with the RAGNARDOC_HOME
environment variable. All default values can be found in config.yaml in the codebase.
To initialize your RAGNARDoc config, do the following:
mkdir -p ~/.ragnardoc
echo "scraping:
roots:
# Fill in with the list of directories to ingest
- ~/Desktop
- ~/Documents
" > ~/.ragnardoc/config.yaml
Once done, you can add entries to your config.yaml
to add supported ingestion plugins (see below).
RAGNARDoc operates with a plugin model for connecting to applications to ingest docs. Each plugin is responsible for connecting to a given app. RAGNARDoc's native ingestion capabilities are:
To configure a connection to AnythingLLM, follow these steps:
- Download and install the desktop app from their site: https://anythingllm.com/desktop
- In the app, go to settings (wrench icon in the bottom panel of the left-hand sidebar)
- Under
Admin -> General Settings
, toggle onEnable network discovery
and wait for the app to reload - Under
Tools
, selectDeveloper API
- Create a new API Key
- Add the plugin to your config (default location
$HOME/.ragnardoc/config.yaml
)
ingestion:
plugins:
- type: anything-llm
config:
apikey: <YOUR API KEY>
To configure a connection to Open WebUI, follow these steps:
- Follow the Getting Started guide to get Open WebUI running locally. TLDR:
pip install open_webui
# Run without login
WEBUI_AUTH=False open-webui serve
- Open the UI in a browser tab (http://localhost:8080 by default)
- Click on the user icon (top right) and select
Settings
- Click
Account
on the left panel of the settings view - Click
Show
(right side) forAPI keys
- Click
+ Create new secret key
underAPI Key
to create a new API Key - Click the copy icon to copy the api key
- Add the plugin to your config (default location
$HOME/.ragnardoc/config.yaml
)
ingestion:
plugins:
- type: open-webui
config:
apikey: <YOUR API KEY>
- Per-ingestor inclusion / exclusion
- Abstract scrapers to allow non-local scraping