Создайте ключ в кабинете API
Откройте раздел ключей DeepSeek и войдите в аккаунт. Создайте отдельный ключ для пробного проекта. Сразу перенесите его в менеджер секретов или передайте через переменную окружения текущей оболочки. Ключ в браузерном JavaScript будет виден посетителям. Для веб-приложения вызов API должен идти с вашего сервера. В локальном опыте достаточно закрыть терминал после теста и не добавлять временные файлы в Git.
Проверьте состояние баланса в платформе и актуальные модели в быстром старте DeepSeek. Имя модели берите из документации, а не из заголовка чат-интерфейса. В образце используется deepseek-flash и протокол совместимого с OpenAI чата. API и обычный чат открываются по разным адресам, ключ выдаётся именно в кабинете API. Выберите тестовую задачу без данных клиента: например, запросите одно короткое слово.
Выполните один запрос в пустой папке
Для Bash безопасный интерактивный ввод можно сделать командой read -r -s -p 'DeepSeek API key: ' DEEPSEEK_API_KEY, затем export DEEPSEEK_API_KEY. Терминал не покажет вводимые символы. Этот синтаксис относится к Bash. Если работаете в другой оболочке, используйте её способ чтения секрета без вывода. Не включайте подробную трассировку, которая может показать заголовок авторизации. Запустите запрос из пустой папки, где допустимо создать файл response.json.
curl -sS --fail-with-body --max-time 45 \
https://api.deepseek.com/chat/completions \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"deepseek-flash","messages":[{"role":"user","content":"Reply with one word: OK."}],"stream":false}' \
-o response.jsonПри успешном запросе откройте response.json и найдите текст в choices[0].message.content. Ровно «OK» ждать не обязательно: цель теста в том, чтобы получить непустой ответ в ожидаемой структуре. Ответ удобно проверять по коду curl и содержимому файла вместе. Новый запуск может перезаписать старый результат, поэтому для диагностики сохраняйте разные ответы под разными именами. Образец команды проверен локально с подставным curl и контрольным JSON. Это проверка параметров и пути разбора. Для сетевой проверки нужен собственный ключ.
Разберите ошибку по коду
По справке DeepSeek код 401 связан с аутентификацией, 402 — с балансом, 429 — с ограничением частоты. При 401 проверьте, что переменная установлена именно в текущем терминале и относится к нужному сервису. При 402 сначала проверьте кабинет. При 429 уменьшите частоту и повторите позже. Проблему неверной модели ищите в тексте ошибки и сравнении имени с актуальным справочником. Если запрос завершился по времени ожидания, проверьте сеть и убедитесь, что повтор не запустит нежелательную серию платных вызовов.
После теста удалите переменную командой unset DEEPSEEK_API_KEY и сохраните лишь код без секрета. Если ключ случайно попал в коммит или журнал, отзовите его и выпустите новый. Для следующего шага добавьте обработку ошибок и логируйте код ответа, время и название модели. Этого достаточно, чтобы разбирать сбои без вывода авторизационного заголовка или пользовательских запросов.