Una simple aplicación de chat con incrustaciones y base de datos vectorial, exclusivamente para la ejecución local en Mac/Apple Silicon.
Este repositorio es una destilación y un riff basado en PrivateGPT y Localgpt que creé para ejecutar exclusivamente localmente en Apple Silicon y más específicamente mi MacBook Pro (M1). Mi motivación era crear un chat mínimo de LLM viable que se ejecute completamente local en mi dispositivo, para fines de aprendizaje.

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.239Actualizar 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.txtDescargue este modelo u otro modelo GGML de 4 bits (preferido) (requerido)
Llama-2-13b-CHAT.GGMLV3.Q4_1.BIN
Definir model_path en constants.py para establecer la ubicación y el nombre del modelo que está utilizando.
(por ejemplo, constants.py ) model_path = os.path.expanduser ('~') + "/models/llama-2-13b-chat.ggmlv3.q4_1.bin"
gradio app.pyDebería ver: Ejecutando en URL local: http://127.0.0.1:7861
CMD + Haga clic en el enlace para iniciar la interfaz de usuario de chat en su navegador
Ve a tu navegador para charlar con la IA.
Las respuestas de chat nota pueden tomar uno o dos minutos, por lo que deberá ser paciente
Nota: El componente Ingest.py es básicamente una bifurcación de localgpt
Coloque todos y cada uno de sus archivos .txt, .pdf o .csv en el directorio Source_Documents
Los tipos de archivos predeterminados actuales son .txt, .pdf, .csv y .xlsx, si desea usar cualquier otro tipo de archivo, deberá convertirlo en uno de los tipos de archivos predeterminados.
Ejecute el siguiente comando para ingerir todos los datos.
python ingest.pyCreará un índice que contiene la tienda vectorial local. Tomará tiempo, dependiendo del tamaño de sus documentos.
Si desea comenzar desde una base de datos vacía, elimine la carpeta DB.
rm -r ./DBEjecución del programa Ingest.py recreará un directorio de DB nuevo