Skip to content

QA-Pilot is an interactive chat project that leverages online/local LLM for rapid understanding and navigation of GitHub code repository.

License

Notifications You must be signed in to change notification settings

reid41/QA-Pilot

Repository files navigation

qa-pilot

QA-Pilot is an interactive chat project that leverages online/local LLM for rapid understanding and navigation of GitHub code repository.

Features

  • Chat with github public repository with git clone way
  • Store the chat history
  • Easy to set the configuration
  • Multiple chat sessions
  • Locate the session quicly with search function
  • Integrate with codegraph to view the python file
  • Support the different LLM models
    • ollama
    • openai
    • mistralai

Release

  • 2024-05-26 Release v2.0.1: Refactoring to replace Streamlit fontend with Svelte to improve the performance.

Disclaimer

  • This is a test project to validate the feasibility of a fully local solution for question answering using LLMs and Vector embeddings. It is not production ready, and it is not meant to be used in production.
  • Do not use models for analyzing your critical or production data!!
  • Do not use models for analyzing customer data to ensure data privacy and security!!
  • Do not use models for analyzing you private/sensitivity code respository!!

QA-Pilot

qa-demo-new

CodeGraph

code-graph-new

To deploy QA-Pilot, you can follow the below steps:

  1. Clone the QA-Pilot repository:
git clone https://github.com/reid41/QA-Pilot.git
cd QA-Pilot
  1. Install conda for virtual environment management. Create and activate a new virtual environment.
conda create -n QA-Pilot python=3.10.14
conda activate QA-Pilot
  1. Install the required dependencies:
pip install -r requirements.txt
  1. Install the pytorch with cuda pytorch

  2. Setup ollama website and ollama github to manage the local LLM model. e.g.

ollama pull <model_name>

ollama list
  1. Setup OpenAI or MistralAI, add the key in .env

  2. Set the related parameters in config/config.ini, e.g. model provider, model, variable, Ollama API url and setup the Postgresql env

# create the db, e.g.
CREATE DATABASE qa_pilot_chatsession_db;
CREATE USER qa_pilot_user WITH ENCRYPTED PASSWORD 'qa_pilot_p';
GRANT ALL PRIVILEGES ON DATABASE qa_pilot_chatsession_db TO qa_pilot_user;

# set the connection
cat config/config.ini
[database]
db_name = qa_pilot_chatsession_db
db_user = qa_pilot_user
db_password = qa_pilot_p
db_host = localhost
db_port = 5432


# set the arg in script and test connection
python check_postgresql_connection.py
  1. Download and install node.js and Set up the fontend env in one terminal
# make sure the backend server host ip is correct, localhost is by default
cat svelte-app/src/config.js
export const API_BASE_URL = 'http://localhost:5000';

# install deps
cd svelte-app
npm install

npm run dev
  1. Run the backend QA-Pilot in another terminal:
python qa_pilot_run.py

Tips

  • Do not use url and upload at the same time.
  • The remove button cannot really remove the local chromadb, need to remove it manually when stop it.
  • Switch to New Source Button to add a new project
  • Click Open Code Graph in QA-Pilot to view the code(make sure the the already in the project session and loaded before click)

About

QA-Pilot is an interactive chat project that leverages online/local LLM for rapid understanding and navigation of GitHub code repository.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published