Готовый к использованию AI проект, предоставляющий частную, безопасную, настраиваемую и простую в использовании среду разработки GenAI. Использует большие языковые модели (LLMs), даже без подключения к Интернету. Обеспечивает 100% конфиденциальность, так как никакие данные не покидают среду выполнения.
🧩 Архитектура
PrivateGPT — это API, которое оборачивает RAG-пайплайн и предоставляет доступ к его примитивам.
🔺API построено на FastAPI и следует схеме API OpenAI.
🔺В основе RAG-пайплайна лежит LlamaIndex.
Архитектура PrivateGPT спроектирована так, чтобы легко расширять и адаптировать как само API, так и реализацию RAG.
Основные принципы архитектуры:
🔺Гибкость: используется процесс внедрения зависимостей, что позволяет разделять компоненты и уровни.
🔺Модульность: применяются абстракции LlamaIndex (LLM, BaseEmbedding, VectorStore), поэтому можно быстро менять конкретные реализации.
🔺Простота: минимум дополнительных слоёв и абстракций.
🔺Готовность к работе: из коробки доступна полноценная реализация API и RAG-пайплайна.
💻 Установка
Клонируйте репозиторий и перейдите в него:
git clone https://github.com/zylon-ai/private-gpt
cd private-gpt
Установите и настройте Python 3.11 с помощью pyenv:
pyenv install 3.11
pyenv local 3.11
Установите Poetry для управления зависимостями:
curl -sSL https://install.python-poetry.org | python3 -
PrivateGPT позволяет настраивать систему, от полностью локальной до облачной, выбирая используемые модули. Чтобы установить только необходимые зависимости можно использовать различные extras, которые можно комбинировать в процессе установки:
poetry install --extras "<extra1> <extra2>..."
Где <extra> может быть любым из следующих вариантов, описанных в документации.
👤 Использование профилей
PrivateGPT настраивается с помощью профилей, которые определяются с помощью YAML-файлов и выбираются с помощью переменных среды. Полный список настраиваемых свойств можно найти в settings.yaml.
Существующие профили можно использовать, установив для переменной среды PGPT_PROFILES определенное значение имени профиля:
export PGPT_PROFILES=my_profile_name_here
