Um aplicativo de bate -papo simples com o banco de dados de incorporação e vetor, exclusivamente para execução local no Mac/Apple Silicon.
Este repositório é uma destilação e riff baseados em privateGPT e localGPT, que eu criei para executar exclusivamente localmente no Apple Silicon e, mais específico, meu MacBook Pro (M1). Minha motivação foi criar um bate -papo LLM mínimo viável, executando completamente o local no meu dispositivo, para fins de aprendizado.

conda create -n simpleChat python=3.11
conda activate simpleChatgit clone https://github.com/ziligy/simpleChat_llama2_mac_silicon simpleChat
cd simpleChatLangchain
conda install -c conda-forge langchain==0.0.239Atualizar llama-cpp-python para metal
CMAKE_ARGS= " -DLLAMA_METAL=on " FORCE_CMAKE=1 pip install --upgrade --force-reinstall llama-cpp-python==0.1.77 --no-cache-dirrequisitos.txt
pip install -r requirements.txtFaça o download deste modelo ou outro modelo GGML (preferido) de 4 bits (requeridos)
llama-2-13b-chat.ggmlv3.q4_1.bin
Defina Model_Path em constantes.py para definir o local e o nome do modelo que você está usando.
(por exemplo, em constantes.py ) model_path = os.path.expanduser ('~') + "/models/llama-2-13b-chat.ggmlv3.q4_1.bin"
gradio app.pyVocê deve ver: executando no URL local: http://127.0.0.1:7861
CMD + Clique no link para iniciar a interface do usuário de bate -papo em seu navegador
Vá ao seu navegador para conversar com a IA.
Nota As respostas de bate -papo podem levar de um a dois minutos, então você precisará ser paciente
NOTA: O componente ingest.py é basicamente um garfo do localGPT
Coloque todo e qualquer arquivo .txt, .pdf ou .csv no diretório fonte_documents
Os tipos de arquivo padrão atuais são .txt, .pdf, .csv e .xlsx, se você quiser usar qualquer outro tipo de arquivo, precisará convertê -lo em um dos tipos de arquivo padrão.
Execute o seguinte comando para ingerir todos os dados.
python ingest.pyEle criará um índice que contém o VectorStore local. Levará tempo, dependendo do tamanho de seus documentos.
Se você deseja começar de um banco de dados vazio, exclua a pasta DB.
rm -r ./DBA execução do programa ingest.py recriará um novo diretório de banco de dados