DeepSeek API ile ECAIX aracılığıyla OpenAI uyumlu talep yapma rehberi
DeepSeek API ile ECAIX aracılığıyla OpenAI Uyumlu Talep Yapma Rehberi
Bu rehber, ECAIX aracılığıyla bir DeepSeek model ID'sini OpenAI uyumlu bir API endpoint'i kullanarak test etmenin nasıl yapıldığını gösterir. En küçük çalışan talep, Python ve curl örnekleri, model-ID doğrulama, akış, yapılandırılmış çıkış, araçlar ve yaygın hata teşhis yöntemlerini kapsar.
Bu rehber, ECAIX kataloğunda mevcut olarak açık olan bir model ID'ye ECAIX gateway erişimini açıklayır. ECAIX'ın resmi DeepSeek API endpoint'i olma veya her gateway yolu üzerinden her DeepSeek özelliği kullanılabilir olma garanti vermemektedir. Ürününüzü üretim ortamına taşımadan önce, canlı model sayfası ve sağlayıcı belgelerini kontrol edin.
Bu rehber ne doğruluyor
Örnekler, ECAIX'ın OpenAI uyumlu yolunu kullanır ve yayınlanma zamanında açık olan bir model ID'yi içerir. Kullanım, yönlendirme, sınırlamalar, fiyatlandırma ve desteklenen özellikler değişebilir. Kataloğu ve API belgelerini güncel kaynak olarak kabul edin.
Hızlı başlangıç
Eğer zaten bir OpenAI SDK uygulaması kullanıyorsanız, şu adımları izleyin:
- DeepSeek v4.1 Flash model sayfasını açın ve ID'yi doğrulayın.
- ECAIX API anahtarı oluşturun.
- OpenAI uyumlu taban URL'ini
https://ecaix.com/api/ai/v1olarak ayarlayın. - SDK ve uygulama kodunu mümkün olduğu kadar değiştirmeyin.
- Altta verilen en basit talepyi çalıştırın.
- Akış, JSON çıkışı veya araçlar eklenmeden önce temel talep çalışıyorsa.
Endpoint ve model ID
OpenAI uyumlu klientler için kullanın:
Base URL: https://ecaix.com/api/ai/v1
Model: deepseek-v4.1-flash
Model ID, bir blog yazısında sürekli bir garanti değildir. Her yeni entegrasyon veya üretim uygulaması için canlı model katalogunu kontrol edin. Eğer farklı bir DeepSeek ailesinden bir model kullanmak istiyorsanız, model ayrıntı sayfasından tam ID'yi kopyalayın, değil bir suffiks tahmin edin.
Endpoint formatı da önemlidir. SDK, /v1 sonundaki taban yolunu almalıdır; klient, /chat/completions veya başka bir işlem yolunu ekler. SDK'a /chat/completions eklemeyi base_url'a eklemeyin.
Python ile OpenAI SDK
Virtual ortamda OpenAI Python SDK'ını güncelleyin:
python -m pip install --upgrade openai
Sonra ECAIX taban URL'ini ve API anahtarını kullanın:
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);
API talepini yapmak için sunucu tarafı kod kullanın. Bir web uygulaması, klient tarafı JavaScript'te ECAIX anahtarını açıklama olmamalıdır.
Curl tanıma talep
SDK başarısız olursa, SDK'yi bu deneyimden çıkarın ve endpoint'i doğrudan test edin. Başlıklar ve gövdeyi ayrı olarak kaydedin, böylece HTTP sorunu ile yanıt formatı sorunu ayırt edebilirsiniz.
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
}'
API anahtarları, talep ID'leri, promptlar, depolama yolları ve müşteri verileri gibi açık bir sorunda kaydedilen başlıkları veya yanıtı bir şekilde içermemelisiniz.
Yanıtın teşhisi
Aşağıdaki sırayı izleyin:
- HTTP durumu: talepin geçerli bir endpoint'e ulaştığını belirlemek için HTTP durumu kontrol edin.
- Yanıt gövdesi: sağlayıcı veya gateway hatası kodu okuyun.
- Model ID: canlı model katalogundan tam ID'yi kopyalayın.
- Yetenekler: anahtar başlığı, hesap ve yetkileri kontrol edin.
- Talep şekli: gövdeyi
model,messagesve küçük bir çıkış sınırına indirin. - Özellik alanları: akış, JSON veya araçlar birer birer ekleyin.
- SDK davranışı: SDK talepini doğrudan curl talepiyle karşılaştırın.
Bu, bir klient kütüphanesi sorunu ile model yönlendirmesi veya hesap yetkileri karıştırılmasını önler.
Akış yanıtları
Uygulamalarınızın artıkça çıkış için akış eklemek istediği zaman, başarılı bir talep çalıştıktan sonra akış ekleyin:
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)
Taban endpoint ve SDK'nin ne tür olay davranışına sahip olduğunu belirler. Boş delta, son kullanım olayı, bağlantı kesintisi ve [DONE]-tipi sonlandırma gibi durumları nasıl işlediğinizi test edin. Akış bir uygulama için doğruluk düzeyine ulaşmadan önce bağlantı kesintileri ve retry'leri test edin.
Yapılandırılmış çıkış ve JSON
Makine okunabilir çıkış istediğinizde, bir normal talep çalıştıktan sonra, endpoint ve model tarafından desteklenen en küçük yapılandırılmış çıkış seçeneğini ekleyin. Geri dönen içeriği bir gerçek JSON parser ile doğrulayın. "JSON döndür" dediğiniz bir prompt, bir şema zorunluluğu ile desteklenen yanıtın olmadığını anlamak için aynı değildir.
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"])
response_format alanının kabul edilebilmesi model ve yol üzerinde değişebilir. Bir desteklenmeyen parametre hatası alırsanız, alanı kaldırın ve yol belgelerini kontrol edin.
Fonksiyon çağrısı ve araçlar
Araç çağrısı, metin üretimiyle ayrı bir test gerektirir. İlk olarak bir zararsız fonksiyonu test edin ve döndürülen ad ve parametreleri incleyin.
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)
Bir model, araç çağrısı başarısız olabilirken, metin yanıtı geçerli olabilir. Bu, parametre dönüşümü, desteklenmeyen parametreler veya klient özel davranış nedeniyle olabilir. Üretim sistemine dönük araç parametrelerini doğruluk ve yetkilendirme kontrolü ile birlikte çalıştırmadan önce, şemayı ve yetkilendirme kontrolünü doğrulayın.
OpenAI uyumlu ve Anthropic uyumlu yolcular
ECAIX, farklı klientler ve iş akışları için farklı uyum yüzeyleri sunar:
| Klient veya iş akışı | Belge yolcu | Ne kontrol edin |
|---|---|---|
| OpenAI Python/Node SDK | /api/ai/v1 | Chat Completions, yanıtlar, akış, araçlar |
| Anthropic tarzı klient | /api/ai/v1/anthropic | Mesaj alanları, başlıklar, içerik blokları |
| Claude Code üçüncü taraf iş akışı | /api/ai/v1/anthropic | Sağlayıcı özel davranış; Anthropic resmi desteği değil |
Chat Completions belgelerini (/docs/api/chat-completions), yanıt belgelerini (/docs/api/responses) ve Anthropic Mesajlar belgelerini (/docs/api/anthropic-messages) okuyun. Aynı model ID, her uyum yüzeyi üzerinde aynı alanları veya davranışı sunmayabilir.
Güncel model ayrıntıları
Kapasite ve kullanılabilirlik kontrolü için canlı ayrıntı sayfalarını kullanın:
Bu sayfalar, statik bir makaleye göre daha güvenilir olan güncel model ID'leri, kontekst bilgileri ve fiyatlandırma bağlantılarını sağlar.
Yaygın hatalar
| Durum veya semptom | Olası neden | Teşhis eylemi |
|---|---|---|
401 | Eksik veya yanlış bearer anahtarı | Authorization, çevrimiçi ortam ve anahtar durumunu kontrol edin |
403 | Anahtar veya hesap yetkisi eksik | Hesap erişimini ve model kullanılabilirliklerini kontrol edin |
404 | Yanlış taban URL veya yol sonu | /api/ai/v1/chat/completions için doğrudan curl testini kullanın |
400 | Yanlış gövde veya desteklenmeyen alan | Seçenek alanlarını kaldırın ve minimal gövdeyi tekrar deneyin |
429 | Kullanım veya kotalar sınırı | Yanıt başlıklarını kaydedin, yavaşlatın ve hesap sınırlarını kontrol edin |
5xx | Gateway veya üst katman hatası | Talep zamanı ve yanıt ID'sini kaydedin; politikaya göre tekrar deneyin |
| Model bulunamadı | Yanlışlık, kaldırılan model veya yönlendirme uyuşmazlığı | /models sayfasından tam model ID'yi kopyalayın |
| Metin çalışıyor, araçlar başarısız | Araç şeması veya model yetenekleri uyuşmazlığı | Bir zararsız fonksiyonu test edin ve döndürülen parametreleri inceleyin |
| SDK farklı çalışıyor | SDK varsayılanları veya yol yapımı | SDK talep yapımını ve yol yapısını karşılaştırın |
Güvenlik ve üretim kontrol listesi
Üretim projesi olarak