QA-Pilot 是一个交互式聊天项目,利用在线/本地大语言模型(LLM)快速理解和导航 GitHub 代码仓库。
功能
- 通过
git clone
方式与 GitHub 公共仓库聊天 - 存储聊天记录
- 配置设置简单
- 多聊天会话
- 通过搜索功能快速定位会话
- 集成
codegraph
查看 Python 文件 - 支持不同的大语言模型(LLM)
- ollama(llama3.1,phi3,llama3,gemma2)
- openai(gpt-4o,gpt-4-turbo,gpt-4,gpt-3.5-turbo)
- mistralai(mistral-tiny,mistral-tiny,mistral-small-latest,mistral-medium-latest,mistral-large-latest,codestral-lates)
- localai(gpt-4,更多)
- 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,更多)
- tongyi(qwen-turbo,qwen-plus,qwen-max,更多)
- moonshot(moonshot-v1-8k,moonshot-v1-32k,moonshot-v1-128k)
发布
-
2024-07-03 更新 langchain 到
0.2.6
版本,并添加moonshot
API 支持 -
2024-06-30 添加
Go Codegraph
-
2024-06-27 添加
nvidia/tongyi
API 支持 -
2024-06-19 添加
llamacpp
API 支持,改进侧边栏中的settings
列表,并添加llamacpp
模型上传功能,增加prompt templates
设置 -
2024-06-15 添加
anthropic
API 支持,重构部分功能,并修复聊天显示消息的问题 -
2024-06-12 添加
zhipuai
API 支持 -
2024-06-10 将
flask
转换为fastapi
并添加localai
API 支持 -
2024-06-07 添加
rr:
选项,并使用FlashRank
进行搜索 -
2024-06-05 升级
langchain
到v0.2
并添加ollama embeddings
-
2024-05-26 发布 v2.0.1:重构以替换
Streamlit
前端为Svelte
以提高性能
声明
- 这是一个测试项目,旨在验证使用大语言模型和向量嵌入进行完全本地化问题回答的可行性。它尚未达到生产就绪状态,不应在生产环境中使用。
不要使用模型分析您的关键或生产数据!
不要使用模型分析客户数据,以确保数据隐私和安全!
不要使用模型分析您的私人/敏感代码库!
QA-Pilot
CodeGraph
要部署 QA-Pilot,可以按照以下步骤操作:
- 克隆 QA-Pilot 仓库:
git clone https://github.com/reid41/QA-Pilot.git
cd QA-Pilot
- 安装 conda 进行虚拟环境管理。创建并激活新的虚拟环境。
conda create -n QA-Pilot python=3.10.14
conda activate QA-Pilot
- 安装所需的依赖项:
pip install -r requirements.txt
-
安装带 cuda 的 pytorch pytorch
-
设置提供者
- 设置 ollama 网站 和 ollama github 管理本地 LLM。 例如:
ollama pull <model_name>
ollama list
- 设置 localAI 和 LocalAI github 管理本地 LLM,在 config/config.ini 中设置 localAI
base_url
。 例如:
docker run -p 8080:8080 --name local-ai -ti localai/localai:latest-aio-cpu
# 你有 Nvidia GPUs 吗?用下面的命令
# 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
# 快速检查服务:http://<localAI host>:8080/
# 快速检查模型:http://<localAI host>:8080/models/
-
为 llamacpp 设置 LLM 上传模型至
llamacpp_models
目录,或从Settings
下上传llamacpp models
,在config/config.ini
的llamacpp_llm_models
部分设置模型 -
设置
.env
中的 API 密钥- 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>'
-
为
Go codegraph
设置,确保设置 GO 环境,编译 go 文件并测试
go build -o parser parser.go
# 测试
./parser /path/test.go
- 设置相关参数在
config/config.ini
,例如model provider
,model
,变量
,Ollama API url
,并设置 Postgresql 环境
# 创建数据库,例如:
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;
# 设置连接
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
# 设置脚本中的参数并测试连接
python check_postgresql_connection.py
- 下载并安装 node.js 并在一个终端中设置前端环境
# 确保后端服务器主机 IP 地址正确,默认是 localhost
cat svelte-app/src/config.js
export const API_BASE_URL = 'http://localhost:5000';
# 安装依赖项
cd svelte-app
npm install
npm run dev
- 在另一个终端中运行后端 QA-Pilot:
python qa_pilot_run.py
提示
- 不要同时使用 url 和上传。
- 删除按钮无法真正删除本地 chromadb,停止后需要手动删除。
- 切换到
New Source Button
以添加新项目 - 使用
rsd:
开始输入并获取源文档 - 使用
rr:
开始输入并使用FlashrankRerank
进行搜索 - 点击
Open Code Graph
在QA-Pilot
中查看代码(确保已经在项目会话中并提前加载),当前支持python
和go