DeepSeek API Integration Guide: OpenAI-Compatible Requests through ECAIX
Integrering av DeepSeek API: OpenAI-lignende anrop gjennom ECAIX
Dette veilederet viser hvordan du tester en DeepSeek-modell-ID gjennom ECAIX ved bruk av en OpenAI-lignende API-endepunkt. Det dekker den minste fungerende anropet, Python- og curl-eksempler, modell-ID-verifisering, streaming, strukturert utgang, verktøy, og en diagnostisk vei for vanlige feil.
Veilederet beskriver ECAIX-gateways tilgang til en modell-ID som er tilgjengelig i den aktuelle ECAIX-katalogen. Det gjør ikke påstand om at ECAIX er det offisielle DeepSeek-API-endepunktet eller at alle DeepSeek-funksjoner er tilgjengelige gjennom alle gateways-veier. Kontroller den levende modell-siden og leverandør-dokumentasjonen før du flytter en arbeidslast til produksjon.
Hva dette veilederet verifiserer
Eksemplene bruker den ECAIX OpenAI-lignende veien og en modell-ID som er synlig i den offentlige katalogen ved utgivelsestidspunktet. Tilgjengelighet, routing, begrensninger, priser og støttede funksjoner kan endres. Behandle katalogen og API-dokumentasjonen som den aktuelle kilde til sannhet.
Hurtigstart
Bruk denne sekvensen hvis du allerede har en OpenAI SDK-applikasjon:
- Åpne siden for DeepSeek v4.1 Flash-modell og bekref at ID-en er tilgjengelig.
- Opprett en ECAIX API-nøkkel.
- Sett OpenAI-lignende baserettet URL til
https://ecaix.com/api/ai/v1. - Bevar SDK- og applikasjonskoden uendret der det er mulig.
- Utfør den minste anropet under.
- Tilsett streaming, JSON-utgang eller verktøy først etter at grunnleggende anrop fungerer.
Endepunkt og modell-ID
For OpenAI-lignende klienter bruk:
Base URL: https://ecaix.com/api/ai/v1
Model: deepseek-v4.1-flash
Modell-ID-en er ikke en permanent garantier i en bloggpost. Bekreft den i levende modell-katalogen før hver ny integrasjon eller utplassering. Hvis du trenger en annen DeepSeek-familie-medlem, kopier den eksakte ID-en fra modelldetaljer-siden i stedet for å gjette en suffiks.
Endepunktformatet er også viktig. SDK-en skal motta baseruten som slutter på /v1; klienten tilfører /chat/completions eller en annen operasjonsside. Tilføy ikke /chat/completions til base_url når SDK-en allerede tilfører det.
Python med OpenAI SDK
Installer eller oppgradér OpenAI Python SDK i din virtuelle miljø:
python -m pip install --upgrade openai
Deretter bruk ECAIX-baserettet og API-nøkkelen:
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);
Bruk server-side-kode for API-anropet. En browser-applikasjon bør ringe til egen backend i stedet for å eksponere ECAIX-nøkkelen i klient-side JavaScript.
Curl-diagnostisk anrop
Hvis SDK-en mislykkes, fjern SDK-en fra likheten og test endepunktet direkte. Lagre hode og kropp separat slik at du kan skille mellom 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 lagrede hode eller responsen i et offentlig issue uten å fjerne API-nøkler, anrop-ID-er, prompttekster, repository-patrer og kunde-data.
Diagnostisering av responsen
Bruk denne rekkefølgen:
- HTTP-status: bestem om anropet nådde et gyldig endepunkt.
- Respons-kropp: les leverandørens eller gateways-feil-kode.
- Modell-ID: kopier den eksakte ID-en fra den aktuelle modell-katalogen.
- Autentisering: kontroll nøkkelhode, konto og tillatelser.
- Anrop-form: reduser kroppen til
model,messagesog en liten utgangsbegrensning. - Funksjonsfelt: tilsett streaming, JSON eller verktøy en etter en.
- SDK-adferd: sammenlign SDK-anropet med det direkte curl-anropet.
Dette forhindrer at en klientbibliotek-feil blir forvekslet med modell-routing eller konto-tillatelser.
Streaming-responser
Hvis applikasjonen trenger incrementell utgang, tilsett streaming først etter at et normalt anrop fungerer:
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)
Det eksakte hendelsesadferden avhenger av endepunktet og SDK-en. Verifiser hvordan din rammeverk håndterer en tom delta, en sluttbruksevent, forstyrrelse av forbindelse og [DONE]-stilsavslutning. Ikke kaller en streaming-implementasjon produksjonsklar før du har testet avbrudd og gjenoppstart.
Strukturert utgang og JSON
Hvis du trenger maskinlesbar utgang, start med et vanlig anrop og tilsett deretter den minste strukturert-utgangsvalg som støttes av endepunktet og modellen. Valider den returnerte innholdet med en real JSON-parser. En prompt som sier "returner JSON" er ikke det samme som en schema-forpliktet 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 er akseptert kan avhenge av modellen og veien. Hvis endepunktet returnerer en ustøttet-parametere-feil, fjern feltet og verifiser dokumentasjonen for veien før du prøver en annen format.
Funksjonskalling og verktøy
Verktøykalling krever en separat test fra tekstgenerering. Start med en ufarlig funksjon og inspiser den returnerte navnet og argumentene før du utfører noe.
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 modell kan returnere en gyldig tekstrespons mens verktøykalling mislykkes på grunn av schema-konvertering, ustøttede parametere eller klient-spesifikk adferd. Ikke utfør tilbakekallte verktøyargerument mot en produksjonsmiljø før du har validert schemaet og tilført autorisasjonskontroll.
OpenAI-kompatible og Anthropic-kompatible veier
ECAIX tilbyr ulike kompatibilitetsflater for ulike klienter:
| Klient eller arbeidsflyt | Dokumentasjonsvei | Hva å verifisere |
|---|---|---|
| OpenAI Python/Node SDK | /api/ai/v1 | Chat Completions, Responses, streaming, tools |
| Anthropic-stil klient | /api/ai/v1/anthropic | Budsjettfelt, hoder, innholdsblokker |
| Claude Code tredjepartsarbeidsflyt | /api/ai/v1/anthropic | Providerspesifikk oppførsel; ikke offisiell Anthropic-støtte |
Les Chat Completions-dokumentasjonen, Responses-dokumentasjonen, og Anthropic Messages-dokumentasjonen før du velger en vei. Det samme modell-ID kan ikke vise identiske felt eller oppførsel på hver kompatibilitetsflate.
Aktuelle modelldetaljer
Bruk de levende detaljside for å sjekke evner og tilgjengelighet:
Disse sidene er mer pålitelige enn en statisk artikkel for nåværende modell-ID, kontekstinformasjon og prisinformasjon.
Vanlige feil
| Status eller symptom | Likelig årsak | Diagnostisk handling |
|---|---|---|
401 | Manglende eller feilaktig bearer-token | Kontroller Authorization, miljøvariabel og nøkkelstatus |
403 | Nøkkel eller konto mangler tillatelse | Kontroller kontoaksess og modelltilgjengelighet |
404 | Feil base-URL eller rute-ending | Bruk /api/ai/v1/chat/completions for direkte curl-test |
400 | Feil kropp eller uunderstøttet felt | Fjern valgfrie felt og prøv med minimal kropp |
429 | Rate eller kvotagrens | Lagre responshoder, reduser hastigheten og sjekk kontogrenser |
5xx | Gatewayside eller oppstrømsfeil | Lagre request-tid og respons-ID; prøv etter policy |
| Modell ikke funnet | Feilskrivning, fjernet modell eller rutefeil | Kopier det eksakte modell-ID fra /models |
| Tekst fungerer, verktøy mislykkes | Verktøyschema eller modellevne ikke match | Prøv en ufarlig funksjon og inspiser tilbakekastede argumenter |
| SDK fungerer annerledes enn curl | SDK-standard eller rutekonstruksjon | Skriv ut SDK-request-konfigurasjon og sammenlign veier |
Sikkerhet og produksjonskontroll
Før du går videre fra et testprosjekt, bekräft:
- API-nøkler lagres server-side og kan roteres.
- Prompts og responsene inneholder ikke godkjente hemmeligheter eller kundeinformasjon.
- Du forstår om gateways logger requester og hvor lenge loggene blir beholdt.
- Modelltilgjengelighet og priser er sjekket fra de levende sidene.
- Timeout, retries, idempotensitet og rate limits er håndtert av applikasjonen din.
- Streaming-disconnecter ikke skaper doble oppgaver.
- Verktøyskallinger har whitelist, validasjon, autorisasjon og auditlogs.
- Gateways og provider-tiltak tillater arbeidslasten du planlegger å sende.
Dokumenter integrasjonen før utgivelse
Skriv ned datoen, klientversjon, modell-ID, endpoint, HTTP-status og de funksjonstester du faktisk utførte. Hvis en test ikke ble utført, merker du det som uverifisert. Denne dokumentasjonen gjør det enklere å sammenligne neste modell eller gatewaysoppdatering og forhindrer at en gammel bloggartikkel blir en uunderstøttet produksjonsantakelse.
Vanlige spørsmål
Er dette det offisielle DeepSeek API-endpointet?
Nei. Denne artikkelen dokumenterer ECAIX-gateways tilgang til en modell-ID som er listet i ECAIX-katalogen. Bruk offisielle DeepSeek API-dokumentasjonen for DeepSeeks egen endpoint, kontoregler og providerspesifikk evne.
Kan jeg bruke OpenAI SDK uten å omskrive applikasjonen?
Mange OpenAI SDK-applikasjoner kan starte med å endre base-URL, API-nøkkel og modell-ID. Du må fortsatt teste feltstøtte, streaming, verktøyskallinger, responsformat, feilsøking og eventuelle providerspesifikke funksjoner som din applikasjon bruker.
Hvilken DeepSeek-modell skal jeg bruke?
Start med modellkatalogen og velg basert på oppgaven: coding, resonnement, kontekstlengde, multimodal input eller kostnadsbehov. Velg ikke bare basert på et navn som er kopiert fra en gammel artikkel. Verifiser nåværende modell-ID og test den mot dine egne prompts.
Kan jeg bruke dette med Claude Code?
Anthropic-kompatible veien kan testes som en tredjepartsleverandør, men Anthropic støtter ikke routing av Claude Code til ikke-Claude-modeller gjennom en gateway. Presentér ikke dette som offisiell Anthropic-støtte eller som en garanti for fullt Claude Code-støttet kompatibilitet.
Hvor finner jeg nåværende priser og grenser?
Bruk ECAIX-prisingside, modellkatalogen og dine kontokontroller. Hardkod ikke en pris fra denne artikkelen i en applikasjon.
Forberedelse og sikkerhet ved DeepSeek API-integrasjon
Når du integrerer med DeepSeek API, er det viktig å ta hensyn til flere kritiske aspekter for å sikre pålitelig drift, sikkerhet og effektivitet. Her er noen viktige retningslinjer for forberedelse og testing før produksjon, samt håndtering av spesifikke scenarier under drift.
Forberedelse før produksjon
Før du implementerer API-kall i produksjon, anbefales det å gjennomføre en omfattende pre-produksjonsvalidering. Dette inkluderer å teste alle API-endpunkter, inkludert modeller og gateways, i en miljø som er så likt produksjon som mulig. Sørg for å validere:
- API-nyttige (API keys) og deres tillatelser, spesielt for modeller som krever spesifikke autorisasjoner.
- Model-ID-er for å sikre at du bruker de riktige modeller som er tilgjengelige og oppdatert.
- Request-logg for å dokumentere alle API-kall, inkludert feilmeldinger og responsen fra API.
Håndtering av API-nyttige og sikkerhet
API-nyttige er avgjørende for å sikre at dine API-kall er autorisert og trygt. Lag en separat API-nyttig for produksjon og bruk aldri test- eller utvikler-nyttige i produksjon. Lagre API-nyttige i en sikker lagringsløsning, som en secrets manager, og unngå å lagre dem i koden eller i logg som kan bli synlig for uautoriserte parter.
Model-ID-er og oppdateringer
DeepSeek API kan endre modeller og API-endpunkter over tid. For å unngå uventede feil, bør du frekvent sjekke model-ID-er og dokumentere hvilke modeller som er aktuelle i ditt miljø. Hvis du oppdager at en model er oppdatert eller erstattet, bør du oppdatere dine integrasjoner og teste nye API-kall før du implementerer endringene i produksjon.
Request-logg og sikkerhet
Logg alle API-kall, inkludert request-body, headers, og respons, men unngå å logge API-nyttige eller andre sensitive data. Bruk en maskeringsteknikk for å fjerne sensitive informasjon før loggene lagres. Dette sikrer at du kan analysere feil og optimere integrasjonen uten å risikere å avsløre sensitive informasjon.
Retry og idempotensitet
API-kall kan mislykkes på grunn av nettverksproblemer, serverlast eller andre uforutsette forhold. Implementer en logisk retry-mekanisme for å håndtere midlertidige feil, men sørg for at dine API-kall er idempotente, det vil si at gjentatte kall med samme input ikke skal føre til uønskede sideeffekter. Dette er spesielt viktig for API-kall som kan ha langvarige eller ressurskrevende prosesser.
Streaming og diskonneter
Hvis API-kallene din inkluderer streaming (for eksempel for tekstgenerering), bør du forberede deg på at diskonneter kan oppstå underveis. Implementer en feilhåndteringsstrategi som kan gjenopprette strømmen eller avbryte prosessen på en sikker måte. Sørg for å logge eventuelle diskonneter og feil for å identifisere og løse potensielle problemer.
Autorisering og verifisering av verktøy
Verifiser at alle verktøy og biblioteker som brukes til å interagere med DeepSeek API, er oppdatert og har de nødvendige lisenser. Dette inkluderer å sjekke at du bruker de siste versjonene av API-bibliotekene og at du følger DeepSeeks retningslinjer for bruk av API.
Når skal du re-teste etter endringer i gateway eller model?
Hvis du oppdaterer gateways eller modeller i DeepSeek API,