/gradio-llamacpp-chatbot

Chatbot on llama-cpp-python with web interface on Gradio

Primary LanguageJupyter NotebookMIT LicenseMIT


Gradio llama-cpp-python Chatbot

Hugging Face Spaces Docker Hub

Чат-бот на llama-cpp-python с веб-интерфейсом на Gradio


📋 Содержание


📽 Демонстрация

В Google Colab Open in Colab ноутбуке дополнительно реализовано:

  • Код приложения с комментариями
  • Демонстрация пошагового инференса моделей через llama-cpp-python
  • Пример деплоя веб-приложения на фреймворке Gradio на облачный сервер
  • Подключение и настройка сервера NGINX
  • Регистрация домена для своего сайта
  • Установка SSL сертификатов для работы приложения по протоколу HTTPS на своем сайте

🖼 Скриншоты

Главная страница приложения

Главная страница

Страница загрузки моделей

Страница загрузки моделей


🚀 Функционал

  • Генерация ответа с использованием моделей в формате GGUF
  • Настройка параметров генерации (temperature, top_k, top_p, repetition_penalty)
  • Возможность указать системный промт (если модель его не поддерживает это будет отображено)
  • Выбор количества учитываемых сообщений в истории при подаче промта в модель
  • Возможность выбора моделей в формате GGUF по URL ссылке с индикацией прогресса загрузки

После запуска приложения происходит загрузка LLM модели по умолчанию (gemma-2-2b-it-Q8_0.gguf, 2.7 GB) в папку ./models
Чтобы изменить LLM модель, необходимо вставить прямую ссылку на модель в формате GGUF на странице приложения Load model

Где искать LLM модели в формате GGUF


🏗 Стек технологий

  • python >= 3.10
  • llama-cpp-python для инференса моделей в формате GGUF
  • gradio для написания веб-интерфейса
  • Модель gemma-2-2b в формате GGUF в качестве LLM модели по умолчанию

Работоспособность приложения проверялась на следующих ОС и версиях Python

  • Ubuntu 22.04, python 3.10.12
  • Windows 10, python 3.12.2
  • Android 11 (MIUI 12), Ubuntu 22.04, python 3.10.12

🐍 Установка и запуск через Python

1) Клонирование репозитория

git clone https://github.com/sergey21000/gradio-llamacpp-chatbot.git
cd gradio-llamacpp-chatbot

2) Создание и активация виртуального окружения (опционально)

  • Linux

    python3 -m venv env
    source env/bin/activate
    
  • Windows CMD

    python -m venv env
    env\Scripts\activate
    
  • Windows PowerShell

    python -m venv env
    env\Scripts\activate.ps1
    

3) Установка зависимостей

  • С поддержкой CPU

    pip install -r requirements.txt --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu
    
  • С поддержкой CUDA 12.4

    pip install -r requirements.txt --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu124
    

Для установки llama-cpp-python на Windows с поддержкой CUDA нужно предварительно установить Visual Studio 2022 Community и CUDA Toolkit, как например указано в этой инструкции
Для полной переустановки использовать команду

pip install --force-reinstall --no-cache-dir -r requirements.txt --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu124

Инструкции по установке llama-cpp-python для других версий и систем

4) Запуск сервера Gradio

python3 app.py

После запуска сервера перейти в браузере по адресу http://localhost:7860/
Приложение будет доступно через некоторое время (после первоначальной загрузки модели в директорию ./models)


🐳 Установка и запуск через Docker

Для запуска приложения с поддержкой GPU CUDA необходима установка NVIDIA Container Toolkit.

🏃 Запуск контейнера из образа Docker HUB

  • С поддержкой CPU

    docker run -it -p 7860:7860 -v ./models:/app/models sergey21000/gradio-llamacpp-chatbot:cpu
    
  • С поддержкой CUDA 12.5

    docker run -it --gpus all -p 7860:7860 -v ./models:/app/models sergey21000/gradio-llamacpp-chatbot:cuda
    

🏗️ Сборка своего образа и запуск контейнера

1) Клонирование репозитория

git clone https://github.com/sergey21000/gradio-llamacpp-chatbot.git
cd gradio-llamacpp-chatbot

2) Сборка образа и запуск контейнера

  • С поддержкой CPU
    Сборка образа

    docker build -t gradio-llamacpp-chatbot:cpu -f Dockerfile-cpu .
    

    Запуск контейнера

    docker run -it -p 7860:7860 -v ./models:/app/models gradio-llamacpp-chatbot:cpu
    
  • С поддержкой CUDA
    Сборка образа

    docker build -t gradio-llamacpp-chatbot:cuda -f Dockerfile-cuda .
    

    Запуск контейнера

    docker run -it --gpus all -p 7860:7860 -v ./models:/app/models gradio-llamacpp-chatbot:cuda
    

После запуска сервера перейти в браузере по адресу http://localhost:7860/
Приложение будет доступно после первоначальной загрузки модели в директорию ./models


Приложение создавалось для тестирования LLM моделей как любительский проект
Оно написано для демонстрационных и образовательных целей и не предназначалось / не тестировалось для промышленного использования

📱 Установка и запуск на Android

Инструкции по запуску бота на Android

Лицензия

Этот проект лицензирован на условиях лицензии MIT.