Этот проект представляет собой приложение на FastAPI с интерфейсом Gradio. В этом проекте я реализоал RAG(retrieval augmented generation), используя библиотеку llama-index. В качестве LLM я использовал квантизированную модель Saiga Mistral(https://huggingface.co/TheBloke/saiga_mistral_7b-GGUF)
- Сначала клонируйте репозиторий:
git clone https://github.com/xzdil/llmFastapi
- Перейдите в папку репозитория
cd llmFastapi
- Cоздайте среду и установите зависимости с помощью pip:
sudo apt install -y python3-venvsudo
apt install -y build-essential libssl-dev libffi-dev python3-dev
python -m venv venv
Для Linux команда активации среды:
source venv/bin/activate
Для Windows команда активации среды:
venv\Scripts\activate.bat
Установите зависимости
pip install -r requirements.txt
- Выберите способ запуска LLM (Локально или на Google colab)
Локально:
Установите ollama:
curl -fsSL https://ollama.com/install.sh | sh
В папку models загрузите нужную вам модель, например saiga mistral:
wget https://huggingface.co/TheBloke/saiga_mistral_7b-GGUF/resolve/main/saiga_mistral_7b.Q5_K_S.gguf
Создайте Modelfile для этой модели:
Для этого используем nano, если не установлен установите:
sudo apt update
sudo apt install nano
Создайте файл:
nano Modelfile
Впишите путь модели в файл, например:
FROM ./models/saiga_mistral_7b.Q5_K_S.gguf
Создайте модель из файла Modelfile
ollama create saiga -f Modelfile
В файле gradio_code.py укажите is_local = True
- Запустите приложение:
uvicorn main_gradio:app --reload --host 0.0.0.0 --port 8000
После запуска приложения перейдите по адресу http://localhost:8000
, чтобы получить доступ к интерфейсу Gradio.
Здесь вы можете взаимодействовать с моделью, задавая ей вопросы и получая ответы.
Этот проект лицензируется в соответствии с лицензией MIT.
Автор этого проекта:
- Адиль Рахимжанов
Мы приветствуем ваши вклады! Если вы хотите внести свой вклад, пожалуйста, откройте issue или создайте pull request.