Başlamadan önce
Cocorex API; OpenAI ve Anthropic biçimleriyle uyumlu bir yapay zeka API'sidir. Yani bu sağlayıcıların SDK'larını kullanıyorsanız, kodunuzda yalnızca iki şeyi değiştirirsiniz: adres (base URL) ve API anahtarı. Gerekenler:
- Bir Cocorex hesabı (Google ile veya e-posta koduyla)
- Hesabınızda kredi bakiyesi (satın alarak ya da kredi koduyla)
- Bir API anahtarı
Taban adres şudur: https://api.cocorex-ai.com/v1
Adım 1: Hesap açın
api.cocorex-ai.com adresine gidin ve Konsol düğmesine basın. "Google ile devam et" seçeneğini kullanabilir ya da e-posta adresinizi yazıp size gelen 6 haneli kodu girebilirsiniz. Şifre gerekmez. Aynı hesap, cocorex-ai.com sohbet uygulamasında da geçerlidir.
Adım 2: Kredi yükleyin
Cocorex API ön ödemelidir. Konsolda "Kredi & fatura" bölümüne gidin ve:
- Bir kredi paketi seçerek Shopier üzerinden ödeme yapın, ya da
- Elinizde bir kredi kodu varsa ("KREDI-XXXX-XXXX" biçiminde) ilgili alana girip "Uygula" deyin.
Bakiyeniz dolar karşılığıyla görünür. Kredi yüklediğiniz anda hesabınıza işlenir.
Adım 3: API anahtarı oluşturun
"API anahtarları" bölümüne gidin, bir ad yazın (ör. "Deneme") ve Oluştur'a basın. Anahtar şuna benzer: sk-cocorex- ile başlayan uzun bir metin.
Adım 4: İlk isteğiniz
cURL ile
curl https://api.cocorex-ai.com/v1/chat/completions \
-H "Authorization: Bearer sk-cocorex-ANAHTARIN" \
-H "Content-Type: application/json" \
-d '{
"model": "cocorex-1",
"messages": [{"role": "user", "content": "Merhaba!"}]
}'
Başarılı bir yanıt, OpenAI biçiminde bir JSON döner: choices[0].message.content içinde cevap, usage içinde kullanılan token sayıları bulunur.
Python (OpenAI SDK) ile
from openai import OpenAI
client = OpenAI(
api_key="sk-cocorex-ANAHTARIN",
base_url="https://api.cocorex-ai.com/v1",
)
resp = client.chat.completions.create(
model="cocorex-1",
messages=[{"role": "user", "content": "Merhaba!"}],
)
print(resp.choices[0].message.content)
Node.js (OpenAI SDK) ile
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-cocorex-ANAHTARIN",
baseURL: "https://api.cocorex-ai.com/v1",
});
const resp = await client.chat.completions.create({
model: "cocorex-1",
messages: [{ role: "user", content: "Merhaba!" }],
});
console.log(resp.choices[0].message.content);
Anthropic SDK ile
import anthropic
client = anthropic.Anthropic(
api_key="sk-cocorex-ANAHTARIN",
base_url="https://api.cocorex-ai.com",
)
msg = client.messages.create(
model="cocorex-1",
max_tokens=1024,
messages=[{"role": "user", "content": "Merhaba!"}],
)
print(msg.content[0].text)
Dikkat: Anthropic SDK'sında base_url, sonunda /v1 olmadan verilir; SDK yolu kendisi ekler. Anthropic biçiminde max_tokens zorunludur.
Modeller
model alanına şu değerlerden birini yazabilirsiniz:
| Model | Ne için? |
|---|---|
cocorex-1 | Hızlı, dengeli, çok yönlü; varsayılan |
deepseek-4.1-flash | Hızlı ve ekonomik; kodlama ve adım adım akıl yürütmede güçlü |
gpt-6-astra | Karmaşık kod, uzun belgeler, derin muhakeme |
Tanınmayan bir model adı, hata vermek yerine cocorex-1'e düşer. Kullanılabilir modelleri GET /v1/models ile de listeleyebilirsiniz.
Akış (streaming)
Cevabı üretildikçe almak için isteğe "stream": true ekleyin. Sohbet arayüzlerinde ilk kelimenin hızla ekranda görünmesi için idealdir.
stream = client.chat.completions.create(
model="cocorex-1",
messages=[{"role": "user", "content": "Bir şiir yaz"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
Akış sırasında bağlantı koparsa, o ana kadar üretilen kısım için ücretlendirilirsiniz.
Sistem talimatı ve ayarlar
- Sistem talimatı: OpenAI biçiminde
messagesiçine{"role": "system", "content": "..."}ekleyin; Anthropic biçimindesystemalanını kullanın. Modelin tonunu ve davranışını belirler. max_tokens: Üretilecek en fazla token. Verilmezse 4096 kullanılır.temperature: 0–1 arası. Düşük değer daha tutarlı, yüksek değer daha yaratıcı cevap verir.
Playground ile deneyin
Kod yazmadan önce, konsoldaki Playground bölümünden modelleri deneyebilirsiniz. Model seçin, sistem talimatı ve sıcaklığı ayarlayın, mesajınızı yazın. Her yanıtın altında kullanılan token, maliyet ve hız görünür. "Kod" düğmesi, yaptığınız isteği cURL komutu olarak kopyalar. Playground istekleri gerçek API gibi ücretlendirilir ve istek günlüğünde "Playground" olarak görünür.
Hata kodları
| Kod | Anlamı | Ne yapmalı? |
|---|---|---|
401 invalid_api_key | Anahtar geçersiz veya iptal edilmiş | Anahtarı kontrol edin, gerekirse yenisini oluşturun |
402 insufficient_credits | Bakiye bitti | Konsoldan kredi yükleyin |
502 upstream_error | Model sağlayıcısı hata döndürdü | Birkaç saniye sonra tekrar deneyin; ücretlendirilmez |
504 upstream_timeout | Model zamanında yanıt vermedi | Tekrar deneyin |
Geçici hatalar (502, 504) için basit bir yeniden deneme mantığı ekleyin: 1–2 saniye bekleyip 2–3 kez deneyin (üstel bekleme ile).
İzleme: Neyi, ne kadar kullandınız?
Konsoldaki Genel bakış sayfasında günlük token grafiği, model bazında harcama ve toplamlar bulunur. İstek günlüğü, son 200 isteğin zamanını, hangi anahtarla ve hangi modelle yapıldığını, token sayılarını, maliyetini, süresini ve durumunu gösterir. Anahtar başına kullanım, "API anahtarları" bölümünde de görünür; böylece hangi uygulamanın ne kadar harcadığını ayırt edebilirsiniz.
Üretime çıkarken kontrol listesi
- Anahtarı sunucu tarafında tutun; ortam değişkeni (
COCOREX_API_KEY) kullanın. - Her uygulama/ortam için ayrı anahtar oluşturun; bir tanesi sızarsa yalnızca onu iptal edersiniz.
402ve5xxhatalarını yakalayın; kullanıcıya anlamlı mesaj gösterin.max_tokenssınırı koyun; beklenmedik uzun cevapların maliyetini sınırlandırın.- Bakiye bitmeden önce uyarı sistemi kurun (düzenli olarak konsoldan bakiyeyi kontrol edin).
- Kullanıcı verisini modele göndermeden önce gizlilik gereksinimlerinizi değerlendirin. Ayrıntı için Gizlilik Politikası ve Kullanım Şartları sayfalarına bakın.
Sıradaki adımlar
- Maliyeti öngörmek için API maliyet hesaplama rehberimizi okuyun.
- Mevcut OpenAI/Anthropic kodunuzu taşımak için uyumlu API makalemize göz atın.
- Tam referans için API sayfamıza bakın.
Eksiksiz örnekler
Akışlı (streaming) cevap: Python
from openai import OpenAI
client = OpenAI(api_key="sk-cocorex-ANAHTARIN", base_url="https://api.cocorex-ai.com/v1")
stream = client.chat.completions.create(
model="cocorex-1",
messages=[
{"role": "system", "content": "Kısa ve net cevap ver."},
{"role": "user", "content": "Yapay zekanın üç faydasını say."},
],
max_tokens=400,
stream=True,
)
for chunk in stream:
parca = chunk.choices[0].delta.content
if parca:
print(parca, end="", flush=True)
print()
Akışlı cevap: cURL
curl -N https://api.cocorex-ai.com/v1/chat/completions \
-H "Authorization: Bearer sk-cocorex-ANAHTARIN" \
-H "Content-Type: application/json" \
-d '{"model":"cocorex-1","stream":true,"messages":[{"role":"user","content":"Merhaba!"}]}'
-N bayrağı, çıktının tamponlanmadan akmasını sağlar. Her satır data: {...} biçimindedir ve akış data: [DONE] ile biter.
Çok turlu sohbet (geçmiş yönetimi)
API durumsuzdur; sohbetin önceki kısmını her istekte sizin göndermeniz gerekir:
gecmis = [{"role": "system", "content": "Sen yardımsever bir asistansın."}]
def sor(metin):
gecmis.append({"role": "user", "content": metin})
cevap = client.chat.completions.create(model="cocorex-1", messages=gecmis, max_tokens=500)
icerik = cevap.choices[0].message.content
gecmis.append({"role": "assistant", "content": icerik})
return icerik
print(sor("Adım Ali."))
print(sor("Adım neydi?")) # model önceki mesajı görür
Geçmiş büyüdükçe maliyet artar; uzun sohbetlerde eski mesajları özetleyin (maliyet rehberi).
Hata yönetimi ve yeniden deneme
import time, random
from openai import OpenAI, APIStatusError
def guvenli_sor(mesajlar, model="cocorex-1", deneme=4):
for i in range(deneme):
try:
return client.chat.completions.create(model=model, messages=mesajlar, max_tokens=500)
except APIStatusError as e:
if e.status_code == 402:
raise RuntimeError("Bakiye bitti: konsoldan kredi yükleyin")
if e.status_code == 401:
raise RuntimeError("Geçersiz API anahtarı")
if e.status_code in (500, 502, 504) and i < deneme - 1:
time.sleep(2 ** i + random.random())
continue
raise
Node.js: akış
import OpenAI from "openai";
const client = new OpenAI({ apiKey: process.env.COCOREX_API_KEY, baseURL: "https://api.cocorex-ai.com/v1" });
const stream = await client.chat.completions.create({
model: "cocorex-1",
messages: [{ role: "user", content: "Bir haiku yaz." }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
Yaygın uygulama kalıpları
Sohbet botu. Kullanıcı mesajını sunucunuza alın, sohbet geçmişini (kullanıcı başına) saklayın, API'ye gönderin, cevabı akışla kullanıcıya iletin. Kullanıcı başına hız sınırı ve girdi uzunluğu sınırı ekleyin.
Özetleyici. Uzun metni bölümlere ayırın, her bölümü özetletin, özetleri birleştirip son bir özet isteyin. Düşük sıcaklık kullanın.
Sınıflandırıcı. Sistem talimatında kategorileri listeleyin ve "yalnızca kategori adını döndür" deyin; max_tokens düşük, temperature 0'a yakın olsun.
Veri çıkarıcı. "Yalnızca geçerli JSON döndür" talimatı verin; cevabı json.loads ile doğrulayın, geçersizse bir kez yeniden isteyin.
Kod yardımcısı. IDE eklentileri veya komut satırı aracı; sistem talimatında dil ve stil kurallarını verin.
Araçlar ve çerçevelerle kullanım
Cocorex API, OpenAI biçimine uyumlu olduğundan, base_url ve anahtar ayarlanabilen birçok araç (LangChain, LlamaIndex, Vercel AI SDK, çeşitli IDE eklentileri ve komut satırı araçları) ile kullanılabilir. Tipik ayar:
- Base URL:
https://api.cocorex-ai.com/v1 - API anahtarı:
sk-cocorex-... - Model:
cocorex-1(veya diğerleri)
Her aracın tüm özelliklerinin (örn. ileri düzey parametreler, belirli çıktı biçimleri) desteklendiğini garanti edemeyiz; önce basit bir istekle deneyin, sorun olursa ilgili özelliği kapatın.
Üretime çıkmadan test listesi
- [ ] Basit istek çalışıyor (
/v1/modelsve bir sohbet). - [ ] Akış çalışıyor; bağlantı koparsa istemci toparlanıyor.
- [ ]
401,402,502,504durumları ele alınıyor. - [ ] Zaman aşımı en az 60 saniye.
- [ ]
max_tokensve kullanıcı başına sınırlar var. - [ ] Anahtar yalnızca sunucuda.
- [ ] İstek günlüğünde model, token ve maliyet beklenen düzeyde.
- [ ] Bakiye uyarısı kurulu.
Sık sorulan sorular
İstek başına en fazla kaç token? max_tokens üst sınırınızı siz belirlersiniz; varsayılan 4096'dır. Model bağlam sınırları farklıdır.
Birden fazla istek paralel gönderebilir miyim? Evet; ancak çok yoğun paralellik hız sınırına ve modelin yoğunluğuna takılabilir; yeniden deneme mantığı ekleyin.
Görsel gönderebilir miyim? /v1/messages ucunda içerik blokları iletilir; destek modele bağlıdır. /v1/chat/completions metin bekler.
Fiyatlar nerede? Konsolda Kredi & fatura → Fiyat listesi ve API sitesinin ana sayfasında.
Yardıma ihtiyacım olursa? API hataları ve sorun giderme sayfasına bakın ya da bize yazın.