Tutorial API DeepSeek: V4 Flash / Pro con Python e JavaScript
Chiama DeepSeek V4 Flash e Pro tramite APIMaster con curl, Python e JavaScript. Configura la tua chiave API, trasmetti le risposte in streaming e risolvi gli errori comuni.
Puoi chiamare DeepSeek con l'SDK OpenAI? Sì. Tramite APIMaster, imposta l'URL di base dell'API su https://apimaster.ai/v1, usa la tua chiave API APIMaster e seleziona deepseek-v4-flash o deepseek-v4-pro. Questa guida copre quella configurazione del gateway; una chiave emessa da un altro provider non è intercambiabile.
Ultimo test: 2026-09-07. Entrambi i modelli hanno restituito HTTP 200 e il testo previsto nel nostro test Chat Completions. Codex CLI 0.153.4 e Claude Code 2.1.239 hanno anche completato test di testo e di lettura file tramite lo stesso gateway. Questi sono brevi controlli funzionali, non un benchmark di lunga durata o di affidabilità. Gli esempi Python, JavaScript e di streaming di seguito dimostrano l'uso corrispondente dell'API; non sono risultati di benchmark separati.
1. Ottieni la tua chiave e scegli un modello
Crea un account e ottieni una chiave API. Assicurati che la chiave abbia accesso al modello selezionato e una quota sufficiente. Controlla i prezzi correnti nel marketplace dei modelli; le tariffe possono variare in base alla rotta e al tempo.
| Impostazione | Valore |
|---|---|
| URL di base SDK | https://apimaster.ai/v1 |
| Endpoint HTTP | POST https://apimaster.ai/v1/chat/completions |
| Autorizzazione | Authorization: Bearer YOUR_APIMASTER_API_KEY |
| Modello Flash | deepseek-v4-flash |
| Modello Pro | deepseek-v4-pro |
Entrambi i modelli usano la stessa struttura di richiesta. Inizia con uno dei due modelli, poi confronta i risultati sul tuo carico di lavoro. Sostituisci YOUR_APIMASTER_API_KEY di seguito con la tua chiave localmente; non commetterla nel controllo del codice sorgente o metterla nel codice del browser.
macOS / Linux:
export APIMASTER_API_KEY='YOUR_APIMASTER_API_KEY'
Windows PowerShell:
$env:APIMASTER_API_KEY = 'YOUR_APIMASTER_API_KEY'
Queste variabili si applicano al terminale corrente. Esegui gli esempi seguenti da quel terminale.
2. Effettua la tua prima richiesta con curl
Il seguente comando usa la sintassi della shell macOS / Linux. Gli utenti Windows possono usare l'esempio Python multipiattaforma di seguito.
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
}'
Previsto: HTTP 200 e choices[0].message.content uguale a DEEPSEEK_TEST_OK. Cambia solo model in deepseek-v4-pro per ripetere il test. La risposta può includere un nome di modello con versione; continua a usare gli ID di modello pubblici sopra nelle richieste.
3. Chiama DeepSeek da Python
Installa l'SDK:
python -m pip install openai
Salva come deepseek_example.py, poi esegui 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)
Per un'attività di codifica, sostituisci il prompt con i tuoi requisiti. Aumenta il budget di output per risposte più lunghe; il breve budget di test non è adatto per generare un'applicazione completa.
4. Chiama DeepSeek da JavaScript
Usa un ambiente Node.js lato server:
npm install openai
Salva come deepseek_example.mjs, poi esegui 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. Trasmetti la risposta finale in streaming
Usando il client Python di cui sopra:
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()
Questo stampa il testo della risposta finale da content. Alcune risposte espongono anche reasoning_content; è separato dalla risposta finale. Non assumere che ogni chunk di streaming contenga testo o una voce choices.
Risoluzione dei problemi
| Sintomo | Cosa controllare |
|---|---|
| 401 | Usa una chiave APIMaster, controlla gli spazi bianchi e l'header Bearer, e conferma che la variabile d'ambiente sia impostata in questo terminale. |
| 403 o errore di accesso al modello | Controlla i permessi del modello della chiave e le restrizioni dell'account. |
| 404 | Usa /v1/chat/completions; non duplicare /v1 o aggiungere l'endpoint a un URL di base SDK. |
| 429 o quota insufficiente | Leggi il corpo dell'errore per distinguere un limite di velocità dall'esaurimento della quota. Riprova con backoff per i limiti di velocità; controlla il saldo per errori di quota. |
| Risposta vuota o troncata | Ispeziona finish_reason, aumenta il budget di token e distingui content dai campi di ragionamento. |
| Timeout o 5xx | Registra timestamp e ID richiesta, riprova con backoff e contatta il supporto se persiste. Non inviare mai la tua chiave completa in un rapporto di bug. |
Domande frequenti
La chiave API è la stessa di una chiave ufficiale DeepSeek?
No. Questo tutorial usa una chiave emessa da APIMaster con l'endpoint di APIMaster. Mantieni la chiave e l'endpoint del provider emittente accoppiati.
Posso passare da Flash a Pro senza riscrivere la mia integrazione?
Sì, cambia il campo model tra deepseek-v4-flash e deepseek-v4-pro, purché la tua chiave possa accedere a entrambi. Controlla l'output di ciascun modello e i prezzi correnti per il tuo carico di lavoro.
Una richiesta riuscita dimostra l'identità del modello sottostante?
No. Il successo HTTP e un nome di modello restituito stabiliscono che una richiesta è stata completata; non verificano in modo indipendente l'identità del modello.
Posso usare questi modelli in Codex e Claude Code?
Le nostre configurazioni testate hanno completato richieste di testo e di lettura file in entrambi i CLI. I protocolli differiscono: Codex usa /v1/responses, mentre Claude Code usa /v1/messages. Segui le guide dedicate piuttosto che sostituire l'endpoint Chat Completions in una configurazione CLI.