DeepSeek API Integration Guide: OpenAI-Compatible Requests through ECAIX
Integrationsguide til DeepSeek API: OpenAI-lignende Anfrages gennem ECAIX
Denne vejledning viser, hvordan du tester en DeepSeek-model-ID gennem ECAIX ved hjælp af en OpenAI-lignende API-endept. Den dækker den mindste funktionelle Anfrage, Python- og curl-eksempler, model-ID-verifikation, streaming, struktureret output, værktøjer og en diagnostisk vej til almindelige fejl.
Vejledningen beskriver ECAIX-gateway adgang til en model-ID, der er tilgængelig i den aktuelle ECAIX-katalog. Den påstår ikke, at ECAIX er den officielle DeepSeek-API-endept eller at alle DeepSeek-funktioner er tilgængelige gennem alle gateway-veje. Kontroller den live-modelside og leverandør-dokumentationen, før du flytter en arbejdsbelastning til produktionsmiljø.
Hvad denne vejledning verifierer
Eksemplerne bruger den ECAIX OpenAI-lignende vej og en model-ID, der er synlig i den offentlige katalog ved offentliggørelsesdatoen. Tilgængelighed, routing, grænser, priser og støttede funktioner kan ændre sig. Behandle kataloget og API-dokumentationen som den aktuelle kilde til sandhed.
Hurtig start
Gennemføre denne sekvens, hvis du allerede har en OpenAI SDK-applikation:
- Åbn DeepSeek v4.1 Flash-modelsiden og bekræft, at ID'en er tilgængelig.
- Opret en ECAIX API-nøgle.
- Indstil den OpenAI-lignende base-URL til
https://ecaix.com/api/ai/v1. - Bevar SDK og applikationskoden, hvor det er muligt.
- Kør den mindste Anfrage nedenfor.
- Tilføj streaming, JSON-output eller værktøjer først, når den grundlæggende Anfrage fungerer.
Endepunkt og model-ID
For OpenAI-lignende klienter brug:
Base URL: https://ecaix.com/api/ai/v1
Model: deepseek-v4.1-flash
Model-ID'en er ikke en fastlåst garantier i en blogindlæg. Bekræft den på live-modeldirektoriet før hver ny integration eller deployment. Hvis du har brug for en anden DeepSeek-familie, kopier den præcise ID fra modeldetaljerne i stedet for at gætte en suffix.
Endepunktformatet spiller også en rolle. SDK'en skal modtage basevejen, der slutter på /v1; klienten tilføjer /chat/completions eller en anden operationvej. Tilføj ikke /chat/completions til base_url, når SDK'en allerede tilføjer det.
Python med OpenAI SDK
Installer eller opgradér OpenAI Python SDK'en i din virtuelle miljø:
python -m pip install --upgrade openai
Bruger derefter ECAIX base-URL'en og API-nøglen:
const client = new OpenAI({
apiKey: process.env.ECAIX_API_KEY,
baseURL: "https://ecaix.com/api/ai/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4.1-flash",
messages: [
{ role: "user", content: "Return one short sentence about API testing." },
],
max_tokens: 128,
});
console.log(response.choices[0].message.content);
Brug server-side-kode til API-Anfragen. En browser-applikation skal kaldte din egen backend i stedet for at udskrive en ECAIX-nøgle i klient-side JavaScript.
Curl-diagnostisk Anfrage
Hvis SDK'en fejler, fjern SDK'en fra ligningen og test endepunktet direkte. Gem headers og kroppen adskilt, så du kan skelne mellem et HTTP-problem og et responsformat-problem.
curl -sS -D /tmp/ecaix-deepseek-headers.txt \
-o /tmp/ecaix-deepseek-response.json \
-w '\nHTTP %{http_code}\n' \
"https://ecaix.com/api/ai/v1/chat/completions" \
-H "Authorization: Bearer ${ECAIX_API_KEY}" \
-H "content-type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [
{"role": "user", "content": "Reply with one short sentence."}
],
"max_tokens": 128
}'
Fjern ikke de gemte headers eller responsen i et offentligt issue uden at fjerne API-nøgler, Anfrag-ID'er, prompts, repositoryveje og kundeoplysninger.
Diagnostik af responsen
Følg denne rækkefølge:
- HTTP-status: bestem, om Anfragen nåede et gyldigt endepunkt.
- Responskrop: læs leverandørens eller gatewayens fejlcode.
- Model-ID: kopier den præcise ID fra den aktuelle modeldirektorie.
- Authentificering: kontrollér nøgleheader, konto og tilladelser.
- Anfragens form: reducer kroppen til
model,messagesog en lille outputgrænse. - Funktionfelt: tilføj streaming, JSON eller værktøjer ét ad gangen.
- SDK-adfærd: sammenlign SDK-Anfragen med den direkte curl-Anfrage.
Dette forhindrer en klientbiblioteksfejl i at blive forvekslet med model-routing eller konto-tilladelser.
Streaming-responser
Hvis applikationen har brug for incrementel output, tilføj streaming først efter, at en normal Anfrage lykkedes:
stream = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Summarize API retries in three points."}],
stream=True,
max_tokens=256,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
Den præcise adfærd afhænger af endepunktet og SDK'en. Verificer, hvordan din rammeverktøj håndterer en tom delta, en slutbruger-event, forbindelsesafbrydelse og [DONE]-stil afslutning. Kald ikke en streaming-implementering produktionsklar, før du har testet afbrydelser og genstart.
Struktureret output og JSON
Hvis du har brug for maskinlæselig output, start med en almindelig Anfrage og tilføj derefter den mindste strukturerede-output-option, der støttes af endepunktet og modellen. Validér den returnerede indhold med en reel JSON-parser. En prompt, der siger "returner JSON", er ikke det samme som en schema-støttet respons.
import json
response = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[
{
"role": "user",
"content": "Return a JSON object with keys title and priority."
}
],
response_format={"type": "json_object"},
max_tokens=128,
)
payload = json.loads(response.choices[0].message.content)
print(payload["title"])
Om response_format accepteres, kan afhænge af modellen og vejen. Hvis endepunktet returnerer en ustøttet-parametre-fejl, fjern feltet og verificer vejens dokumentation, før du prøver en anden format.
Funktionelle kald og værktøjer
Værktøjkald kræver en separat test fra tekstgenerering. Start med et harmløst funktion og undersøg den returnerede navn og argumenter, før du udfører noget.
tools = [
{
"type": "function",
"function": {
"name": "get_demo_status",
"description": "Return a fixed status for a local compatibility test.",
"parameters": {
"type": "object",
"properties": {},
"additionalProperties": False,
},
},
}
]
response = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Check the demo status."}],
tools=tools,
tool_choice="auto",
max_tokens=128,
)
print(response.choices[0].message.tool_calls)
En model kan returnere en gyldig tekstrespons, mens værktøjkald mislykkes på grund af schema-konvertering, ustøttede parametre eller klient-specifik adfærd. Udfør aldrig returnerede værktøj-argumenter mod et produktionssystem, før du har valideret schemat og tilføjet autorisationskontroller.
OpenAI-kompatible og Anthropic-kompatible veje
ECAIX tilbyder forskellige kompatibilitetsflader for forskellige klienter:
| Klient eller workflow | Dokumentationsvej | Hvad skal man verificere |
|---|---|---|
| OpenAI Python/Node SDK | /api/ai/v1 | Chat Completions, Responses, streaming, tools |
| Anthropic-stil klient | /api/ai/v1/anthropic | Messages feltter, headers, content blocks |
| Claude Code tredjeparts workflow | /api/ai/v1/anthropic | Providerspecifik adfærd; ikke officielt Anthropic support |
Se Chat Completions dokumentation, Responses dokumentation, og Anthropic Messages dokumentation før du vælger en vej. Det samme model-ID kan ikke vise identiske felt eller adfærd på hver kompatibilitetsflade.
Aktuelle modeldetaljer
Bruger live detaljerings sider til at verificere evner og tilgængelighed:
Disse sider er mere pålidelige end en statisk artikel for aktuelle model-ID'er, kontekstinformation og priser.
Almindelige fejl
| Status eller symptom | Likelig årsag | Diagnostisk handling |
|---|---|---|
401 | Manglende eller forkert bearer-token | Kontroller Authorization, miljøvariable og nøglestatus |
403 | Nøgle eller konto mangler tilladelse | Kontroller kontoadgang og modeltilgængelighed |
404 | Forkert base URL eller vejsuffiks | Brug /api/ai/v1/chat/completions for den direkte curl-test |
400 | Ugyldig krop eller uunderstøttet felt | Fjern de valfri felt og genforsøg med minimal krop |
429 | Rate eller kvotgrænse | Notér responsheaders, langsommere og kontroller kontogrænser |
5xx | Gateway eller opstrømsfejl | Gem request-tid og respons-ID; genforsøg efter din politik |
| Model ikke fundet | Fejltypografi, fjernet model eller rutefejl | Kopier den præcise model-ID fra /models |
| Tekst fungerer, men tools fejler | Tool-schema eller model-kompatibilitetsmismatch | Test en harmløs funktion og inspicer de returnerede argumenter |
| SDK fungerer anderledes end curl | SDK-standarder eller vejkonstruktion | Print SDK-request-konfigurationen og sammenlign vejene |
Sikkerhed og produktionscheckliste
Før du går videre fra et testprojekt, bekræft:
- API-nøgler gemmes server-side og kan roteres.
- Prompts og respons ikke indeholder ugodkendte hemmeligheder eller kundeoplysninger.
- Du forstår, om gateways logger request og hvor længe loggen bevares.
- Modeltilgængelighed og priser er verificeret fra live-siderne.
- Timeout, genopretning, idempotens og rategrænser håndteres af din applikation.
- Streaming-afslutninger ikke skaber duplikater.
- Tool-kald har whitelist, validering, autorisation og audit-logger.
- Providers og gateways termer tillader den arbejdsbelastning, du planlægger at sende.
Dokumentér integrationen før release
Skriv ned dato, klientversion, model-ID, endpoint, HTTP-status og de faktiske testfunktioner, du har udført. Hvis en test ikke er udført, markér det som uverificeret. Denne dokumentation gør det nemmere at sammenligne næste model eller gateway-opdatering og forhindrer en gammel blog-eksempel i at blive et uunderstøttet produktionsantagelse.
FAQ
Er dette det officielle DeepSeek API-endpoint?
Nei. Denne artikel dokumenterer ECAIX-gateway adgang til en model-ID, der er udgivet i ECAIX-katalogen. Brug officielle DeepSeek API-dokumentation for DeepSeeks egen endpoint, kontoregler og providerspecifikke evner.
Kan jeg bruge OpenAI SDK uden at omskrive min applikation?
Mange OpenAI SDK-applikationer kan starte med at ændre base-URL, API-nøgle og model-ID. Du skal stadig teste feltstøtte, streaming, tool-kald, responsformat, fejlbehandling og eventuelle providerspecifikke funktioner, der bruges af din applikation.
Hvilken DeepSeek-model skal jeg bruge?
Start med modelkataloget og vælg efter opgave: programmering, logik, kontekstlængde, multimodal indgang eller kostnadsbehov. Vælg ikke kun efter et navn kopieret fra en gammel artikel. Verificer den aktuelle model-ID og test den mod dine egne prompts.
Kan jeg bruge dette med Claude Code?
Anthropic-kompatible vejen kan testes som tredjeparts-provider workflow, men Anthropic understøtter ikke routing af Claude Code til ikke-Claude-modeller gennem en gateway. Præsenter ikke dette som officielt Anthropic-support eller som en garanti for fuld kompatibilitet med Claude Code.
Hvor kan jeg kontrollere aktuelle priser og grænser?
Brug ECAIX-prisingside, modelkatalog og din kontokontrol. Hardkod ikke en pris fra denne artikel i en applikation.
Næste skridt
- Bekræft model-ID på den aktuelle DeepSeek-modelside.
- Skab en ECAIX API-nøgle.
- Læs Chat Completions-dokumentationerne.
- Udfør den direkte curl-diagnose.
- Gå videre til SDK-beispiel kun efter at den direkte request lykkedes.
- Tilføj streaming, JSON eller tools en funktion ad gangen.