Free Documentation Assistant
DocIQ is a state-of-the-art open-source tool designed to simplify the search for information in project documentation. By harnessing the capabilities of advanced GPT models, developers can effortlessly query project details and receive precise answers.
Bid farewell to tedious manual searches with DocIQ. Discover information swiftly and effortlessly. Experience the revolution in project documentation. Contribute to its development and shape the future of AI-powered assistance.
-
Application - Flask app (main application).
-
Extensions - Chrome extension.
-
Scripts - Script that creates similarity search index for other libraries.
Note
Make sure you have Docker installed
On Mac OS or Linux, write:
./setup.sh
It will install all the dependencies and allow you to download the local model, use OpenAI or use our LLM API.
Otherwise, refer to this Guide:
-
Download and open this repository with
git clone https://github.com/nakshatra-nahar/DocIQ
-
Create a
.env
file in your root directory and set the env variables andVITE_API_STREAMING
to true or false, depending on whether you want streaming answers or not. It should look like this inside:LLM_NAME=[dociq or openai or others] VITE_API_STREAMING=true API_KEY=[if LLM_NAME is openai]
See optional environment variables in the /.env-template and /application/.env_sample files.
-
Navigate to http://localhost:5173/.
To stop, just run Ctrl + C
.
For development, only two containers are used from docker-compose.yaml (by deleting all services except for Redis and Mongo). See file docker-compose-dev.yaml.
Run
docker compose -f docker-compose-dev.yaml build
docker compose -f docker-compose-dev.yaml up -d
Note
Make sure you have Python 3.10 or 3.11 installed.
- Export required environment variables or prepare a
.env
file in the project folder:- Copy .env_sample and create
.env
.
- Copy .env_sample and create
(check out application/core/settings.py
if you want to see more config options.)
- (optional) Create a Python virtual environment: You can follow the Python official documentation for virtual environments.
a) On Mac OS and Linux
python -m venv venv
. venv/bin/activate
b) On Windows
python -m venv venv
venv/Scripts/activate
- Download embedding model and save it in the
model/
folder: You can use the script below, or download it manually from here, unzip it and save it in themodel/
folder.
wget https://d3dg1063dc54p9.cloudfront.net/models/embeddings/mpnet-base-v2.zip
unzip mpnet-base-v2.zip -d model
rm mpnet-base-v2.zip
- Install dependencies for the backend:
pip install -r application/requirements.txt
- Run the app using
flask --app application/app.py run --host=0.0.0.0 --port=7091
. - Start worker with
celery -A application.app.celery worker -l INFO
.
Note
Make sure you have Node version 16 or higher.
- Navigate to the /frontend folder.
- Install the required packages
husky
andvite
(ignore if already installed).
npm install husky -g
npm install vite -g
- Install dependencies by running
npm install --include=dev
. - Run the app using
npm run dev
.