\"ECAIX įvesties prietaiso vadovėlis: įvesties į DeepSeek modelius per OpenAI SDK\"
ECAIX API integracija: OpenAI kompatibinių klausimų per ECAIX
Šis įrašas nurodo kaip testuoti DeepSeek modelį per ECAIX naudojant OpenAI kompatibinį API. Aprašoma minimalaus darbo klausimas, Python ir curl pavyzdžiai, modelio ID patikrinimas, stebėjimas, struktūrinis atsakymas, įrankiai ir diagnostikos kelias į dažniausiai susiklosčiančius klaidų.
Šis įrašas aprašo ECAIX brėžimo prieigą prie modelio ID, esančio ECAIX katalogoje. Jis nesakoma, kad ECAIX yra oficialus DeepSeek API brėžis arba kad visi DeepSeek funkcionalumai yra galimi visose brėžimo kryptyse. Patikrinkite modelio puslapį ir įrankių dokumentaciją, kol perkeliate darbą į produktinę aplinką.
Ką šis įrašas patikrina
Pavyzdžiai naudojami ECAIX OpenAI kompatibiniame brėžime ir modelio ID, esančiu publikuojantįse katalogoje. Privalumų, krypties, ribų, kainų ir palaikomų funkcionalumų gali keisti. Patikrinkite katalogą ir API dokumentaciją kaip esamą tikslumą.
Spartus pradžia
Jei jau turite OpenAI SDK aplikaciją:
- Patikrinkite DeepSeek v4.1 Flash modelio puslapį ir patikrinkite, kad ID yra galima.
- Sukurkite ECAIX API klausinį.
- Patikrinkite OpenAI kompatibinį pagrindinį URL:
https://ecaix.com/api/ai/v1. - Palikite SDK ir aplikacijos kodą nekeičiant, kai tai galima.
- Atlikite žemiau pateiktą minimalų klausimą.
- Keičkite tik stebėjimą, JSON atsakymą ar įrankius, kai pagrindinis klausimas veikia.
Endpoint ir modelio ID
OpenAI kompatibiniams klientams naudokite:
Base URL: https://ecaix.com/api/ai/v1
Model: deepseek-v4.1-flash
Modelio ID nėra bloge įrašo garantija. Patikrinkite aktivių modelių katalogą prieš kiekvieną naują integraciją arba perveikimą. Jei reikia kitų DeepSeek modelių, kopiuokite tiksliai modelio detalų puslapyje pateiktą ID, neguodami gauti sufigūravusį priedelį.
Endpoint formatas taip pat svarbus. SDK turi gauti pagrindinį brėžį, beveik uždengiantį /v1; klientas prideda /chat/completions ar kitą operacijos brėžį. Nepridedkite /chat/completions prie base_url, jei SDK jau tai padeda.
Python su OpenAI SDK
Instaliuokite arba paleiskite OpenAI Python SDK versiją savo virtualiniame aplanku:
python -m pip install --upgrade openai
Nuožymkite ECAIX API klausinį ir pagrindinį URL:
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);
Naudokite serverio pusės kodą klausimo vykdymui. Frontendui rekomenduojama velti savo backendą, nepasidarydama ECAIX klausinio eksponuojama klientinėje JavaScript kodinėje.
Curl diagnostikos klausimas
Jei SDK neveikia, ištrinkite SDK iš ekonominės situacijos ir testuokite brėžį direktiškai. Saukuokite užrašus ir kūrinį skirtingai, kad galėtumėte skirti HTTP klaidą nuo atsakymo formatų klaidų.
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
}'
Nekeiskite saugintų užrašų ar atsakymų į publikai patikslinant klausinius, ID, klausimus, repository kryptis ir klientų duomenis.
Atakymo diagnostika
Naudokite šį eilę:
- HTTP statusas: patikrinkite, ar klausimas pasiekė validų brėžį.
- Atakymo kūrinys: skaitykite įrankių ar brėžio klaidų kodą.
- Modelio ID: kopiuokite tiksliai modelio kataloge pateiktą ID.
- Autentifikacija: patikrinkite klausinio užrašą, konto ir teises.
- Klausimo formata: sumažinkite kūrinį į
model,messagesir mažą atsakymo ribą. - Funkcionalumų laukai: pridedkite stebėjimą, JSON ar įrankius vienu po vieno.
- SDK elgesys: poruokite SDK klausimą su direktivių
curlklausimu.
To padaryti, kad klientinė biblioteka nebuvo sukeliamos modelio krypties ar konto teisių klaidų.
Stebėjimo atakymai
Jei aplikacija reikia įskaitinio atsakymo, pridedkite stebėjimą tik po veikiančio klausimo:
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)
Taip pat priklauso nuo endpoint ir SDK. Patikrinkite kaip savo framework elgiasi su tuščiu delta, galutiniu naudojimo įvykdymu, susiklosčiančia susijungimo praradimu ir [DONE]-stiliaus užbaigimu. Neprivalote kreipti stebėjimo implementaciją produktinei naudojimui, kol nepatikrinote praradimus ir atkūrimus.
Struktūrinis atakymas ir JSON
Jei reikia mašinos išskirtinio atakymo, pradėkite su normaliu klausimu, o po to pridedkite mažiausiai struktūrinio atakymo galimybę, palaikomą endpoint ir modeliu. Patikrinkite atsakymo turinį su realiu JSON parseriu. Klausimas, kuris prašo „grąžinti JSON“, nesistatydamas į schemą patikrintą atsakymą.
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"])
Arba response_format priimamas gali priklėti nuo modelio ir brėžio. Jei endpoint grąžina nesuprantamą parametro klaidą, ištrinkite lauką ir patikrinkite brėžio dokumentaciją, kol bandote kitą formatą.
Funkcinių klausimų ir įrankių naudojimas
Funkcinių klausimų naudojimas reikia skirtingo testavimo. Pradėkite su vienu neigiamu įrankiu ir patikrinkite grąžintą pavadinimą ir argumentus, kol nevykdote nieko.
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)
Modelis gali grąžinti teisingą tekstinį atsakymą, bet funkcinių klausimų naudojimas neveikia dėl schemos konvertavimo, nesuprantamų parametrų ar klientinės specifikacijos. Niekada nevykdinkite grąžintų įrankio argumentų produktinei sistemai, kol nepatikrinote schemos ir nepridedate autorizacijos kontrolių.
OpenAI ir Anthropic kompatibilūs keliai
ECAIX turi skirtingas kompatibilumo paviršius įvairioms klientams:
| Klientas arba darbavimas | Dokumentacijos kelias | Ko patikrinti |
|---|---|---|
| OpenAI Python/Node SDK | /api/ai/v1 | Chat Completions, Responses, streaming, tools |
| Anthropic stilės klientas | /api/ai/v1/anthropic | Messages laukai, įvesties blokai, užrašų formatai |
| Claude Code trečiakartėjų darbavimas | /api/ai/v1/anthropic | Providoriaus specifinis elgesnis; ne Anthropic oficialinė padėtis |
Paskelbkite Chat Completions dokumentaciją, Responses dokumentaciją ir Anthropic Messages dokumentaciją prieš pasirinkimą. Taip pat vienas ir to paties modelio ID nebe visada turėtų išsiskirti paviršiuose.
Nuosakų detalės
Panaudokite aktyviosios detalės puslapius, kad patikrintumėte galimybes ir priėmimą:
Šie puslapių duomenys yra patikimesni už statinę straipsnį, kuris apima aktyvius modelio ID, kontekstą ir kainų nuorodas.
Paplitimos klaidų sąrašas
| Statusas arba simptomas | Likimas priežastis | Diagnozinimo veikla |
|---|---|---|
401 | Nemažinamas arba netinkas brendimo tokenas | Patikrinkite Authorization, aplinkos įvesties įrašą ir klausinį statusą |
403 | Klausinys arba priemonė neturi teisių | Patikrinkite priemonės priėmimą ir modelio galimybes |
404 | Netinkas pagrindinis URL arba kelio pabaiga | Naudokite /api/ai/v1/chat/completions kelio testą su curl |
400 | Netinkas kūrinys arba nesuprantami laukai | Ištrinkite nepakankamų laukų ir pataikykite minimalų kūrį |
429 | Kiekio arba kvotų riba | Patikrinkite atsakymo įrašus, lėtinkite ir patikrinkite priemonės ribas |
5xx | Priešininko arba prijungimo klaidų | Saugojite įvesties laikas ir atsakymo ID; pataikykite pagal savo politiką |
| Modelis neįrasta | Klaida, ištrintas modelis arba kelio nesutarimas | Kopiuokite tikrą modelio ID iš /models |
| Tekstas veikia, tačiau įrankiai ne | Įrankio schema ar modelio galimybės nesutarimas | Testuokite vieną neigiamą funkciją ir patikrinkite grąžintus argumentus |
| SDK veikia skirtingai nei curl | SDK defaultai arba kelio statymas | Printinkite SDK įvesties konfigūraciją ir patikrinkite kelius |
Sauga ir produkcijos kontrolė
Prieš perėjant iš testinio projekto:
- API klausiniai saugomi serverio pusėje ir gali būti atnaujinti.
- Promptai ir atsakymai ne turi nepripažintų sekretų ar klientų duomenų.
- Patikrinkite, ar prijungimo vartotojai loguoja įvestis ir kiek ilgai logai išlaiko duomenis.
- Patikrinkite modelio priėmimą ir kainų informaciją iš aktyvių puslapių.
- Patikrinkite timeoutus, atnaujinimus, idempotenciją ir kiekio ribas savo aplinkoje.
- Streamingo atjungimo nesutinkimas ne turi sukelti dvigubų darbų.
- Įrankio kvietimai turi turėti aprašymų sąrašus, patikrinimus, autorizaciją ir audito įrašus.
- Providoriaus ir prijungimo terminai leidžia vykdyti planuotą darbą.
Patvirtinkite integraciją prieš išleisti
Rašykite data, kliento versiją, modelio ID, galiojočią endpontą, HTTP statusą ir vykdytus testus. Jei nevykdote testų, pažymėkite kaip nepatvirtintus. Šis žurnalas padės suartinti naują modelį ar prijungimą ir išvengti blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio blogio
## **Pre-production valdybimas ir API klausimų įrankiai**
Kad įrengti DeepSeek API į savo sistemos integraciją, reikėtų atlikti pre-production valdybą, kad išvengti potvynio ir užtikrinti stabilumą. Šis skyrius apibūdina reikiamus klausimus, kuriuos reikia atsižvelgti, kai testuojate API su prototipais arba kiekvienais naujais versijomis.
### **API klausimų įrankiai**
Kai naudojate DeepSeek API, reikalingas **API klausimas** (API key) yra saugomas ir nepasidaryta prieinamas neautorizuotiesiems. Pagrindiniai reikalavimai:
- **API klausimų saugumas**: Nėkada neapiešinkite API klausimo tekstiniuose loguose, failuose arba kitose duomenų bazėse, kurios gali būti prieinamos kitoms sistemoms. Jei reikia logų, naudokite **API klausimo fragmentus** (pvz., pirmąjį simbolį) arba **hasheinius** vertes, kad išlaikytumėte saugumą.
- **Model ID reikšmės patikrinimas**: Priklausomai nuo modelio, kurį naudojate, reikia patikrinti, kad jo **Model ID** yra teisingai įrašytas ir nepasikeičia. Kai patikrinate naujus modelius, patikrinkite, ar jų **Model ID** yra patikslintas ir nepraleidžiaite įvairių versijų.
### **Kartojimas ir idempotencija**
API reikalauja kartojimo strategijų, kad išvengtumėte duomenų panaudojimo dvikrat. Pvz., kai naudojate **POST /v1/chat/completions** endpointą, reikia patikrinti, kad **request ID** yra unikalus ir nepraleidžiaite kartotų klausimų. Jei reikia, naudokite **idempotentines** klausimų formules, kurios nepasikeičia, o atsakymas bus vienodas.
- **Rezoliacijos strategijos**: Kai API pasidaro nepasiekiamas, reikia turėti **retry mechanizmą**. Pvz., jei API pasidaro nepasiekiamas, gali būti reikalinga **exponential backoff** strategija, kurioje klausimas kartojamas po laikotarpių, kurie didėja. Patikrinkite API dokumentaciją, kad išvengtumėte **rate limiting** ir **throttling** problemų.
### **Streaming atsiliekančių prietaisų užtikrinimas**
Kai naudojate **streaming** funkciją, reikia užtikrinti, kad klientai gali išlaikyti **streaming** atsiliekančią sesiją. Pvz., kai naudojate **POST /v1/chat/completions** endpointą su `stream=true`, reikia patikrinti, kad klientai gali išlaikyti **connection** ir nepraleidžiaite **disconnect** problemų. Jei atsiliekančios prietaisai pasidaro nepasiekiami, patikrinkite, kad API klausimas yra teisingai įvestas ir nepraleidžiaite **timeout** problemų.
### **Autorizacijos įrenginiai**
Kai naudojate API su **tool authorization**, reikia patikrinti, kad autorizacija yra teisingai įvesti ir nepraleidžiaite **permission** problemų. Pvz., kai naudojate **OAuth2** arba **API klausimą**, patikrinkite, kad autorizacija yra teisingai įvesti ir nepraleidžiaite **token expiration** problemų.
### **Kai reikia atlikti naujus testus**
Kai DeepSeek API ar jos modeliai keičia savo versiją, reikia atlikti naujus testus, kad išvengtumėte **breaking changes** problemų. Pagrindiniai reikalavimai:
- **Gateway ir modelio