This repo implements a chatbot that can interact with users and provide answers to their queries about their own data. It uses language models, text splitters, embeddings, vector stores, and conversational retrieval chains to enable the chatbot's functionality. The code also includes features for loading and managing documents, as well as logging chat history. Users can input queries, clear the chat history, load documents into the vector store, and delete stored documents. The code aims to create a conversational interface for retrieving custom information and interacting with the chatbot.
-
Download and install Docker Desktop
-
Git checkout this repo, then
cd /path/to/repo/readmenet
-
Generate an openAI API key and put it into a new
secrets.env
file inreadmenet/
containing:
OPENAI_API_KEY=someapikeyhere
-
mkdir data && mkdir data/docs
-
docker compose up
(note: usedocker compose build
to force rebuilds if you edit yourdockerfile
, etc) -
Browse to http://localhost:7860/
-
Place documents into
readmenet/data/docs
- they will show up under/app/data/docs
in the tools 'Load docs' tab -
Note: you can save/reuse/change-out chromadb databases without recalculating the vector embeddings by making
cp -r
copies of the relevant autogenerated chromadb directories inreadmenet/data/chroma
Caveat emptor: This is alpha/pilot code, with breaking changes expected along the way. Improvements, fixes, and enhancements by pull requests & issues welcome.