O REPOCHAT é um projeto de chatbot interativo projetado para participar de conversas sobre repositórios do GitHub usando um grande modelo de idioma (LLM). Ele permite que os usuários tenham discussões significativas, faça perguntas e recuperem informações relevantes de um repositório do GitHub. Este ReadMe fornece instruções passo a passo para configurar e usar o REPOCHAT em sua máquina local.
O REPOCHAT oferece 2 ramos com funcionalidades distintas:
O ramo principal do Repochat foi projetado para funcionar inteiramente em sua máquina local. Esta versão do Repochat não depende de chamadas de API externas e oferece maior controle sobre seus dados. Se você está procurando uma solução independente, o ramo main é o caminho a percorrer.
A filial em nuvem do repocat depende principalmente de chamadas de API para serviços externos para inferência e armazenamento do modelo. É adequado para quem prefere uma solução baseada em nuvem e não deseja configurar um ambiente local.
Para começar com o REPOCHAT, você precisará seguir estas etapas de instalação:
Crie um ambiente virtual e ative sua máquina local para isolar as dependências do projeto.
python -m venv repochat-env
source repochat-env/bin/activateClone o repositório do REPOCHAT e navegue até o diretório do projeto.
git clone https://github.com/pnkvalavala/repochat.git
cd repochat Instale os pacotes Python necessários usando pip .
pip install -r requirements.txtInstale a biblioteca "llama-cpp-python".
pip install llama-cpp-python llama.cpp suporta vários back -ends para processamento mais rápido.
Para instalar com o OpenBlas, defina as variáveis de ambiente LLAMA_BLAS and LLAMA_BLAS_VENDOR antes de instalar:
CMAKE_ARGS= " -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS " pip install llama-cpp-python Para instalar com o Cublas, defina a variável LLAMA_CUBLAS=1 Ambiente antes de instalar:
CMAKE_ARGS= " -DLLAMA_CUBLAS=on " pip install llama-cpp-python Para instalar com o clblast, defina a variável LLAMA_CLBLAST=1 ambiente antes de instalar:
CMAKE_ARGS= " -DLLAMA_CLBLAST=on " pip install llama-cpp-python Para instalar com o Metal (MPS), defina a LLAMA_METAL=on variável de ambiente antes de instalar:
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python Para instalar com o suporte HIPBLAS / ROCM para cartões AMD, defina a variável LLAMA_HIPBLAS=on variável de ambiente antes de instalar:
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-pythonPara saber mais sobre a aceleração de hardware, consulte o Readme Oficial da LLAMA-CPP-Python
Crie uma pasta nomeada models no diretório do projeto.
Faça o download de um modelo de idioma no hub de modelo de face hugging com base nos recursos do seu computador. Recomenda-se usar o seguinte modelo como ponto de partida: TheBloke/Codellama-7b-GGUF. Se você deseja quantizar um modelo disponível para abraçar o rosto, siga as instruções do llama.cpp
Copie o arquivo modelo baixado para a pasta "Modelos".
Abra o arquivo models.py localizado na pasta "repocat" e defina o local do arquivo de modelo na função code_llama() da seguinte forma:
def code_llama ():
callbackmanager = CallbackManager ([ StreamingStdOutCallbackHandler ()])
llm = LlamaCpp (
model_path = "./models/codellama-7b.Q4_K_M.gguf" ,
n_ctx = 2048 ,
max_tokens = 200 ,
n_gpu_layers = 1 ,
f16_kv = True ,
callback_manager = callbackmanager ,
verbose = True ,
use_mlock = True
)
return llm Abra seu terminal e execute o seguinte comando para iniciar o aplicativo REPOCHAT:
streamlit run app.pyAgora você pode inserir o link do repositório do GitHub.
O REPOCHAT buscará todos os arquivos do repositório e os armazenará em uma pasta chamada "CLONEN_REPO". Em seguida, dividirá os arquivos em pedaços menores e calculará suas incorporações usando o modelo de transformadores de sentenças, especificamente transformadores de sentença/all-mPNet-Base-V2.
As incorporações são armazenadas localmente em um banco de dados vetorial chamado Chromadb.
O REPOCHAT permite que você participe de conversas com o chatbot. Você pode fazer perguntas ou fornecer entrada, e o chatbot recuperará documentos relevantes do banco de dados vetorial. Em seguida, envia sua entrada, juntamente com os documentos recuperados, para o modelo de idioma para gerar respostas. Por padrão, eu defini o modelo como "Codellama-7B-Instruct", mas você pode alterá-lo com base na velocidade do seu computador e até experimentar o modelo quantizado 13B para respostas.
O chatbot mantém memória durante a conversa para fornecer respostas contextualmente relevantes.
Se você encontrar algum problema, ter sugestões ou deseja relatar um bug, visite a seção de problemas do Repositório do Repochat e crie um novo problema. Forneça informações detalhadas sobre o problema que você está enfrentando e farei o possível para ajudá -lo.
Este projeto está licenciado sob a licença Apache 2.0. Para detalhes, consulte o arquivo de licença. Observe que esta é uma alteração da licença anterior e é importante revisar os termos e condições da nova licença.