Зачем?
Во-первых, регистрация на оригинальном 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)
janvarev
29.09.2023 15:14+11После такой прекрасной статьи не могу не упомянуть свой проект такого же типа https://vsegpt.ru/
тоже доступ к ChatGPT, GPT-4, OpenAI API
...а еще к Claude, Google Palm, Llama 2 через тот же интерфейс )
...есть тестовый период
...и чат развернут прямо на сайте, не надо его запускать локально (но если кому хочется, то почему бы и нет :)))
Vladislav_Dudnikov
29.09.2023 15:14+1Друг, лендинг бы нормальный вам, а то выглядит старо и отталкивающе. А вообще норм проект, если понадобится gpt-4, то к вам пойду.
Slav2
29.09.2023 15:14+2Для человека, который ищет доступ в GPT по API, интерфейс сайта соответствует поставленной задаче. Самая важная информация на странице верхнего уровня. Топ меню позволяет быстро перемещаться между разделами на сайте. Не могу избавиться от ощущения, что современные, как вы говорите, метро интерфейсы выглядят дешево и безвкусно. А зачастую и не функционально, когда тратишь лишнее время чтобы найти требуемую информацию.
Ivanii
29.09.2023 15:14+3На https://proxyapi.ru/ никаких контактов нет только форма обратной связи куда то.
На сайте https://vsegpt.ru/ вменяемая контактная информация...
saga111a
29.09.2023 15:14+5Самое главное что janvarev не говорит что собирается поднять свой gpt, а сразу говорит о прослойке, т.е. ведет себя честно. Еще и тарифы вменяемые.
Gugic
29.09.2023 15:14+1Как у вас с политикой конфиденциальности данных и со сбором логов сессий вами и/или конечными процессорами данных?
janvarev
29.09.2023 15:14+2На сайте, на первой странице есть, но повторюсь:
Мы НЕ храним ваши запросы* - только статистические данные об использовании для биллинга (число символов)
\* Также наш провайдер доступа говорит, что он не собирает данные. Также возможно попадание некоторых данных в логи в процессе отладки.
Если брать чат-решение, которое мы используем, то оно тоже всё хранит на клиенте в localStorage.
Andrey_Epifantsev
29.09.2023 15:14Отличный сервис. То что я давно искал. Есть доступ к разным реализациям, а не только к ChatGPT. Это здорово. А то часто читаешь про то как выходят новые нейросети и хочется их попробовать, но совершенно нет времени на изучение того, как их самостоятельно развернуть. Надеюсь вы будете добавлять в свой список нейросетей лучшие из вновь появившихся.
С оплатой некоторые заморочки.
1. На пробный период дается уж очень маленькая сумма - 10 рублей. Я взял пробный период, ввёл запрос средней длины на английском и чат мне написал, что это запрос выходит за рамки бюджета. Я не смог в рамках пробного периода задать даже один вопрос. Или ограничьте список моделей в пробном периоде самыми дешевыми или добавьте денег. Если боитесь спамеров, которые будут регистрироваться ради пробного периода - можно добавить какую нибудь добавочную верификацию типа капчи или реального номера телефона.
2. При пополнении баланса не указывается, что деньги списываются как на абонентскую плату, так и на сами запросы и сверх абонентской платы нужно ещё добавлять сумму на запросы. Это не очевидно, по крайней мере когда находишься на странице оплаты. Было бы неплохо добавить напоминание об этом. А то я увидел, что для перехода на платный тариф нужны деньги, я их заплатил, перешел на платный тариф, а в ответ мне пишут, что у меня денег не хватает. Пришлось платить второй раз.
3. Платежный сервис неудобный - нужно вбивать номер карты руками. Вроде давно уже все привыкли платить через QR-коды, а тут приходится лезть в кошелек, чтобы достать карточку и ввести вручную её номер, как в прежние времена.janvarev
29.09.2023 15:14Спасибо, содержательные замечания. 2 точно сделаем, 3 - у провайдера есть QR-коды, но я их отключил, они были неудобные, а теперь вот оно как получается. Наверное, попробую включить обратно.
Насчет сеток - да, новые будут :) скоро будет gpt-3.5-turbo-instruct, и кое-что из опенсорса.
vtal007
29.09.2023 15:14Не понял по пункту 2
То есть 200 р платить в месяц. Но еще за запросы платить? это ж наверно можно вообще в дикие растраты уйти неожиданно
theurus
29.09.2023 15:14И это при том что все эти чат боты работают бесплатно на своих сайтах. gpt4 доступен на сайте bing.com а через неделю должно выйти обновление для венды которое сделает его встроенным в каждую венду (ну кроме тех кто в кндр и рф)
janvarev
29.09.2023 15:14Бесплатного лимита нет, в общем-то, ни у кого. У Майкрософта официальный прайс на GPT-4 вот, если давать туда большие тексты, и так вылететь в трубу можно. Они тоже списываются со счета OpenAI, там безлимита нет.
Поэтому да, тариф за генерацию. Сам решаешь, что тебе важнее - какая модель, какой объем.
ChessMax
29.09.2023 15:14Было бы здорово, если бы вы подключили более удобную платежку (например с СБП). Попытался оплатить, но требуется номер карты, а возиться с виртуальными особо желания и времени нет.
ponikrf
29.09.2023 15:14+29Серьезно? Вобще я ждал от статьи как развернуть как минимум какую нибудь ламу или еще чего. А тут просто как прокси использовать - гениально ничего не скажешь.
Как по мне вам нужно заголовок изменить.
FireWind
29.09.2023 15:14Вчера на пикабу видел инструкцию по разворачиванию нескольких видов сетей локально через несколько клиентов. В том числе с возможностью запуска на видео-памяти нескольких слоев, когда остальные - на обычной памяти
theurus
29.09.2023 15:14+3Включаем впн, идем на bing.com. Общаемся с бесплатным gpt4 от микрософта.
Viktor_Osadchiy
29.09.2023 15:14-1там вроде 4 запроса в день только?
PsihXMak
29.09.2023 15:145 запросов за сеанс. И то он очень урезанный. На половину запросов выдаёт, что ответ может нарушать их политику.
Яндекс в этом плане получше. Но, намного тупее.
Лучше всего брать какой ни будь свеже-обученный форк лламы (а делают их сейчас чуть ли не каждый день) и интерфейс типа kobold - И разворачивать всё это дело локально/в своей сети.
theurus
29.09.2023 15:14в бинге? там целый день трещать можно
а кроме бинга есть еще бард и клауд. у них свои фишки, бард гуглит получше чем бинг и отвечает намного быстрее. клауд может с файлами работать, с текстами
crystallize
29.09.2023 15:14Так а что, есть какие-то модели в которых всякая эротика не запрещена? А то развели тут 30е годы.
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 получить - совсем не сложно;
janvarev
29.09.2023 15:14у openai возможен опт-аут от логгирования в АПИ
К сожалению, это тоже на доверии + официальный договор вы вряд ли на эту тему получите.
На самом деле адекватный вариант - внутренний чат интерфейс (подобно упомянутому вами) + развернутая локальная модель по OpenAI интерфейсу, и всё во внутреннем контуре, без всяких утечек (сам такие системы делаю) Тюнинг имхо не очень обязателен, хотя зависит от задачи, да.
Gugic
29.09.2023 15:14Настолько же на доверии насколько у других. Они работают в понятной юрисдикции и заявляют всевозможные сертификации вроде SOC2 и GDPR. Если они что-то пишут когда говорят что не пишут - у них могут быть очень большие проблемы. Но в идеале, конечно, локальная модель.
theurus
29.09.2023 15:14openai пишет что не использует для обучения ваши данные, пишет что ваши данные это ваши данные
за обучение на ваших данных openai хочет отдельных денег Ж)
rPman
29.09.2023 15:14Наивный, как минимум они используют сами запросы как старт для алгоритмов RLHF (сам список человеческих запросов уже информация) плюс информация о том, как человек продолжил общаться с сеткой и реакции на кнопку - плохой/хороший ответ.
theurus
29.09.2023 15:14использовать то что ты пишешь где то кроме твоего диалога как минимум опасно, если всплывет где-нибудь засудят насмерть
rPman
29.09.2023 15:14ChatGPT
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 обещают что информацию не собирают. Но есть момент, дело в том что компания уже собрала необходимую информацию, и теперь с барского плеча могут позволить себе не собирать. Другие компании, догоняющие, могут пока не иметь такой возможности.
Gugic
29.09.2023 15:14Openai api не использует, chatgpt использует, это разные продукты. Я в общем так и написал ведь.
Kergan88
29.09.2023 15:14А почему среди имен ни одного женского?)
fettgesicht Автор
29.09.2023 15:14Сам удивился) Хваленая борьба с сексизмом в ответах модели, видимо, пока не дает результатов)
fettgesicht Автор
29.09.2023 15:14Ух ты! Первая статья на Хабре и сразу такой охват! Спасибо всем, кто прочитал, и двойное спасибо за комментарии.
Я не являюсь представителем ProxyAPI, но сотрудничаю с ними. Так что всю конструктивную критику соберу и передам ребятам.
Нахватал минусов за "кликбейтный заголовок", но, честно говоря, я не ожидал такого результата. Обещаю исправиться! Интересно, можно ли из такого количества минусов выбраться или проще завести новый аккаунт? :)
HepoH
29.09.2023 15:14Отрицательный рейтинг спадет со временем сам, в карме сейчас -1, я её до нуля добью. Считай что отделался легким испугом.
fettgesicht Автор
Сам удивился) Хваленая борьба с сексизмом в ответах модели, видимо, пока не дает результатов)