Samouczek API DeepSeek: V4 Flash / Pro z Pythonem i JavaScriptem
Wywołaj DeepSeek V4 Flash i Pro przez APIMaster za pomocą curl, Pythona i JavaScriptu. Skonfiguruj swój klucz API, strumieniuj odpowiedzi i rozwiązuj typowe błędy.
Czy możesz wywołać DeepSeek za pomocą SDK OpenAI? Tak. Przez APIMaster ustaw bazowy URL API na https://apimaster.ai/v1, użyj swojego klucza API APIMaster i wybierz deepseek-v4-flash lub deepseek-v4-pro. Ten przewodnik obejmuje tę konfigurację bramy; klucz wydany przez innego dostawcę nie jest zamienny.
Ostatnio testowano: 2026-09-07. Oba modele zwróciły HTTP 200 i oczekiwany tekst w naszym teście Chat Completions. Codex CLI 0.153.4 i Claude Code 2.1.239 również ukończyły testy narzędzi tekstowych i odczytu plików przez tę samą bramę. Są to krótkie testy funkcjonalne, a nie benchmark długiego kontekstu lub niezawodności. Przykłady w Pythonie, JavaScripcie i strumieniowaniu poniżej demonstrują odpowiednie użycie API; nie są to osobne wyniki benchmarków.
1. Uzyskaj klucz i wybierz model
Utwórz konto i uzyskaj klucz API. Upewnij się, że klucz ma dostęp do wybranego modelu i wystarczający limit. Sprawdź aktualne ceny w marketplace modeli; stawki mogą się różnić w zależności od trasy i czasu.
| Ustawienie | Wartość |
|---|---|
| Bazowy URL SDK | https://apimaster.ai/v1 |
| Endpoint HTTP | POST https://apimaster.ai/v1/chat/completions |
| Autoryzacja | Authorization: Bearer YOUR_APIMASTER_API_KEY |
| Model Flash | deepseek-v4-flash |
| Model Pro | deepseek-v4-pro |
Oba modele używają tego samego kształtu żądania. Zacznij od dowolnego modelu, a następnie porównaj wyniki na własnym obciążeniu. Zastąp YOUR_APIMASTER_API_KEY poniżej swoim kluczem lokalnie; nie zatwierdzaj go w systemie kontroli wersji ani nie umieszczaj w kodzie przeglądarki.
macOS / Linux:
export APIMASTER_API_KEY='YOUR_APIMASTER_API_KEY'
Windows PowerShell:
$env:APIMASTER_API_KEY = 'YOUR_APIMASTER_API_KEY'
Te zmienne dotyczą bieżącego terminala. Uruchom poniższe przykłady z tego terminala.
2. Wykonaj pierwsze żądanie za pomocą curl
Poniższe polecenie używa składni powłoki macOS / Linux. Użytkownicy systemu Windows mogą skorzystać z poniższego przykładu w Pythonie, który jest wieloplatformowy.
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
}'
Oczekiwane: HTTP 200 i choices[0].message.content równe DEEPSEEK_TEST_OK. Zmień tylko model na deepseek-v4-pro, aby powtórzyć test. Odpowiedź może zawierać wersjonowaną nazwę modelu; nadal używaj publicznych identyfikatorów modeli powyżej w żądaniach.
3. Wywołaj DeepSeek z Pythona
Zainstaluj SDK:
python -m pip install openai
Zapisz jako deepseek_example.py, a następnie uruchom 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)
W przypadku zadania kodowania zastąp prompt swoimi wymaganiami. Zwiększ budżet wyjściowy dla dłuższych odpowiedzi; krótki budżet testowy nie jest odpowiedni do generowania kompletnej aplikacji.
4. Wywołaj DeepSeek z JavaScriptu
Użyj środowiska Node.js po stronie serwera:
npm install openai
Zapisz jako deepseek_example.mjs, a następnie uruchom 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. Strumieniuj odpowiedź końcową
Używając powyższego client w Pythonie:
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()
To wypisuje tekst odpowiedzi końcowej z content. Niektóre odpowiedzi udostępniają również reasoning_content; jest ono oddzielone od odpowiedzi końcowej. Nie zakładaj, że każdy fragment strumienia zawiera tekst lub wpis choices.
Rozwiązywanie problemów
| Objaw | Co sprawdzić |
|---|---|
| 401 | Użyj klucza APIMaster, sprawdź białe znaki i nagłówek Bearer oraz potwierdź, że zmienna środowiskowa jest ustawiona w tym terminalu. |
| 403 lub błąd dostępu do modelu | Sprawdź uprawnienia modelu klucza i ograniczenia konta. |
| 404 | Użyj /v1/chat/completions; nie duplikuj /v1 ani nie dołączaj endpointu do bazowego URL SDK. |
| 429 lub niewystarczający limit | Przeczytaj treść błędu, aby odróżnić limit szybkości od wyczerpania limitu. Ponów próbę z backoffem w przypadku limitów szybkości; sprawdź saldo w przypadku błędów limitu. |
| Pusta lub obcięta odpowiedź | Sprawdź finish_reason, zwiększ budżet tokenów i odróżnij content od pól rozumowania. |
| Limit czasu lub 5xx | Zapisz znacznik czasu i identyfikator żądania, ponów próbę z backoffem i skontaktuj się z pomocą techniczną, jeśli problem będzie się powtarzał. Nigdy nie wysyłaj pełnego klucza w raporcie o błędzie. |
Często zadawane pytania
Czy klucz API jest taki sam jak oficjalny klucz DeepSeek?
Nie. Ten samouczek używa klucza wydanego przez APIMaster z endpointem APIMaster. Trzymaj klucz i endpoint jego dostawcy w parze.
Czy mogę przełączać się między Flash i Pro bez przepisywania integracji?
Tak, zmień pole model między deepseek-v4-flash a deepseek-v4-pro, pod warunkiem że twój klucz ma dostęp do obu. Sprawdź wyniki każdego modelu i aktualne ceny dla swojego obciążenia.
Czy udane żądanie dowodzi tożsamości bazowego modelu?
Nie. Sukces HTTP i zwrócona nazwa modelu potwierdzają, że żądanie zostało ukończone; nie weryfikują niezależnie tożsamości modelu.
Czy mogę używać tych modeli w Codex i Claude Code?
Nasze przetestowane konfiguracje ukończyły żądania tekstowe i narzędzi odczytu plików w obu CLI. Protokoły się różnią: Codex używa /v1/responses, podczas gdy Claude Code używa /v1/messages. Postępuj zgodnie z dedykowanymi przewodnikami, zamiast podstawiać endpoint Chat Completions do konfiguracji CLI.