Ненавижу платить за API, когда модель открыта. DeepSeek V4 R1 — монстр кодинга, но официальный API стоит денег. $200 в месяц за среднюю нагрузку — для пет-проекта жирно. А веб-чат DeepSeek бесплатный. Значит, надо заставить его работать как API. Так родился deepseek-chat-proxy — утилита, которая через реверс-инжиниринг веб-сессии превращает браузерный чат в OpenAI-совместимый эндпоинт.
Идея не нова. Тот же трюк с Windows Copilot давал бесплатный GPT-4. Но DeepSeek — модель с открытым весом, и её веб-версия не так агрессивно защищена. После $10.3 млрд инвестиций компания могла бы раскошелиться на бесплатный API, но пока — только через веб. Их ставка на открытые модели (обсуждали тут) не включает халявный доступ для разработчиков. Приходится выкручиваться.
Как это работает (и почему не разваливается)
Прокси — это легковесный Node.js/Go сервер, который:
- подменяет User-Agent и Cookie из реальной сессии DeepSeek Chat;
- перехватывает запросы к
/chat/completionsи переводит их в формат внутреннего API DeepSeek; - обрабатывает поток SSE (streaming) так, что клиент не замечает подмены.
В теории это работает так, но на практике... первый запуск сломался из-за устаревшего токена. DeepSeek использует короткоживущие сессии — час-два, потом надо перелогиниваться. Разработчики прокси решили это через автоматическое обновление куков с помощью Puppeteer. Не советую так делать, если не хотите, чтобы браузер запускался каждые 30 минут. Лучше вручную скопировать свежие куки и передать их в переменную окружения.
Звучит логично, но есть нюанс: DeepSeek может забанить аккаунт за автоматизацию. Я использую отдельный аккаунт для прокси, и пока живу.
Подключение за 5 минут (через Docker)
Самый быстрый способ — docker-compose. Клонируем репозиторий, правим .env:
# .env
DEEPSEEK_COOKIES='__cf_bm=xxx; session=yyy'
PORT=8080
ALLOWED_ORIGINS=*
Запускаем:
docker compose up -d
Всё. Теперь любой OpenAI-совместимый клиент может обращаться к http://localhost:8080/v1. Например, Open WebUI:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8080/v1", api_key="any-string")
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "Напиши hello world на Rust"}]
)
print(response.choices[0].message.content)
Работает. Даже steaming — stream=True отдаёт токены как положено. Я проверил с кастомными фронтендами — всё летает.
Сравнение с альтернативами
| Вариант | Цена | Скорость | Риски |
|---|---|---|---|
| deepseek-chat-proxy | Бесплатно (кроме трафика) | Как веб-чат (иногда медленнее) | Бан аккаунта, устаревание куков |
| Официальный API DeepSeek | $0.50/1M токенов | Высокая | Нет (легально) |
| Copilot proxy (аналогия) | Бесплатно | Средняя (зависит от Microsoft) | Блокировка корпоративных аккаунтов |
Очевидно, что прокси — это для экспериментов и прототипов. Для продакшена лучше купить официальный доступ. Но если хочется погонять DeepSeek V4 на задачах кодинга, не тратя ни цента — это вариант.
Подводные камни (их много)
- Куки живут недолго. Придётся раз в час перезапускать прокси со свежими данными. Автоматизация через Puppeteer жрёт память.
- Ограничения веб-чата. DeepSeek ограничивает число запросов в минуту. Прокси не увеличит лимит.
- Нет гарантий. Если DeepSeek изменит API — прокси сломается. За обновлениями надо следить.
- Этично ли? DeepSeek явно не разрешает использовать веб-чат как API. Но их ToS — серая зона. Я не несу ответственности.
Если вам надоело бороться с куками и хочется стабильного доступа сразу ко всем моделям (DeepSeek, GPT-4, Claude, Gemini) без реверс-инжиниринга, посмотрите на AITunnel — единый API-шлюз с предсказуемой ценой и легальным доступом. Сэкономите время и нервы.
Кому вообще это нужно?
- Хобби-разработчикам, которые тестируют агентов на Hermes или DeepSeek и не хотят платить за каждый токен.
- Исследователям, которые гоняют бенчмарки и не могут выбить бюджет.
- Студентам, пишущим диплом по LLM.
- Всем, кто хочет "пощупать" DeepSeek V4 R1 до покупки подписки.
Кстати, похожий подход используется в оптимизации фронтенда ChatGPT — там тоже перехватывают API. А для агентов, которым нужен веб-доступ, мы настраивали SearXNG. Всё завязано на том, чтобы не платить лишнего.
Запускайте прокси, играйтесь. Но помните: бесплатный сыр — только в мышеловке. Когда проект вырастет — переходите на официальный API или сервисы вроде AITunnel. А пока DeepSeek не передумал, пользуйтесь.