DeepSeek API Integration Guide: OpenAI-Compatible Requests through ECAIX
Povezava sa API-jem DeepSeek: Postavljanje zahtevova u skladu s OpenAI-jem kroz ECAIX
Ovaj vodič prikazuje kako testirati model ID DeepSeek kroz ECAIX koristeći OpenAI-kompatibilni API. Obuhvata najmanju radnu kombinaciju zahtevova, primjerove u Pythonu i curl-u, provjeru model ID-a, streaming, strukturovanu izlaznu podatu, alatke, i dijagnostičku putanju za najčešće greške.
Vodič opisuje priступ ECAIX-ovom vratniku za model ID koji je izložen u trenutnom katalogu ECAIX-a. Ne tvrdi da je ECAIX službeni endpoint za API DeepSeek ili da svaki model DeepSeek dostupan je kroz svaki vratnik. Provjerite živog modela na stranici i dokumentaciju dostavljača prije transfera radnog opterećenja u proizvodnu sredinu.
Što ovaj vodič provjerava
Primjeri koriste OpenAI-kompatibilnu putanju ECAIX-a i model ID koji je trenutno vidljiv u javnom katalogu na objavljivanju. Dostupnost, rute, ograničenja, cijene i podržane funkcije mogu se promijeniti. Ponašajte se prema katalogu i dokumentaciji API-a kao trenutnom izvornom izvoru.
Brzi početak
Koristite ovaj postupak ako već imate aplikaciju s OpenAI SDK:
- Otvorite stranicu DeepSeek v4.1 Flash modela i potvrđite da je ID dostupan.
- Stvorite ECAIX API ključ.
- Postavite OpenAI-kompatibilnu osnovnu URL na
https://ecaix.com/api/ai/v1. - Zadržite SDK i aplikacijski kod što je moguće nepromijenjen.
- Izvršite minimalni zahtev ispod.
- Dodajte streaming, JSON izlaz ili alatke tek nakon što je osnovni zahtev uspješno funkcionirao.
Endpoint i model ID
Za OpenAI-kompatibilne kliente koristite:
Base URL: https://ecaix.com/api/ai/v1
Model: deepseek-v4.1-flash
Model ID nije trajni obaveznica u blogu. Potvrdite ga na živoj stranici s modelima prije svakog novog integriranja ili izdavanja. Ako trebate različit član DeepSeek familije, kopirajte točnu ID iz detalja modela umjesto da gajete sufix.
Važnost formata endpointa također je važna. SDK treba dobiti osnovnu putanju koja završava na /v1; klient dodaje /chat/completions ili drugu operacijsku putanju. Ne dodajte /chat/completions na base_url ako SDK već dodaje to.
Python s OpenAI SDK
Instalirajte ili ažurirajte OpenAI Python SDK u virtualnom okruženju:
python -m pip install --upgrade openai
Zatim koristite osnovnu URL ECAIX-a i API ključ:
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);
Koristite server-stranu kod za izvršavanje API zahtevova. Frontend aplikacija treba pozivati svoj vlastiti backend umjesto izlaganja ECAIX ključa u kodu za stranicu.
Curl dijagnostički zahtev
Ako SDK ne radi, uklonite SDK iz razmatranja i testirajte endpoint direktno. Zadržite headers i tijelo zahtevova razdvojena tako da možete razlikovati greške HTTP tipa od problema s formatom odgovora.
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
}'
Ne kopirajte zadržane headers ili odgovore u javno pitanje bez uklanjanja API ključeva, ID zahtevova, pitanja, putanja u repositoryju i podataka klienta.
Diagnostika odgovora
Koristite sljedeći redoslijed:
- HTTP status: utvrdite je li zahtev stignuo na valjan endpoint.
- Tijelo odgovora: pročitajte grešku kodova dostavljača ili vratnika.
- Model ID: kopirajte točnu ID iz trenutne direktorije modela.
- Autentifikacija: provjerite header ključa, račun i dozvole.
- Obrazac zahtevova: smanjite tijelo na
model,messagesi malu granicu za izlaz. - Polja funkcija: dodajte streaming, JSON ili alatke po jedan po jedan.
- Ponašanje SDK-a: usporedite zahtev SDK-a s direktnim curl zahtevom.
Ovaj postupak sprečava greške u biblioteci klienta da se pomešaju s rutiranjem modela ili dozvolama računa.
Odgovori sa streamingom
Ako je vaša aplikacija potrebno incrmentalni izlaz, dodajte streaming tek nakon uspješnog zahtevovanja:
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)
Tačan ponašanje događaja ovisi o endpointu i SDK-u. Provjerite kako vaš okruženje obrađuje prazni delta, zadnji događaj upotrebe, prekid vezne linije i završni terminacijski događaj tipa [DONE]. Ne smijete pozivati implementaciju streaminga kao proizvodno spreman do provjere prekida i ponovljenih pokušaja.
Strukturovan izlaz i JSON
Ako trebate mašinski čitljivi izlaz, počnite s običnim zahtevom i zatim dodajte najmanju opciju za strukturovan izlaz podržanu od strane endpointa i modela. Potvrdite povratni sadržaj s realnim JSON parserom. Prompt koji kaže "vratite JSON" nije isti kao schema-izvedena odgovor.
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"])
Da li response_format je prihvaćen može ovisiti o modelu i putanji. Ako endpoint vrati grešku "nepodržani parametar", uklonite polje i provjerite dokumentaciju putanje prije pokušaja s drugim formatom.
Poziv funkcija i alatke
Poziv alatki zahtijeva osobitu testiranju od tekstnog generiranja. Počnite s jednim neškodnim funkcijom i ispitujte povratne ime i argumenti prije izvršavanja bilo čega.
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)
Model može vratiti valjan tekstni odgovor dok poziv alatki ne radi zbog konverzije schema, nepodržanih parametara ili ponašanja klienta. Nikada ne izvršavajte povratne argumenti alatki u proizvodnoj sredini prije potvrde schema i dodavanja autorizacijskih provjera.
Kompatibilni putovi za OpenAI i Anthropic
ECAIX nudi različite površine kompatibilnosti za različite kliente:
| Klient ili radni proces | Dokumentacijska putanja | Šta provjeriti |
|---|---|---|
| Python/Node SDK za OpenAI | /api/ai/v1 | Chat Completions, Odzivi, streaming, alatke |
| Klient Anthropic-stilnog tipa | /api/ai/v1/anthropic | Polja poruka, headers, blokovi sadržaja |
| Radni proces za Claude Code trećih stranica | /api/ai/v1/anthropic | Ponašanje specifično za provider; ne je to službena podrška Anthropica |
Prijavi se na dokumentaciju o Chat Completions, dokumentaciju o Odzivima, i dokumentaciju o Anthropic porukama prije izbora putanje. Isti ID modela ne mora prikazivati identična polja ili ponašanja na svakoj površini kompatibilnosti.
Detalji trenutnih modela
Upotrijebite live stranice za provjeru kapaciteta i dostupnosti:
Ove stranice su pouzdanije od statične članke za trenutne ID modela, informacije o kontekstu i poveznice za cijene.
Česti greške
| Status ili simptom | Vjerojatna uzrok | Dijagnostičko djelovanje |
|---|---|---|
401 | Nedostupan ili nevalidan bearer token | Provjeri Authorization, okruženje varijable i stanje ključa |
403 | Ključ ili račun nedostaje dozvole | Provjeri dostupnost računa i dostupnost modela |
404 | Netačan baza URL ili sufix rute | Koristi /api/ai/v1/chat/completions za direktan test s curlom |
400 | Nevalidan tijelo ili ne podržani polje | Ukloni opcionalna polja i ponovi s minimalnim tijelom |
429 | Limit brzina ili kvota | Zapiši odgovore za headers, uspori i provjeri granice računa |
5xx | Greška vratila ili greška u daljnjem slanju | Savi i odgovor ID; ponovi prema svojoj politici |
| Model nije pronađen | Greška u tipu, uklonjen model ili neodređeno rutevanje | Kopiraj točan ID modela s /models |
| Tekst radi, alatke ne | Neodređeno ponašanje alatka ili neodređeno kapacitet modela | Testiraj jednu neškodnu funkciju i ispisi povratne argumente |
| SDK radi drugačije od curl-a | Defaulti SDK-a ili konstrukcija putanje | Izrači konfiguraciju za SDK za zahtev i uspori putanje |
Checklista za sigurnost i proizvodnju
Pre nego što se preseli iz testnog projekta, potvrdi:
- API ključevi su pohranjeni na serveru i mogu se rotirati.
- Promptovi i odgovori ne sadrže neautorizirane tajne ili podatke klienta.
- Razumiješ li da li je mostek logirao zahteve i koliko dugo se logovi čuvaju.
- Dostupnost modela i cijene je provjerena na live stranicama.
- Timeoutovi, ponavljanja, idempotencija i granice brzina su obrađeni u vašem aplikaciji.
- Disconnectovi streaminga ne stvaraju duplikate zadataka.
- Pozivi alataka imaju popise dozvoljenih, validacije, autorizacije i logova auditiranja.
- Pojednostavni uslovi i mostek dozvoljavaju rad koji planirate poslati.
Zapisi integraciju prije izdavanja
Napisi datum, verziju klienta, ID modela, krajnicu, HTTP status i testove za funkcije koje je stvarno izvršio. Ako je neko testiranje nije obavljeno, označi ga kao neprovjereno. Ovaj zapis olakšava usporedbu s novim modelom ili mostekom i sprečava da stari blog primjer postane nepodržana pretpostavka za proizvodnju.
Često postavljeni pitanja
Je li to službeni endpoint za API DeepSeek?
Nije. Ova članka dokumentira pristup mosteka ECAIX za model ID koji je prikazan u katalogu ECAIX-a. Koristi službenu dokumentaciju za API DeepSeek za DeepSeekov rodni endpoint, pravila računa i specifične kapabilitete za provider.
Mogam li koristiti OpenAI SDK bez prepisivanja aplikacije?
Većina aplikacija OpenAI SDK-a može započeti promjenom baza URL-a, API ključa i ID modela. Vrijedi još uvijek provjeriti podršku polja, streaming, pozive alataka, formate odgovora, obradu grešaka i bilo kakve specifične za provider funkcije koje koristi vaša aplikacija.
Koji je DeepSeek model koji bi trebao koristiti?
Počni s katalogom modela i izaberi po zadatku: kodiranje, razmišljanje, dužinu konteksta, multimodalni ulaz ili troškove. Ne izaberi samo po nazivu kopiranom iz stare članke. Provjeri trenutni ID modela i testiraj ga protiv svojih promptova.
Mogam li koristiti to sa Claude Code?
Putanja kompatibilna s Anthropicom može se testirati kao treća strana radni proces, ali Anthropic ne podržava rutevanje Claude Code za ne- Claude modele kroz mostek. Ne predstavljaj to kao službenu podršku Anthropica ili garant za potpunu kompatibilnost s Claude Code.
Gde mogu provjeriti trenutne cijene i granice?
Koristi ECAIX stranicu za cijene, katalog modela i kontrolu računa. Ne hard-kodiraj cijenu iz ove članke u aplikaciju.