Руководство по API DeepSeek: V4 Flash / Pro с Python и JavaScript
Вызывайте DeepSeek V4 Flash и Pro через APIMaster с помощью curl, Python и JavaScript. Настройте свой API-ключ, стримите ответы и устраняйте распространенные ошибки.
Можно ли вызывать DeepSeek с помощью OpenAI SDK? Да. Через APIMaster установите базовый URL API на https://apimaster.ai/v1, используйте свой API-ключ APIMaster и выберите deepseek-v4-flash или deepseek-v4-pro. Это руководство описывает эту конфигурацию шлюза; ключ, выданный другим провайдером, не является взаимозаменяемым.
Последнее тестирование: 2026-09-07. Обе модели вернули HTTP 200 и ожидаемый текст в нашем тесте Chat Completions. Codex CLI 0.153.4 и Claude Code 2.1.239 также успешно завершили тесты инструментов для текста и чтения файлов через тот же шлюз. Это краткие функциональные проверки, а не бенчмарк на длинный контекст или надежность. Примеры на Python, JavaScript и стриминг ниже демонстрируют соответствующее использование API; они не являются отдельными результатами бенчмарков.
1. Получите ключ и выберите модель
Создайте аккаунт и получите API-ключ. Убедитесь, что ключ имеет доступ к выбранной модели и достаточную квоту. Проверьте текущие цены в маркетплейсе моделей; тарифы могут варьироваться в зависимости от маршрута и времени.
| Настройка | Значение |
|---|---|
| Базовый URL SDK | https://apimaster.ai/v1 |
| HTTP endpoint | POST https://apimaster.ai/v1/chat/completions |
| Авторизация | Authorization: Bearer YOUR_APIMASTER_API_KEY |
| Модель Flash | deepseek-v4-flash |
| Модель Pro | deepseek-v4-pro |
Обе модели используют одинаковую структуру запроса. Начните с любой модели, затем сравните результаты на своей рабочей нагрузке. Замените YOUR_APIMASTER_API_KEY ниже на свой ключ локально; не сохраняйте его в системе контроля версий и не помещайте в код браузера.
macOS / Linux:
export APIMASTER_API_KEY='YOUR_APIMASTER_API_KEY'
Windows PowerShell:
$env:APIMASTER_API_KEY = 'YOUR_APIMASTER_API_KEY'
Эти переменные применяются к текущему терминалу. Запускайте следующие примеры из этого терминала.
2. Сделайте первый запрос с помощью curl
Следующая команда использует синтаксис оболочки macOS / Linux. Пользователи Windows могут использовать кросс-платформенный пример на Python ниже.
curl --fail-with-body 'https://apimaster.ai/v1/chat/completions' \
-H "Authorization: Bearer $APIMASTER_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "Reply with exactly: DEEPSEEK_TEST_OK"}],
"max_tokens": 256,
"stream": false
}'
Ожидается: HTTP 200 и choices[0].message.content равный DEEPSEEK_TEST_OK. Измените только model на deepseek-v4-pro, чтобы повторить тест. Ответ может содержать версионированное имя модели; продолжайте использовать указанные выше публичные идентификаторы моделей в запросах.
3. Вызов DeepSeek из Python
Установите SDK:
python -m pip install openai
Сохраните как deepseek_example.py, затем запустите python deepseek_example.py:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APIMASTER_API_KEY"],
base_url="https://apimaster.ai/v1",
)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Reply with exactly: DEEPSEEK_TEST_OK"}],
max_tokens=256,
)
print(response.choices[0].message.content)
Для задачи программирования замените подсказку на свои требования. Увеличьте бюджет вывода для более длинных ответов; короткий тестовый бюджет не подходит для генерации полного приложения.
4. Вызов DeepSeek из JavaScript
Используйте серверную среду Node.js:
npm install openai
Сохраните как deepseek_example.mjs, затем запустите node deepseek_example.mjs:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.APIMASTER_API_KEY,
baseURL: "https://apimaster.ai/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4-pro",
messages: [{ role: "user", content: "Reply with exactly: DEEPSEEK_TEST_OK" }],
max_tokens: 256,
});
console.log(response.choices[0].message.content);
5. Стриминг финального ответа
Используя Python client выше:
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Explain a Python dictionary in three sentences."}],
max_tokens=1024,
stream=True,
)
for chunk in stream:
if not chunk.choices:
continue
text = chunk.choices[0].delta.content
if text:
print(text, end="", flush=True)
print()
Это выводит текст финального ответа из content. Некоторые ответы также содержат reasoning_content; он отделен от финального ответа. Не предполагайте, что каждый стриминговый чанк содержит текст или запись choices.
Устранение неполадок
| Симптом | Что проверить |
|---|---|
| 401 | Используйте ключ APIMaster, проверьте пробелы и заголовок Bearer, а также убедитесь, что переменная окружения установлена в этом терминале. |
| 403 или ошибка доступа к модели | Проверьте разрешения модели для ключа и ограничения учетной записи. |
| 404 | Используйте /v1/chat/completions; не дублируйте /v1 и не добавляйте endpoint к базовому URL SDK. |
| 429 или недостаточная квота | Прочитайте тело ошибки, чтобы отличить ограничение скорости от исчерпания квоты. Повторите с задержкой для ограничений скорости; проверьте баланс для ошибок квоты. |
| Пустой или обрезанный ответ | Проверьте finish_reason, увеличьте бюджет токенов и различайте content и поля рассуждений. |
| Тайм-аут или 5xx | Запишите временную метку и ID запроса, повторите с задержкой и обратитесь в поддержку, если проблема сохраняется. Никогда не отправляйте полный ключ в отчете об ошибке. |
Часто задаваемые вопросы
Тот же ли это API-ключ, что и официальный ключ DeepSeek?
Нет. В этом руководстве используется ключ, выпущенный APIMaster, с endpoint APIMaster. Держите ключ и endpoint его провайдера в паре.
Могу ли я переключаться между Flash и Pro без переписывания интеграции?
Да, измените поле model между deepseek-v4-flash и deepseek-v4-pro, если ваш ключ имеет доступ к обеим. Проверьте вывод каждой модели и текущие цены для вашей рабочей нагрузки.
Доказывает ли успешный запрос идентичность базовой модели?
Нет. HTTP-успех и возвращенное имя модели подтверждают, что запрос завершен; они не подтверждают независимо идентичность модели.
Могу ли я использовать эти модели в Codex и Claude Code?
Наши протестированные конфигурации успешно выполнили запросы инструментов для текста и чтения файлов в обоих CLI. Протоколы различаются: Codex использует /v1/responses, а Claude Code использует /v1/messages. Следуйте специальным руководствам, а не подставляйте endpoint Chat Completions в конфигурацию CLI.