Chat with your documents offline using AI. No data leaves your system. Internet connection is only required to install the tool and download the AI models. It is based on PrivateGPT but has more features.
- Supports GGML models via C Transformers
- Supports 🤗 Transformers models
- Supports GPTQ models
- Web UI
- GPU support
- Highly configurable via
chatdocs.yml
Show supported document types
| Extension | Format |
|---|---|
.csv |
CSV |
.docx, .doc |
Word Document |
.enex |
EverNote |
.eml |
|
.epub |
EPub |
.html |
HTML |
.md |
Markdown |
.msg |
Outlook Message |
.odt |
Open Document Text |
.pdf |
Portable Document Format (PDF) |
.pptx, .ppt |
PowerPoint Document |
.txt |
Text file (UTF-8) |
Install the tool using:
pip install chatdocsDownload the AI models using:
chatdocs downloadNow it can be run offline without internet connection.
Add a directory containing documents to chat with using:
chatdocs add /path/to/documentsThe processed documents will be stored in
dbdirectory by default.
Chat with your documents using:
chatdocs uiOpen http://localhost:5000 in your browser to access the web UI.
It also has a nice command-line interface:
chatdocs chatAll the configuration options can be changed using the chatdocs.yml config file. Create a chatdocs.yml file in some directory and run all commands from that directory. For reference, see the default chatdocs.yml file.
You don't have to copy the entire file, just add the config options you want to change as it will be merged with the default config. For example, see tests/fixtures/chatdocs.yml which changes only some of the config options.
To change the embeddings model, add and change the following in your chatdocs.yml:
embeddings:
model: hkunlp/instructor-largeNote: When you change the embeddings model, delete the
dbdirectory and add documents again.
To change the C Transformers GGML model, add and change the following in your chatdocs.yml:
ctransformers:
model: TheBloke/Wizard-Vicuna-7B-Uncensored-GGML
model_file: Wizard-Vicuna-7B-Uncensored.ggmlv3.q4_0.bin
model_type: llamaNote: When you add a new model for the first time, run
chatdocs downloadto download the model before using it.
You can also use an existing local model file:
ctransformers:
model: /path/to/ggml-model.bin
model_type: llamaTo use 🤗 Transformers models, add the following to your chatdocs.yml:
llm: huggingfaceTo change the 🤗 Transformers model, add and change the following in your chatdocs.yml:
huggingface:
model: TheBloke/Wizard-Vicuna-7B-Uncensored-HFNote: When you add a new model for the first time, run
chatdocs downloadto download the model before using it.
To use GPTQ models, install the auto-gptq package using:
pip install chatdocs[gptq]and add the following to your chatdocs.yml:
llm: gptqTo change the GPTQ model, add and change the following in your chatdocs.yml:
gptq:
model: TheBloke/Wizard-Vicuna-7B-Uncensored-GPTQ
model_file: Wizard-Vicuna-7B-Uncensored-GPTQ-4bit-128g.no-act-order.safetensorsNote: When you add a new model for the first time, run
chatdocs downloadto download the model before using it.
To enable GPU (CUDA) support for the embeddings model, add the following to your chatdocs.yml:
embeddings:
model_kwargs:
device: cudaYou may have to reinstall PyTorch with CUDA enabled by following the instructions here.
Note: Currently only LLaMA GGML models have GPU support.
To enable GPU (CUDA) support for the C Transformers GGML model, add the following to your chatdocs.yml:
ctransformers:
config:
gpu_layers: 50You should also reinstall the ctransformers package with CUDA enabled:
pip uninstall ctransformers --yes
CT_CUBLAS=1 pip install ctransformers --no-binary ctransformersShow commands for Windows
On Windows PowerShell run:
$env:CT_CUBLAS=1
pip uninstall ctransformers --yes
pip install ctransformers --no-binary ctransformersOn Windows Command Prompt run:
set CT_CUBLAS=1
pip uninstall ctransformers --yes
pip install ctransformers --no-binary ctransformersTo enable GPU (CUDA) support for the 🤗 Transformers model, add the following to your chatdocs.yml:
huggingface:
device: 0You may have to reinstall PyTorch with CUDA enabled by following the instructions here.
To enable GPU (CUDA) support for the GPTQ model, add the following to your chatdocs.yml:
gptq:
device: 0You may have to reinstall PyTorch with CUDA enabled by following the instructions here.
After installing PyTorch with CUDA enabled, you should also reinstall the auto-gptq package:
pip uninstall auto-gptq --yes
pip install chatdocs[gptq]