Вообще, я люблю опенсорс - мой голосовой помощник Ирина тому подтверждение.
Тем не менее, в текстовых нейросетях пока опенсорс решений уровня GPT-4 нет - а пользоваться им при написании кода, честно говоря, правда полезно.
Если честно, меня несколько утомило решать вопросы доступа и оплаты OpenAI аккаунта, необходимого для доступа к GPT-4 и API (да, я провожу эксперименты, и API мне нужен).
Я бы с удовольствием поэкспериментировал и с другими сетями - например, Claude, о которой говорят гораздо меньше, но которая, по-видимому, не намного хуже (спойлер: я пробовал - по моему мнению, Claude 2 вполне на уровне GPT-4).
Постепенно реализовывая свои "хотелки", я создал сервис VseGPT.ru, который решает мои основные проблемы - предоставляет общий интерфейс в виде чата и OpenAI API к разным топовым нейросетям - ChatGPT, Claude, Google Palm и опенсорсным Llama 70b, 34b Code и пр.
Сервис я делал в основном под свои профессиональные потребности, так что давайте посмотрим, насколько он подойдет вам (+ помечено, если в сервисе есть, - если нет):
-
Доступ по OpenAI API (крайне важно) (+).
Во-первых, я хочу свободу для экспериментов - например, чтобы делать обработку данных через серию запросов с помощью LangChain, или сделать плагин для Ирины, для того, чтобы с ней поболтать.
Во-вторых, я хочу пользоваться уже существующей массой инструментов, которые интегрируются с OpenAI API. Например, расширение для браузера ChatGPTBox через OpenAI API умеет делать прямо в браузере: суммирование текстов, перевод, "полировку" английского текста (исправление ошибок), объяснять код. Возможность пользоваться сторонними инструментами крайне привлекательна.
В-третьих, желательна минимизация лимитов по запросам к API - ждать по 20-60 секунд между запросами крайне неудобно (+)
-
Доступ через вебчат (крайне важно) (+).
Иногда у меня нет времени лезть в Python скрипт, и я хочу просто задать вопрос нейросети через удобный интерфейс. Желательно сохранение чатов, светлая/темная тема, по возможности - поддержка Markdown для кода.
Еще желательна поддержка streaming при запросе - чтобы результат выводился по мере генерации токенов, и не нужно было ждать полного ответа (+)
-
Свободное переключение между нейросетями (важно) (+).
Не хочу вендорлок на решения OpenAI. Хочу попробовать Claude - он дешевле, и у него обещают контекст в 100 000 токенов. Хочу попробовать опенсорсную LLama 70b (с трудом запускается на домашних машинах).
Хочу возможность быстрого переключения на другую сеть - например, на Claude v1 как аналог ChatGPT - если вдруг вторая будет недоступна.
-
Небольшая оплата за размер запроса в зависимости от нейросети (приемлемо) (+)
Понятно, что совсем бесплатные решения либо будут сильно лимитированы, либо будут работать нестабильно. В конце концов, GPT-4 стоит в 10 раз дороже ChatGPT, и бесплатно её предоставлять на большие диалоги и обработки статей нереально. Поэтому я готов оплачивать свои запросы - если это реально недорого.(И, пожалуйста, без привязки банковской карты - только внутренний счёт).
-
Небольшая стоимость подписки (приемлемо) (+)
Да, за такой сервис я готов был бы платить - но определенно не 20$. Рублей 200-400 было бы норм. И да, российской картой, пожалуйста. Да, нормально, если при низкой стоимости подписки оплата за запросы идёт отдельно.
-
Бесплатный тестовый доступ (важно) (+)
Я хочу сначала попробовать, что всё работает, а уже потом заплатить.
-
Доступ через Телеграм (не очень важно) (-)
В принципе, какие-то запросы было бы удобно делать через Телеграм, но там будет неудобно управлять диалогом. Для меня это не очень важно.
Совместимость с OpenAI API
Уже запустив сервис, я ещё раз почувствовал - как круто, что можно использовать совместимые наработки.
Мой API поддерживает наиболее популярный вызов /v1/chat/completion, который позволяет по серии диалога "юзер-нейросеть" получить новый ответ. (Есть /completion - просто дополнить текст - но он у меня не поддерживается, и в инструментах он используется не так часто)
Для интеграции с другими инструментами обычно достаточно, чтобы в них можно было сменить OpenAI API URL. В стандартной Python библиотеке openai это делается так:
import openai
openai.api_key = "sk-XXXXXXXXXXXXXXXX" # берётся на сервисе
openai.api_base = "https://vsegpt_api_url" # берётся на сервисе
# формируем список сообщений
messages = []
# системный промт - мы не задаем, но при желании можно
# messages.append({"role": "system", "content": system_text})
# сообщение от пользователя
messages.append({"role": "user", "content": "Напиши последовательно числа от 1 до 10"})
response_big = openai.ChatCompletion.create(
# id модели на сервисе или стандартный "gpt-3.5-turbo"
model="anthropic/claude-instant-v1",
messages=messages,
temperature=0.7,
n=1,
max_tokens=int(len(prompt) * 1.5),
)
response = response_big["choices"][0]["message"]
print("Response:",response)
И... код работает!
В API поддерживается и просто запрос, и с параметром stream=True - т.е. чтобы ответ выдавался по мере готовности (пример обработки стриминга есть в стандартной библиотеке OpenAI).
Интеграции
Благодаря совместимому OpenAI API можно быстро подключать что-то своё.
Болталка для голосового помощника Ирины.
Я уже делал плагин, дающий возможность общаться через Ирину с ChatGPT какое-то время назад - с сохранением контекста диалога, и возможностью настройки системного промта ("Отвечай кратко и по существу", "Объясняй как маленькому ребенку" и пр.). Сейчас я достаточно быстро добавил новый API endpoint под vsegpt и функцию "новый диалог" для сброса контекста.
Простенький пример голосового диалога:
— Ирина, поболтаем?
— Да, давай.
— Что такое Солнце?
— Солнце — звезда, которая находится в центре нашей солнечной системы и обеспечивает нам свет и тепло.
Опенсорсное расширение для всех основных браузеров (Chrome, Edge, Firefox...), которое позволяет с помощью OpenAI API на страницах браузера выполнять:
Перевод
Суммаризацию (краткое содержание) текста
Объяснять программный код
Полировать текст (убирать грамматические ошибки и пр.)
Мой опенсорс REST-сервер, который позволяет переводить тексты через самые разные движки (онлайн и оффлайн), которые подключаются плагинами. К нему я сделал плагин для vsegpt - так что можно переводить и через нейросети.
Про OneRingTranslator я думаю ещё как-нибудь написать на Хабре, а пока, если интересно - в него встроена оценка качества перевода с помощью метрик BLEU/COMET, и вот результаты перевода через GPT-нейросети в сравнении с традиционными переводчиками (больше - лучше, Claude 2 прям топ):
Заключение
"Eat your own dog food"
Учитывая, что я сам использую свой сервис, думаю, он будет становиться лучше - по меньшей мере для меня, и людей, думающих схожим образом.
Мне бы хотелось еще подключить анализ документов - чтобы сеть могла по ним отвечать, ну и побольше дельных инструментов - но это дело времени. Хотелось бы подключить что-то отечественное вроде GigaChat - но у него пока нет API. Планирую сделать аналогичное компактное решение с OpenAI API и чатом только на опенсорсных нейросетях, чтобы можно было эффективно разворачивать в замкнутом контуре предприятия (если вдруг такое нужно - пишите в личку).
Ну а пока я только выложил сервис, и надеюсь, он будет полезен.
Комментарии (22)
excoder
20.09.2023 11:02+1А как вы обеспечили доступ к OpenAI моделям? Просто через свой аккаунт на OpenAI?
janvarev Автор
20.09.2023 11:02+1Промежуточный провайдер, но разрешите, я не буду вдаваться в детали :)
gentux
20.09.2023 11:02+1Предположу https://github.com/xtekky/gpt4free
janvarev Автор
20.09.2023 11:02Нет, но вы можете мне не верить :)
Вообще имхо проблема такого рода проектов - в них с завидной периодичностью всё отваливается ввиду бесплатности и смены протоколов + на лимиты запросов там попасть очень просто.
stas_grishaev
20.09.2023 11:02Подключил пробный период и на моделях gpt4/claude-2 ловится вот такая ошибка.
janvarev Автор
20.09.2023 11:02Посмотрел. Оплата, как я говорил, идёт за запросы - небольшой баланс, выдаваемый на тест, вы уже почти израсходовали несколькими запросами до этого (2.1 осталось на аккаунте), ошибка "Потенциально ваш запрос превышает бюджет".
Claude2 и gpt4 этому особо подвержены, они относительно дорогие на 1000 потенциальных символов.
В индивидуальном порядке ещё немного пополнил ваш баланс для тестирования.
theurus
20.09.2023 11:02+6Google Bard, Claude 2, MS Bing(aka GPT4) работают абсолютно бесплатно, нужен только впн что бы вырваться из чебурнета. А еще есть алиса и гигачад Ж) тоже совсем бесплатные.
Как можно в таких шикарных условия пытаться впаривать платный чатГПТ, доколе?
Бесплатный копилот для vscode и других тоже есть - Codeium.
ps гигачат сегодня в телеге для всех открылся. да и снова бесплатно https://t.me/gigachat_bot
vagon333
20.09.2023 11:02+1Любопытное решение.
Проблем с доступом нет, но есть хотелка автоматизировать постановку и обработку заданий.
Написал простенький репозиторий промптов.
Ниже пара скриншотов, может кому идеи пригодятся.
Или можно потрещать на эту тему, если обществу будет польза.Домашний репозиторий промтов
janvarev Автор
20.09.2023 11:02К сожалению, не до конца понятно, как работает система промтов, но выглядит интересно.
Понял, что строится mermaid диаграмма по анализу кода. Немного вопрос - а как загружается код при вызове? В 16k контекст (вижу по последней диаграмме) помещается весь, что ли?
vagon333
20.09.2023 11:02Из 2х скриншотов, конечно, не понятно, но в целом:
1. Есть Репозиторий промптов, заточенные под разные задачи с разными настройками: модель, температура, источник данных, скрипт для обработки результата.
2. Есть механизм вызова №1 через API.
3. Есть лог вызовов №1 со скриптом последующей обработки результата - сохранение в базе, или вызов след. промпта.Вкратце - это все.
Пользы:
1. абстракция от промптов - есть исполнитель задачи (под капотом - промпт с настройками ввода-вывода)
2. безопасный вызов (вызывающие должны иметь разрешение на работу с каждым промптом)
3. общение через API
4. хранение в базе.
Dancho67
20.09.2023 11:02Вы случаем с недавно почившей ChimeraGPT дела не имели? Уж очень описание похоже, да и функционал +-
janvarev Автор
20.09.2023 11:02Да, видел я этот проект, но как писал выше: https://habr.com/ru/articles/762248/comments/#comment_25982824 - такого рода проекты предоставления бесплатного доступа очень неустойчивы. Нет, к этому мы тоже отношения не имеем :)
theurus
20.09.2023 11:02+1Химера живее всех живых, работает уже очень долго, можно сказать основной поставщик для халявного бота https://t.me/kun4sun_bot
theurus
20.09.2023 11:02Кстати о ботах в телеге, если вам не хочется поднимать своего chatGPT бота то можно просто вставить свой ключ в этого и поехать https://t.me/chat_GPT_free_007_bot
Taper32
20.09.2023 11:02Добрый день, вопрос от непрофессионала - можно ли все это еще сильнее упростить, написав приложение для смартфона?
janvarev Автор
20.09.2023 11:02Если именно приложение - то надо найти то, которое позволит подставлять ключи и URL сервера, возможно, такие уже есть.
Если просто доступ с телефона - то у нас чатом вполне себе можно пользоваться в вебе со смартфона, там верстка мобайл-френдли.
Suoriks
Попытался зарегистрироваться, но форма сказала мне "что-то пошло не так".
janvarev Автор
Пожалуйста, попробуйте еще раз - я смотрю, вроде сейчас пользователи регистрируются.