Любить собаку, видимо, против правил :)
Любить собаку, видимо, против правил :)

Зачем?

Во-первых, регистрация на оригинальном ChatGPT включает в себя верификацию номера телефона и Российские номера не принимаются. Для этого нужно либо иметь в своём распоряжении иностранную симку, либо воспользоваться сервисом-посредником - номер будет "ваш" на время, достаточное, чтобы получить СМС и ввести код.

Проблемы могут появиться в случае, если случайным образом при очередной попытке входа в аккаунт сервер решит ещё раз верифицировать ваш номер телефона. Но доступа к нему у вас уже нет, скорее всего, придётся заводить новый аккаунт.

Во-вторых, бесплатная версия не включает в себя доступ к языковой модели GPT-4 -  самой современной и продвинутой модели от OpenAI. Платная версия снимает эти ограничения. Это подписка ChatGPT Plus за $20 в месяц, однако оплатить её с помощью карты Российского банка тоже не получится. И снова нужен посредник.

В-третьих, интерфейс ChatGPT не менялся уже почти год, в то время как сторонние решения предоставляют набор полезных и удобных инструментов уже сейчас. Более того, исходный код всего проекта открыт, значит, вы можете и сами добавлять новый функционал!

Как?

OpenAI API в России

Какое бы решение для frontend мы ни выбрали, все они в любом случае будут общаться с официальным OpenAI API. Получение доступа к API в России будет связано с теми же сложностями, которые я описал выше для собственно ChatGPT. Чтобы не тратить время на все эти обходные манёвры, мы заведём аккаунт у Российского посредника, который предоставляет доступ к OpenAI API в России - ProxyAPI.

Регистрируем аккаунт, создаём ключ API и пополняем баланс. Попробуем послать запрос, чтобы убедиться, что всё работает:

curl https://api.proxyapi.ru/openai/v1/chat/completions \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer xxxx" \
    -d '{
        "model": "gpt-3.5-turbo",
        "messages": [{"role": "user", "content": "Скажи \"привет\""}],
        "temperature": 0.7
    }'

xxxx надо заменить на свой ключ API от ProxyAPI.

Я получил ответ:

{
    "id": "chatcmpl-xxxxxxxxxxxxxxxx",
    "object": "chat.completion",
    "created": 1695798511,
    "model": "gpt-3.5-turbo-0613",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Привет! Как я могу помочь вам сегодня?"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 17,
        "completion_tokens": 20,
        "total_tokens": 37
    }
}

Отлично, всё работает!

Интерфейс

Мы не будем писать UI для чат-бота с нуля, благо готовых opensource решений более чем достаточно.

Какой выбрать, зависит от личных предпочтений и технологий, которыми вы владеете в случае, если предполагается дальнейшая разработка проекта. Я перечислю несколько.

https://github.com/Azure/openai-at-scale

Официальное решение от Azure (считай Microsoft). Очень многое завязано на собственно сервисы Azure, так что рекомендовано к использованию тем, для кого это имеет значение. Проект выпущен недавно, регулярно обновляется, но комьюнити разработчиков, судя по всему, его проигнорировало. По состоянию на конец сентября 2023 репозиторий имеет всего 47 звёзд и 28 форков.

https://github.com/WongSaang/chatgpt-ui

Достойный вариант, дублирован весь основной функционал оригинального ChatGPT, есть поддержка разных языков. Код разделён на фронт и бэк, Nuxt и Django соответственно. Если хочется бэк именно на Python или удобнее работать с Vue на фронте, тогда это решение - ваш выбор.

Мне же больше всего по душе пришёлся проект:

https://github.com/mckaywrigley/chatbot-ui

Во-первых, мне не хочется разделять бэк и фронт, заботиться об установке разных сред и следить за обновлениями и поддержкой двух систем. Chatbot UI - это next.js приложение, так что проблема решена.

Во-вторых, мне нравятся дополнительные возможности, которые проект изначально включает в себя: библиотека промптов, возможность сортировать чаты по папкам.

Установка

Будем устанавливать Chatbot UI локально.

Сначала скопируем репозиторий:

git clone https://github.com/mckaywrigley/chatbot-ui.git

Установим зависимости:

npm i

Настроим переменные окружения в файле .env.local (предварительно его надо создать в корневой папке проекта):

OPENAI_API_KEY=PROXYAPI_API_KEY
OPENAI_API_HOST=https://api.proxyapi.ru/openai

PROXYAPI_API_KEY надо заменить на ваш ключ API от ProxyAPI.

В OPENAI_API_HOST мы заменяем путь к вызовам API с оригинального OpenAI на ProxyAPI.

Запускаем приложение:

npm run dev

Вот и всё! Это было просто :)

Теперь проверим работу чат-бота. Спрошу какие самые распространённые имена в России:

Почему-то только мужские...
Почему-то только мужские...

Теперь у вас есть свой личный ChatGPT с доступом к GPT-4. Мы избежали сложностей с регистрацией и оплатой аккаунта OpenAI, получили в своём чат-боте дополнительный функционал и весь процесс занял не более 10 минут. Надеюсь, статья была многим полезна!

Комментарии (39)


  1. fettgesicht Автор
    29.09.2023 15:14

    Сам удивился) Хваленая борьба с сексизмом в ответах модели, видимо, пока не дает результатов)


  1. janvarev
    29.09.2023 15:14
    +11

    После такой прекрасной статьи не могу не упомянуть свой проект такого же типа https://vsegpt.ru/

    • тоже доступ к ChatGPT, GPT-4, OpenAI API

    • ...а еще к Claude, Google Palm, Llama 2 через тот же интерфейс )

    • ...есть тестовый период

    • ...и чат развернут прямо на сайте, не надо его запускать локально (но если кому хочется, то почему бы и нет :)))


    1. Vladislav_Dudnikov
      29.09.2023 15:14
      +1

      Друг, лендинг бы нормальный вам, а то выглядит старо и отталкивающе. А вообще норм проект, если понадобится gpt-4, то к вам пойду.


      1. Slav2
        29.09.2023 15:14
        +2

        Для человека, который ищет доступ в GPT по API, интерфейс сайта соответствует поставленной задаче. Самая важная информация на странице верхнего уровня. Топ меню позволяет быстро перемещаться между разделами на сайте. Не могу избавиться от ощущения, что современные, как вы говорите, метро интерфейсы выглядят дешево и безвкусно. А зачастую и не функционально, когда тратишь лишнее время чтобы найти требуемую информацию.


    1. Ivanii
      29.09.2023 15:14
      +3

      На https://proxyapi.ru/ никаких контактов нет только форма обратной связи куда то.

      На сайте https://vsegpt.ru/ вменяемая контактная информация...


      1. saga111a
        29.09.2023 15:14
        +5

        Самое главное что janvarev не говорит что собирается поднять свой gpt, а сразу говорит о прослойке, т.е. ведет себя честно. Еще и тарифы вменяемые.


    1. Gugic
      29.09.2023 15:14
      +1

      Как у вас с политикой конфиденциальности данных и со сбором логов сессий вами и/или конечными процессорами данных?


      1. janvarev
        29.09.2023 15:14
        +2

        На сайте, на первой странице есть, но повторюсь:

        Мы НЕ храним ваши запросы* - только статистические данные об использовании для биллинга (число символов)

        \* Также наш провайдер доступа говорит, что он не собирает данные. Также возможно попадание некоторых данных в логи в процессе отладки.

        Если брать чат-решение, которое мы используем, то оно тоже всё хранит на клиенте в localStorage.


    1. saga111a
      29.09.2023 15:14
      +1

      на VC статью сделайте пользователей будет...


    1. Andrey_Epifantsev
      29.09.2023 15:14

      Отличный сервис. То что я давно искал. Есть доступ к разным реализациям, а не только к ChatGPT. Это здорово. А то часто читаешь про то как выходят новые нейросети и хочется их попробовать, но совершенно нет времени на изучение того, как их самостоятельно развернуть. Надеюсь вы будете добавлять в свой список нейросетей лучшие из вновь появившихся.


      С оплатой некоторые заморочки.
      1. На пробный период дается уж очень маленькая сумма - 10 рублей. Я взял пробный период, ввёл запрос средней длины на английском и чат мне написал, что это запрос выходит за рамки бюджета. Я не смог в рамках пробного периода задать даже один вопрос. Или ограничьте список моделей в пробном периоде самыми дешевыми или добавьте денег. Если боитесь спамеров, которые будут регистрироваться ради пробного периода - можно добавить какую нибудь добавочную верификацию типа капчи или реального номера телефона.
      2. При пополнении баланса не указывается, что деньги списываются как на абонентскую плату, так и на сами запросы и сверх абонентской платы нужно ещё добавлять сумму на запросы. Это не очевидно, по крайней мере когда находишься на странице оплаты. Было бы неплохо добавить напоминание об этом. А то я увидел, что для перехода на платный тариф нужны деньги, я их заплатил, перешел на платный тариф, а в ответ мне пишут, что у меня денег не хватает. Пришлось платить второй раз.
      3. Платежный сервис неудобный - нужно вбивать номер карты руками. Вроде давно уже все привыкли платить через QR-коды, а тут приходится лезть в кошелек, чтобы достать карточку и ввести вручную её номер, как в прежние времена.


      1. janvarev
        29.09.2023 15:14

        Спасибо, содержательные замечания. 2 точно сделаем, 3 - у провайдера есть QR-коды, но я их отключил, они были неудобные, а теперь вот оно как получается. Наверное, попробую включить обратно.

        Насчет сеток - да, новые будут :) скоро будет gpt-3.5-turbo-instruct, и кое-что из опенсорса.


      1. vtal007
        29.09.2023 15:14

        Не понял по пункту 2

        То есть 200 р платить в месяц. Но еще за запросы платить? это ж наверно можно вообще в дикие растраты уйти неожиданно


        1. theurus
          29.09.2023 15:14

          И это при том что все эти чат боты работают бесплатно на своих сайтах. gpt4 доступен на сайте bing.com а через неделю должно выйти обновление для венды которое сделает его встроенным в каждую венду (ну кроме тех кто в кндр и рф)


        1. janvarev
          29.09.2023 15:14

          Бесплатного лимита нет, в общем-то, ни у кого. У Майкрософта официальный прайс на GPT-4 вот, если давать туда большие тексты, и так вылететь в трубу можно. Они тоже списываются со счета OpenAI, там безлимита нет.

          Поэтому да, тариф за генерацию. Сам решаешь, что тебе важнее - какая модель, какой объем.


    1. ChessMax
      29.09.2023 15:14

      Было бы здорово, если бы вы подключили более удобную платежку (например с СБП). Попытался оплатить, но требуется номер карты, а возиться с виртуальными особо желания и времени нет.


      1. janvarev
        29.09.2023 15:14

        Подключил QR-коды.

        Там единственный минус - агрегатор платежей после оплаты на СБП не перебрасывает обратно на сайт, нужно возвращаться самому, вот такая у них недоделка.


        1. ChessMax
          29.09.2023 15:14
          +1

          Спасибо, то что нужно.


  1. ponikrf
    29.09.2023 15:14
    +29

    Серьезно? Вобще я ждал от статьи как развернуть как минимум какую нибудь ламу или еще чего. А тут просто как прокси использовать - гениально ничего не скажешь.

    Как по мне вам нужно заголовок изменить.


    1. FireWind
      29.09.2023 15:14

      Вчера на пикабу видел инструкцию по разворачиванию нескольких видов сетей локально через несколько клиентов. В том числе с возможностью запуска на видео-памяти нескольких слоев, когда остальные - на обычной памяти


  1. theurus
    29.09.2023 15:14
    +3

    Включаем впн, идем на bing.com. Общаемся с бесплатным gpt4 от микрософта.


    1. Viktor_Osadchiy
      29.09.2023 15:14
      -1

      там вроде 4 запроса в день только?


      1. PsihXMak
        29.09.2023 15:14

        5 запросов за сеанс. И то он очень урезанный. На половину запросов выдаёт, что ответ может нарушать их политику.

        Яндекс в этом плане получше. Но, намного тупее.

        Лучше всего брать какой ни будь свеже-обученный форк лламы (а делают их сейчас чуть ли не каждый день) и интерфейс типа kobold - И разворачивать всё это дело локально/в своей сети.


      1. theurus
        29.09.2023 15:14

        в бинге? там целый день трещать можно

        а кроме бинга есть еще бард и клауд. у них свои фишки, бард гуглит получше чем бинг и отвечает намного быстрее. клауд может с файлами работать, с текстами


    1. crystallize
      29.09.2023 15:14

      Mrs. Dawson, just tell me...


  1. crystallize
    29.09.2023 15:14

    Так а что, есть какие-то модели в которых всякая эротика не запрещена? А то развели тут 30е годы.


    1. PsihXMak
      29.09.2023 15:14
      +2

      Я оставлю вам ссылочку, а что с этим делать дальше, разберетесь сами ;)


    1. shachneff
      29.09.2023 15:14

      Ждем, когда переизобретут Кроватку с участием робота


      1. BoreaAlex
        29.09.2023 15:14

        Crushon.ai под такое подходит


  1. Gugic
    29.09.2023 15:14

    По упомянутому https://github.com/mckaywrigley/chatbot-ui куча вопросиков - https://github.com/mckaywrigley/chatbot-ui/issues?q=is%3Aissue+is%3Aopen+leak. Вероятно все по большей части ошибки пользователей, но все же. Было бы здорово добавить эту ссылку в саму статью, чтобы люди могли увидеть/почитать тикеты и сделать информированное решение.

    Также проект очевидно заброшен, авторы пилят коммерческую версию.

    Из живых альтернатив более или менее развитых нашел https://github.com/Yidadaa/ChatGPT-Next-Web. Оно конечно китайское, но в целом выглядит лучше (с точки зрения активной поддержки, и отсутствия репортов об утекших ключах). Так же как и у chatbot-ui, у этой штуки нет персистанса и она не пишет логи. Хранит все в localstorage браузера.

    Из очевидных плюсов - прямая возможность влиять на промпт. Можно, например, перевести его на русский для получения более качественных ответов на русском языке.

    К аудитории - подумайте о ценности подобных решений в рамках не личного использования, а при использовании внутри компании например. ChatGPT логгирует данные и использует их для последующей тренировки что теоретически может привести к утечкам. Никакой вменяемый безопасник в большой компании не разрешит использовать ChatGPT для рабочих нужд. А с такой вот штукой можно поднять внутренний изолированный инстанс для своих сотрудников и с определенной долей уверенности (возможно после некоторого аудита) считать что данные в безопасности (у openai возможен опт-аут от логгирования в АПИ).

    В идеале, конечно, и модель свою поднимать и на своих данных ее тюнить, но это под силу не каждому IT департаменту. А такой вот UI поднять и немножко бюджета на OpenAI API получить - совсем не сложно;


    1. janvarev
      29.09.2023 15:14

      у openai возможен опт-аут от логгирования в АПИ

      К сожалению, это тоже на доверии + официальный договор вы вряд ли на эту тему получите.

      На самом деле адекватный вариант - внутренний чат интерфейс (подобно упомянутому вами) + развернутая локальная модель по OpenAI интерфейсу, и всё во внутреннем контуре, без всяких утечек (сам такие системы делаю) Тюнинг имхо не очень обязателен, хотя зависит от задачи, да.


      1. Gugic
        29.09.2023 15:14

        Настолько же на доверии насколько у других. Они работают в понятной юрисдикции и заявляют всевозможные сертификации вроде SOC2 и GDPR. Если они что-то пишут когда говорят что не пишут - у них могут быть очень большие проблемы. Но в идеале, конечно, локальная модель.


    1. theurus
      29.09.2023 15:14

      openai пишет что не использует для обучения ваши данные, пишет что ваши данные это ваши данные

      за обучение на ваших данных openai хочет отдельных денег Ж)


      1. rPman
        29.09.2023 15:14

        Наивный, как минимум они используют сами запросы как старт для алгоритмов RLHF (сам список человеческих запросов уже информация) плюс информация о том, как человек продолжил общаться с сеткой и реакции на кнопку - плохой/хороший ответ.


        1. theurus
          29.09.2023 15:14

          использовать то что ты пишешь где то кроме твоего диалога как минимум опасно, если всплывет где-нибудь засудят насмерть


          1. rPman
            29.09.2023 15:14

            ChatGPT

            When you use our non-API consumer services ChatGPT or DALL-E, we may use the data you provide us to improve our models. You can switch off training in ChatGPT settings (under Data Controls) to turn off training for any conversations created while training is disabled or you can submit this form. Once you opt out, new conversations will not be used to train our models.

            По умолчанию включено.

            Для api обещают что информацию не собирают. Но есть момент, дело в том что компания уже собрала необходимую информацию, и теперь с барского плеча могут позволить себе не собирать. Другие компании, догоняющие, могут пока не иметь такой возможности.


      1. Gugic
        29.09.2023 15:14

        Openai api не использует, chatgpt использует, это разные продукты. Я в общем так и написал ведь.


  1. Kergan88
    29.09.2023 15:14

    А почему среди имен ни одного женского?)


    1. fettgesicht Автор
      29.09.2023 15:14

      Сам удивился) Хваленая борьба с сексизмом в ответах модели, видимо, пока не дает результатов)


  1. fettgesicht Автор
    29.09.2023 15:14

    Ух ты! Первая статья на Хабре и сразу такой охват! Спасибо всем, кто прочитал, и двойное спасибо за комментарии.

    Я не являюсь представителем ProxyAPI, но сотрудничаю с ними. Так что всю конструктивную критику соберу и передам ребятам.

    Нахватал минусов за "кликбейтный заголовок", но, честно говоря, я не ожидал такого результата. Обещаю исправиться! Интересно, можно ли из такого количества минусов выбраться или проще завести новый аккаунт? :)


    1. HepoH
      29.09.2023 15:14

      Отрицательный рейтинг спадет со временем сам, в карме сейчас -1, я её до нуля добью. Считай что отделался легким испугом.