Как разрешить нескольким клиентам общаться с общей базой знаний с помощью локального API GPT
Сегодня мы рассмотрим, как включить несколько клиентов, чтобы они могли общаться с общей базой знаний, используя локальный API GPT. Local GPT — это мой собственный проект, который позволяет вам общаться с вашими документами локально в безопасной среде. У него более 18 000 звезд на GitHub, и на его основе вы действительно можете создавать бизнес-приложения.
Настройка локального GPT
Сначала давайте пошагово рассмотрим процесс настройки локального GPT. Если вы впервые видите локальный GPT, вам необходимо клонировать репозиторий. Просто нажмите зеленую кнопку на странице GitHub, чтобы скопировать ссылку. Альтернативно вы можете использовать предварительно настроенную виртуальную машину, предоставленную MK Compute. Если вы решите использовать виртуальную машину, используйте код «promptengineering», чтобы отключить 50%.
Если вы используете локальный GPT на локальном компьютере, откройте терминал и измените каталог на тот, в котором вы хотите сохранить копию клонированного репозитория. Затем используйте скопированный адрес репозитория GitHub, чтобы клонировать репозиторий в новую папку под названием «локальный GPT API». Затем создайте новую виртуальную среду с помощью команды «conda create -n localGPT python=3.10» (замените «localGPT» на желаемое имя вашей виртуальной среды). Установите все требования, используя «pip install -r require.txt».
После завершения настройки вы готовы перейти к инъекционной части.
Внедрение документов и создание базы знаний
Чтобы позволить нескольким клиентам взаимодействовать с общей базой знаний, нам необходимо принять документы и создать векторное хранилище. Это можно сделать с помощью команды Python «python inject.py». По умолчанию для типа устройства используется CUDA, но если вы используете его на процессоре Apple, вы можете указать MPS в качестве типа устройства.
Процесс внедрения разбивает документы на фрагменты и создает векторные вложения на основе этих фрагментов. Вложения векторов хранятся в хранилище векторов, которое действует как база знаний.
Обслуживание нескольких клиентов
Теперь, когда у нас настроена база знаний, мы можем начать обслуживать несколько клиентов через API. Локальный GPT использует для этой цели сервер Flask API. Локальный сервер GPT реализует простой механизм организации очередей, обслуживая клиентов в том порядке, в котором они отправляют запросы. Если у вас система с несколькими графическими процессорами, вы можете обслуживать разные экземпляры локального GPT на разных графических процессорах и маршрутизировать через них клиентские запросы.
Чтобы запустить сервер API, используйте команду «python run_local_gpt_api.py». Это загрузит модель и начнет обслуживать.
Использование локального пользовательского интерфейса GPT
В состав локального GPT входит пример пользовательского интерфейса, который можно использовать для взаимодействия с сервером API. Перейдите в папку «local GPT UI» и выполните команду «python local_gpt_ui.py». Это запустит другое приложение Flask, работающее на порту 5111.
Вы можете создавать свои собственные пользовательские интерфейсы, изучив реализацию локального API GPT и способы его вызова. Предоставленный пример пользовательского интерфейса — это лишь один из вариантов.
Моделирование нескольких клиентов
Чтобы имитировать одновременный доступ нескольких клиентов к API, вы можете запустить несколько экземпляров пользовательского интерфейса или выполнить внешние вызовы API с разных удаленных компьютеров. В примере, показанном на видео, работают три разных экземпляра пользовательского интерфейса, каждый из которых отправляет разные запросы серверу API.
Сервер API отвечает на одно приглашение за раз, обрабатывая их в порядке их получения. Как только ответ сгенерирован, он переходит к следующему запросу.
Заключение
В этом руководстве мы узнали, как разрешить нескольким клиентам обмениваться данными с общей базой знаний с помощью локального сервера GPT API. Хотя в этом руководстве представлены базовые настройки, существуют более элегантные способы работы с несколькими клиентами, такие как добавление балансировщика нагрузки и постановка запросов в очередь.
Если вы хотите внести свой вклад в местный проект GPT, посетите репозиторий GitHub и присоединитесь к сообществу Discord. Также доступны консалтинговые и консультационные услуги по продуктам и стартапам. Обязательно подпишитесь на канал, чтобы получать больше информации о локальном GPT и его функциях.
Спасибо за просмотр и увидимся в следующем видео!