Návod na integraci DeepSeek API: OpenAI-srovnatelné požadavky přes ECAIX
Návod na integraci DeepSeek API: OpenAI-srovnatelné požadavky přes ECAIX
Tento návod ukazuje, jak ověřit modelový ID DeepSeek přes ECAIX pomocí srovnatelného API endpointu OpenAI. Obsahuje nejmenší fungující požadavek, příklady v Pythonu a curl, ověření modelového ID, streaming, strukturovaný výstup a nástroje, a také diagnostický postup pro běžné chyby.
Návod popisuje přístup ECAIX jako brány k modelům, která jsou nyní v aktuálním katalogu ECAIX. Neclaimujeme, že ECAIX je oficiální endpoint DeepSeek API ani že všechny funkce DeepSeek jsou dostupné přes všechny routy brány. Zkontrolujte živé stránky modelu a dokumentaci poskytovatele před přemístěním pracovní zátěže do produkce.
Co tento návod ověřuje
Příklady používají srovnatelnou cestu OpenAI a aktuální modelové ID, které jsou viditelné v veřejném katalogu při vydání tohoto článku. Dostupnost, routování, limity, ceny a podporované funkce se mohou měnit. Trestejte katalog a dokumentaci API jako aktuální zdroj pravdy.
Rychlé nastavení
Pokud už máte aplikaci založenou na OpenAI SDK:
- Zkontrolujte stránku DeepSeek v4.1 Flash modelu, zda je ID dostupné.
- Vytvořte klíč API ECAIX.
- Nastavte základní URL srovnatelný s OpenAI na
https://ecaix.com/api/ai/v1. - Zůstaňte v SDK a aplikaci co nejvíce nezměněni.
- Spusťte minimální požadavek níže.
- Přidávejte streaming, JSON výstup nebo nástroje pouze po tom, co základní požadavek funguje.
Endpoint a modelové ID
Pro klienty srovnatelné s OpenAI použijte:
Base URL: https://ecaix.com/api/ai/v1
Model: deepseek-v4.1-flash
Modelové ID není trvalá záruka v článku. Zkontrolujte je na živé stránce modelového katalogu před každou novou integrací nebo deployem. Pokud potřebujete jiný člen rodiny DeepSeek, kopírujte přesně ID z detailní stránky modelu, nikoli odhadujte příponu.
Formát endpointu také hraje roli. SDK by mělo přijímat cestu končící na /v1; klient přidává /chat/completions nebo jinou operační cestu. Nepridávejte /chat/completions do base_url, pokud SDK již přidává.
Python s OpenAI SDK
Nainstalujte nebo aktualizujte OpenAI Python SDK ve virtuálním prostředí:
python -m pip install --upgrade openai
Poté použijte základní URL ECAIX a API klíč:
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);
Používejte server-side kód pro API požadavek. Aplikace v prohlížeči by měla volat vlastní backend, nikoli vystavovat API klíč v klientském JavaScriptu.
Diagnostický požadavek pomocí curl
Pokud SDK selže, odejďte od SDK a testujte endpoint přímo. Uložte hlavičky a tělo odděleně, aby mohl být rozlišován problém s HTTP a problém s formátem odpovědi.
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čtěte uložené hlavičky nebo odpověď do veřejného příspěvku bez odstranění API klíčů, požadavečských ID, promptů, cest v repozitáři a dat zákazníků.
Diagnostika odpovědi
Postupujte podle tohoto pořadí:
- HTTP stav: zjistěte, zda požadavek dorazil na platný endpoint.
- Tělo odpovědi: přečtěte si chybový kód poskytovatele nebo brány.
- Modelové ID: kopírujte přesně ID z aktuálního modelového katalogu.
- Autentizace: zkontrolujte hlavičku klíče, účet a povolení.
- Formát požadavku: zmenšte tělo na
model,messagesa malý limit výstupu. - Políčka s funkcemi: přidejte streaming, JSON nebo nástroje postupně.
- Chování SDK: porovnejte požadavek SDK s přímo provedeným curl požadavkem.
Tím zabráníte chybě v klientské knihovně, aby byla zaměněna s problémem s routováním modelu nebo povoleními účetů.
Streaming odpovědí
Pokud aplikace potřebuje incrementální výstup, přidejte streaming pouze po tom, co běžný požadavek funguje:
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)
Přesné chování událostí závisí na endpointu a SDK. Zkontrolujte, jak vaše framework zachází s prázdným delta, konečným událostním událostí, přerušením spojení a ukončením typu [DONE]. Nevolávejte implementaci streamingu do produkce, dokud netestujete přerušení a retry.
Strukturovaný výstup a JSON
Pokud potřebujete strojově čitelný výstup, začněte běžným požadavkem a poté přidejte nejmenší možnost strukturovaného výstupu podporovanou endpointem a modelem. Potvrďte zpracování zpracování zpracování pomocí skutečného JSON parseru. Prompt, který říká „vrátit JSON“, není to samé jako schema-ovládaný výstup.
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"])
Přijetí response_format může záviset na modelu a cestě. Pokud endpoint vrátí chybnou chybovou chybu, odeberte pole a zkontrolujte dokumentaci cesty před pokusem o další formát.
Volání funkcí a nástrojů
Volání funkcí vyžaduje samostatný test od textové generace. Začněte s jednou neškodnou funkcí a prohlédněte si vrácené jméno a argumenty před provedením jakéhokoli kódu.
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 může vrátit platnou textovou odpověď, zatímco volání funkcí selže kvůli šabloně schématu, nesupportovaným parametrům nebo chování specifickému pro klient. Nikdy neprovádějte vrácené argumenty volání funkcí v produkční systému před validací schématu a přidáním kontrol autorizace.
Srovnatelné cesty OpenAI a Anthropic
ECAIX vystupuje s různými srovnatelnými povrchy pro různé klienty:
| Klient nebo workflow | Cesta dokumentace | Co zkontrolujete |
|---|---|---|
| OpenAI Python/Node SDK | /api/ai/v1 | Chat Completions, odpovědi, streaming, nástroje |
| Klient srovnatelný s Anthropic | /api/ai/v1/anthropic | Políčka s polemi, hlavičky, bloky obsahu |
| Workflow třetí strany pro Claude Code | /api/ai/v1/anthropic | Chování specifické pro poskytovatele; neoficiální podpora Anthropic |
Přečtěte si dokumentaci Chat Completions, dokumentaci odpovědí a dokumentaci Anthropic Messages před výběrem cesty. Též stejný modelové ID nemusí vystupovat identické políčka nebo chování na každé srovnatelné ploše.
Aktuální detaily modelu
Používejte živé detailní stránky pro kontrolu kapacit a dostupnosti:
Tyto stránky jsou spolehlivější než statický článek pro aktuální modelové ID, informace o kontextu a odkazy na ceny.
Obvyklé chyby
| Stav nebo příznak | Likvidní příčina | Diagnostická akce |
|---|---|---|
401 | Chybějící nebo neplatný bearer token | Zkontrolujte Authorization, prostředí a stav klíče |
403 | Klíč nebo účet nemá povolení | Zkontrolujte přístup k účetům a dostupnost modelu |
404 | Špatný základní URL nebo přípona cesty | Používejte /api/ai/v1/chat/completions pro přímo provedený curl test |
400 | Neplatné tělo nebo nesupported pole | Odeberte volitelné pole a zopakujte tělo minimálnímu |
429 | Limit rychlosti nebo kvóty | Zadejte odpovědi hlaviček, zpomalte a zkontrolujte limity účetů |
5xx | Chyba brány nebo zdroje | Uložte čas požadavku a ID odpovědi; zopakujte podle vaší politiky |
| Model nenalezen | Chyba, odstraněný model nebo nesrovnalost routování | Kopírujte přesně modelové ID z /models |
| Text funguje, nástroje selžou | Nesrovnalost schématu nástroje nebo nedostupnost modelu | Testujte jednu neškodnou funkci a prohlédněte si vrácené argumenty |
| SDK funguje jinak než curl | Šablony SDK nebo konstrukce cest | Vypište konfiguraci požadavku SDK a por |