/DocsGPT

GPT-powered chat for documentation, chat with your documents

Primary LanguagePythonMIT LicenseMIT

DocsGPT Banner

Open-Source Documentation Assistant

GitHub Stars GitHub Forks License Discord Chat

Table of Contents

About DocsGPT

DocsGPT is a cutting-edge open-source solution that streamlines the process of finding information in project documentation. With its integration of the powerful GPT models, developers can easily ask questions about a project and receive accurate answers.

Say goodbye to time-consuming manual searches, and let DocsGPT help you quickly find the information you need. Try it out and see how it revolutionizes your project documentation experience. Contribute to its development and be a part of the future of AI-powered assistance.


video-example-of-docs-gpt

Features

Group 9


Installation

To install DocsGPT, follow the installation instructions based on your platform and environment.

Usage

Learn how to use DocsGPT in our usage guide.

API Documentation

For developers, explore the API documentation to integrate DocsGPT into your applications.

Contribution Guidelines

We welcome contributions! Read our contribution guidelines to get started.

Community and Support

  • Join our community on Discord.

  • Get personalized support for deploying DocsGPT in a live environment: Support.

  • Email us at contact@arc53.com for assistance or inquiries.

Roadmap

Check our roadmap for upcoming features and milestones. Contribute or create issues to help us improve DocsGPT!

Our Open-Source models optimized for DocsGPT:

Name Base Model Requirements (or similar)
Docsgpt-7b-falcon Falcon-7b 1xA10G gpu
Docsgpt-14b llama-2-14b 2xA10 gpu's
Docsgpt-40b-falcon falcon-40b 8xA10G gpu's

If you don't have enough resources to run it, you can use bitsnbytes to quantize.

Useful links

How to use any other documentation

How to host it locally (so all data will stay on-premises)

Project structure

  • Application - Flask app (main application).

  • Extensions - Chrome extension.

  • Scripts - Script that creates similarity search index and stores for other libraries.

  • Frontend - Frontend uses Vite and React.

QuickStart

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 or use OpenAI.

Otherwise, refer to this Guide:

  1. Download and open this repository with git clone https://github.com/arc53/DocsGPT.git

  2. Create a .env file in your root directory and set the env variable OPENAI_API_KEY with your OpenAI API key and VITE_API_STREAMING to true or false, depending on if you want streaming answers or not. It should look like this inside:

    API_KEY=Yourkey
    VITE_API_STREAMING=true

You can create this file manually using a text editor or use a command-line text editor like echo in Windows Command Prompt:

echo API_KEY=Yourkey > .env 
echo VITE_API_STREAMING=true >> .env

See optional environment variables in the /.env-template and/application/.env_sample files.

  1. Run the following command to set up the project and start the application:

    ./run-with-docker-compose.sh
  2. Open your web browser and navigate to http://localhost:5173/.

To stop the application, press Ctrl + C in your terminal or Command Prompt.

Development environments

Spin up mongo and redis

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 the following commands:

docker compose -f docker-compose-dev.yaml build
docker compose -f docker-compose-dev.yaml up -d

Run the Backend

Make sure you have Python 3.10 or 3.11 installed.

  1. Export required environment variables or prepare a .env file in the /application folder. You can create a .env file using Windows Command Prompt like this:

    echo API_KEY=Yourkey > .env
    echo EMBEDDINGS_KEY=YourEmbeddingsKey >> .env

Replace Yourkey and YourEmbeddingsKey with your actual API keys.

(check out application/core/settings.py if you want to see more config options.)

  1. (optional) Create a Python virtual environment:
python -m venv venv
. venv/bin/activate    # On linux
venv\Scripts\activate  # On Windows
  1. Change to the application/ subdir and install dependencies for the backend:
pip install -r application/requirements.txt
  1. Run the app using the following command:

    flask run --host=0.0.0.0 --port=7091
  2. Start the worker with the following command:

    celery -A application.app.celery worker -l INFO

Start frontend

Make sure you have Node version 16 or higher.

  1. Navigate to the /frontend folder.

  2. Install dependencies by running:

    npm install
  3. Run the app using:

    npm run dev

Acknowledgments

Built with 🦜️🔗 LangChain


Live Preview | Documentation | GitHub Repository