reid41/QA-Pilot

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

326

stars

159

commits

Svelte

primary language

Sep 4, 2026

updated

deepseek
glm
huggingface
langchain
localai
nvidia
openai
svelte
tongyi
zhipuai

README

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(deepseek, llama3.1, phi3, llama3, gemma2)
    • openai(gpt-4o, gpt-4-turbo, gpt-4, and gpt-3.5-turbo)
    • mistralai(mistral-tiny, mistral-tiny, mistral-small-latest, mistral-medium-latest, mistral-large-latest, codestral-lates)
    • localai(gpt-4, more)
    • zhipuai(glm-4-0520, glm-4, glm-4-air, glm-4-airx, glm-4-flash)
    • anthropic(claude-3-opus-20240229, claude-3-sonnet-20240229, claude-3-haiku-20240307, claude-3-5-sonnet-20240620)
    • llamacpp
    • nvidia(meta/llama3-70b-instruct, more)
    • tongyi(qwen-turbo, qwen-plus, qwen-max, more)
    • moonshot(moonshot-v1-8k, moonshot-v1-32k, moonshot-v1-128k)
    • llmman(gemma4, qwen3.8, hf.co/unsloth/Qwen3.5-0.8B-GGUF, more)

Release

  • 2024-07-03 update langchain to 0.2.6 version and add moonshot API support

  • 2024-06-30 add Go Codegraph

  • 2024-06-27 add nvidia/tongyi API support

  • 2024-06-19 add llamacpp API support, improve the settings list in the sidebar and add upload model function for llamacpp, add prompt templates setting

  • 2024-06-15 add anthropic API support, refactor some functions, and fix chat show messages

  • 2024-06-12 add zhipuai API support

  • 2024-06-10 Convert flask to fastapi and add localai API support

  • 2024-06-07 Add rr: option and use FlashRank for the search

  • 2024-06-05 Upgrade langchain to v0.2 and add ollama embeddings

  • 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 providers

ollama pull <model_name>

ollama list
  • For setup llmman, a local model runner that serves the Ollama API on port 17434, set the llmman base_url in config/config.ini if it is not the default http://localhost:17434. e.g.
curl -fsSL https://raw.githubusercontent.com/llmmanorg/llmman/main/install.sh | sh

llmman serve

llmman pull gemma4
  • For setup localAI and LocalAI github to manage the local LLM, set the localAI base_url in config/config.ini. e.g.
docker run -p 8080:8080 --name local-ai -ti localai/localai:latest-aio-cpu
# Do you have a Nvidia GPUs? Use this instead
# CUDA 11
# docker run -p 8080:8080 --gpus all --name local-ai -ti localai/localai:latest-aio-gpu-nvidia-cuda-11
# CUDA 12
# docker run -p 8080:8080 --gpus all --name local-ai -ti localai/localai:latest-aio-gpu-nvidia-cuda-12

# quick check the service with http://<localAI host>:8080/
# quick check the models with http://<localAI host>:8080/models/
  • For setup llamacpp with llama-cpp-python

    • upload the model to llamacpp_models dir or upload from the llamacpp models under the Settings
    • set the model in llamacpp_llm_models section in config/config.ini
  • For setup API key in .env

    • OpenAI: OPENAI_API_KEY='<openai_api_key,>'
    • MistralAI: MISTRAL_API_KEY='<mistralai_api_key>'
    • ZhipuAI: ZHIPUAI_API_KEY='<zhipuai_api_key,>'
    • Anthropic: ANTHROPIC_API_KEY='<anthropic_api_key>'
    • Nvidia: NVIDIA_API_KEY='<nvidia_api_key>'
    • TongYi: DASHSCOPE_API_KEY='<tongyi_api_key>'
    • Moonshot: MOONSHOT_API_KEY='<moonshot_api_key>'
  • For Go codegraph, make sure setup GO env, compile go file and test

go build -o parser parser.go

# test
./parser /path/test.go
  1. 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
  • Use rsd: to start the input and get the source document
  • Use rr: to start the input and use the FlashrankRerank for the search
  • Click Open Code Graph in QA-Pilot to view the code(make sure the the already in the project session and loaded before click), curretly support python and go

Contributors

reid41

156 commits

ericcurtin

1 commits

kevdah

1 commits

noghte

1 commits

reid41/QA-Pilot

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

326

stars

159

commits

Svelte

primary language

Sep 4, 2026

updated

deepseek
glm
huggingface
langchain
localai
nvidia
openai
svelte
tongyi
zhipuai

README

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(deepseek, llama3.1, phi3, llama3, gemma2)
    • openai(gpt-4o, gpt-4-turbo, gpt-4, and gpt-3.5-turbo)
    • mistralai(mistral-tiny, mistral-tiny, mistral-small-latest, mistral-medium-latest, mistral-large-latest, codestral-lates)
    • localai(gpt-4, more)
    • zhipuai(glm-4-0520, glm-4, glm-4-air, glm-4-airx, glm-4-flash)
    • anthropic(claude-3-opus-20240229, claude-3-sonnet-20240229, claude-3-haiku-20240307, claude-3-5-sonnet-20240620)
    • llamacpp
    • nvidia(meta/llama3-70b-instruct, more)
    • tongyi(qwen-turbo, qwen-plus, qwen-max, more)
    • moonshot(moonshot-v1-8k, moonshot-v1-32k, moonshot-v1-128k)
    • llmman(gemma4, qwen3.8, hf.co/unsloth/Qwen3.5-0.8B-GGUF, more)

Release

  • 2024-07-03 update langchain to 0.2.6 version and add moonshot API support

  • 2024-06-30 add Go Codegraph

  • 2024-06-27 add nvidia/tongyi API support

  • 2024-06-19 add llamacpp API support, improve the settings list in the sidebar and add upload model function for llamacpp, add prompt templates setting

  • 2024-06-15 add anthropic API support, refactor some functions, and fix chat show messages

  • 2024-06-12 add zhipuai API support

  • 2024-06-10 Convert flask to fastapi and add localai API support

  • 2024-06-07 Add rr: option and use FlashRank for the search

  • 2024-06-05 Upgrade langchain to v0.2 and add ollama embeddings

  • 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 providers

ollama pull <model_name>

ollama list
  • For setup llmman, a local model runner that serves the Ollama API on port 17434, set the llmman base_url in config/config.ini if it is not the default http://localhost:17434. e.g.
curl -fsSL https://raw.githubusercontent.com/llmmanorg/llmman/main/install.sh | sh

llmman serve

llmman pull gemma4
  • For setup localAI and LocalAI github to manage the local LLM, set the localAI base_url in config/config.ini. e.g.
docker run -p 8080:8080 --name local-ai -ti localai/localai:latest-aio-cpu
# Do you have a Nvidia GPUs? Use this instead
# CUDA 11
# docker run -p 8080:8080 --gpus all --name local-ai -ti localai/localai:latest-aio-gpu-nvidia-cuda-11
# CUDA 12
# docker run -p 8080:8080 --gpus all --name local-ai -ti localai/localai:latest-aio-gpu-nvidia-cuda-12

# quick check the service with http://<localAI host>:8080/
# quick check the models with http://<localAI host>:8080/models/
  • For setup llamacpp with llama-cpp-python

    • upload the model to llamacpp_models dir or upload from the llamacpp models under the Settings
    • set the model in llamacpp_llm_models section in config/config.ini
  • For setup API key in .env

    • OpenAI: OPENAI_API_KEY='<openai_api_key,>'
    • MistralAI: MISTRAL_API_KEY='<mistralai_api_key>'
    • ZhipuAI: ZHIPUAI_API_KEY='<zhipuai_api_key,>'
    • Anthropic: ANTHROPIC_API_KEY='<anthropic_api_key>'
    • Nvidia: NVIDIA_API_KEY='<nvidia_api_key>'
    • TongYi: DASHSCOPE_API_KEY='<tongyi_api_key>'
    • Moonshot: MOONSHOT_API_KEY='<moonshot_api_key>'
  • For Go codegraph, make sure setup GO env, compile go file and test

go build -o parser parser.go

# test
./parser /path/test.go
  1. 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
  • Use rsd: to start the input and get the source document
  • Use rr: to start the input and use the FlashrankRerank for the search
  • Click Open Code Graph in QA-Pilot to view the code(make sure the the already in the project session and loaded before click), curretly support python and go

Contributors

reid41

156 commits

ericcurtin

1 commits

kevdah

1 commits

noghte

1 commits

Languages

Svelte

35.1%

Python

31.5%

HTML

25.7%

JavaScript

4.3%

Go

2.7%