İçeriğe geç
KedyDocs

Kedy API · Geliştirici rehberi

Kedy API Dokümantasyonu

NOVAQ ile geliştirmeye başlayın. Hesabınızı hazırlamaktan ilk API isteğinizi göndermeye, yanıtları işlemeye ve hataları çözmeye kadar adım adım teknik rehber.

model: novaqREST · JSONcURL / Node.js / Python

01Kedy API’ye genel bakış

Kedy API, uygulamanızın NOVAQ modeline bir metin isteği göndermesini sağlar. Bu rehber; hesap oluşturmayı, API anahtarınızı kullanmayı, ilk isteğinizi göndermeyi ve yanıtı sunucunuzda işlemeyi anlatır. Örnekler, Çiçekli Teknolig katılımcı rehberinde kullanılan temel istek biçimini takip eder.

POSThttps://api.kedy.dev/v1/chat/completions
01

Uygulamanız

Kullanıcının girdisini kendi backend’inize iletir.

02

Backend’iniz

Anahtarı ortam değişkeninden okur ve API isteğini gönderir.

03

Kedy API

Modelin yanıtını sunucunuza döndürür; sunucunuz sonucu uygulamaya iletir.

İlk kez kullanıyorsanız hızlı başlangıç bölümünden ilerleyin. İstek alanlarını incelemek için API referansına, bir hatayı araştırmak için hata giderme bölümüne geçin.

02Hızlı başlangıç

  1. chat.kedy.dev üzerinden hesabınızı oluşturun ve giriş yapın.
  2. Aynı platform üzerinden bir API anahtarı oluşturun.
  3. Anahtarı, aşağıdaki örnekteki YOUR_API_KEY yerine kullanarak terminal oturumunuza tanıtın.
  4. İstek komutunu çalıştırın. Başarılı istekte JSON yanıtını terminalde görebilirsiniz.

macOS / Linux

Bash · KEDY_API_KEY
export KEDY_API_KEY="YOUR_API_KEY"

cURL · POST /v1/chat/completions
curl https://api.kedy.dev/v1/chat/completions \
  -H "Authorization: Bearer $KEDY_API_KEY" \
  -H "Content-Type: application/json" \
  --max-time 30 \
  -d '{"model":"novaq","messages":[{"role":"user","content":"Hello"}]}'

Windows · PowerShell

PowerShell · KEDY_API_KEY
$env:KEDY_API_KEY = "YOUR_API_KEY"

PowerShell · Invoke-RestMethod
$body = @{
  model = "novaq"
  messages = @(@{ role = "user"; content = "Hello" })
} | ConvertTo-Json -Depth 6

Invoke-RestMethod `
  -Uri "https://api.kedy.dev/v1/chat/completions" `
  -Method Post `
  -Headers @{ Authorization = "Bearer $env:KEDY_API_KEY" } `
  -ContentType "application/json" `
  -Body $body `
  -TimeoutSec 30

Bu komutlar ne yapıyor?

Ortam değişkeni yalnızca açık terminal oturumunda geçerlidir. İstek novaq modeline “Hello” mesajını gönderir. Örneklerdeki 30 saniyelik zaman aşımı istemci için seçilmiştir; bir API hizmet limiti değildir.

macOS / Linux örneği cURL gerektirir. Windows örneği PowerShell’in yerleşik HTTP komutunu kullanır. content değerini değiştirerek kendi metninizi gönderebilirsiniz.

03API anahtarı ve kimlik doğrulama

API anahtarı, uygulamanızın Kedy API’ye erişirken kullandığı gizli değerdir. Her istekte anahtarı Authorization başlığına, başında Bearer ve bir boşluk olacak şekilde ekleyin.

HTTP · Authorization
Authorization: Bearer YOUR_API_KEY

  • Anahtarı sunucunuzun ortam değişkeninde saklayın: KEDY_API_KEY.
  • Frontend JavaScript dosyalarına, mobil uygulama paketine veya herkese açık repolara eklemeyin.
  • Tarayıcı, Kedy API’ye doğrudan bağlanmak yerine kendi backend’inize istek göndermelidir.
  • Anahtarı ekran görüntülerinde, hata kayıtlarında veya geliştirme araçlarına verdiğiniz promptlarda paylaşmayın.

Yerel geliştirme dosyaları

Bir .env dosyası kullanıyorsanız onu sürüm kontrolünden çıkarın. Ekibiniz için yalnızca yer tutucu içeren bir .env.example paylaşın.

.gitignore
.env
.env.*
!.env.example

.env.example
KEDY_API_KEY=YOUR_API_KEY

Ortam değişkenini gerçekten yükleyin

Bir .env dosyası oluşturmak her çalışma ortamında otomatik olarak değişkeni yüklemez. Aşağıdaki örnekler terminalde tanımlanan değişkeni okur. Framework kullanıyorsanız onun sunucu tarafındaki ortam değişkeni yükleme yöntemini uygulayın.

04API referansı

Bu sayfadaki örnekler aşağıdaki endpoint’e JSON gövdesiyle POST isteği gönderir. Temel adres https://api.kedy.dev, endpoint yolu /v1/chat/completions ve model kimliği novaq şeklindedir.

POST/v1/chat/completions
İstek başlıkları
BaşlıkDeğerAçıklama
AuthorizationBearer YOUR_API_KEYAPI anahtarınızla kimlik doğrulama.
Content-Typeapplication/jsonİstek gövdesinin JSON olduğunu belirtir.
Temel istek gövdesi
AlanTürKullanım
modelstringBu örneklerde "novaq".
messagesarrayModele gönderilen mesajları içeren dizi.
messages[].rolestringBu temel istekte "user".
messages[].contentstringModele iletmek istediğiniz metin.
JSON · İstek gövdesi
{
  "model": "novaq",
  "messages": [
    {
      "role": "user",
      "content": "Hello"
    }
  ]
}

Örneklerin kapsamı

Bu rehber temel metin isteğini anlatır. Ek parametreler, streaming, araç çağrıları, model limitleri veya fiyatlandırma için destek varsaymaz. Hesabınıza ait erişim ve kullanım bilgilerini platform üzerinden kontrol edin.

05Node.js ile istek gönderme

Bu örnek Node.js 22 veya üstünde yerleşik fetch ile çalışır; paket kurulumu gerektirmez. Kodu request.mjs adıyla kaydedin. Hızlı başlangıçtaki komutla anahtarınızı aynı terminal oturumunda tanımlayın, ardından dosyayı çalıştırın.

request.mjs · Node.js
const apiKey = process.env.KEDY_API_KEY;
if (!apiKey) throw new Error('Set KEDY_API_KEY first.');

const response = await fetch('https://api.kedy.dev/v1/chat/completions', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'novaq',
    messages: [{ role: 'user', content: 'Hello' }]
  }),
  signal: AbortSignal.timeout(30_000)
});

if (!response.ok) {
  throw new Error(`Kedy API returned HTTP ${response.status}.`);
}
const data = await response.json();
const reply = data.choices?.[0]?.message?.content;
if (typeof reply !== 'string' || !reply.trim()) {
  throw new Error('The response did not contain a text message.');
}
console.log(reply);

Terminal · Çalıştırma
node request.mjs

Kod; anahtarın varlığını kontrol eder, JSON isteğini gönderir, başarısız HTTP durumlarını hata olarak ele alır ve yanıtın metin içerdiğini doğrular. Bağlantı veya zaman aşımı hatası oluşursa fetch hata verir. Uygulamanıza eklerken bu işlemi kendi hata yönetiminizle sarın.

06Python ile istek gönderme

Bu örnek Python 3’ün standart kütüphanesini kullanır; ek paket kurulumu gerekmez. Kodu request.py adıyla kaydedin ve API anahtarını aynı terminal oturumunda tanımladıktan sonra çalıştırın.

request.py · Python 3
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("KEDY_API_KEY")
if not api_key:
    raise SystemExit("Set KEDY_API_KEY first.")

payload = {
    "model": "novaq",
    "messages": [{"role": "user", "content": "Hello"}],
}
request = urllib.request.Request(
    "https://api.kedy.dev/v1/chat/completions",
    data=json.dumps(payload).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)

try:
    with urllib.request.urlopen(request, timeout=30) as response:
        data = json.load(response)
except urllib.error.HTTPError as error:
    raise SystemExit(f"Kedy API returned HTTP {error.code}.") from None
except (urllib.error.URLError, TimeoutError):
    raise SystemExit("Connection failed or timed out.") from None
except json.JSONDecodeError:
    raise SystemExit("The response was not valid JSON.") from None

try:
    reply = data["choices"][0]["message"]["content"]
except (KeyError, IndexError, TypeError):
    raise SystemExit("The response did not contain a text message.") from None
if not isinstance(reply, str) or not reply.strip():
    raise SystemExit("The response did not contain a text message.")
print(reply)

macOS / Linux · Python
python3 request.py

Windows · Python
py request.py

İstek gövdesi UTF-8 olarak kodlanır. Örnek; HTTP hatalarını, bağlantı sorunlarını, zaman aşımını, geçersiz JSON’u ve metin içermeyen yanıtları ayrı ayrı kontrol eder.

07Yanıtı okuma

Önce HTTP durumunu kontrol edin; ardından JSON gövdesini okuyun. Aşağıdaki sadeleştirilmiş örnek, kod örneklerinin metni okuduğu choices[0].message.content yolunu gösterir. Gerçek yanıtın ek alanları ve içerikleri değişebilir.

JSON · Sadeleştirilmiş yanıt örneği
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you?"
      }
    }
  ]
}

  • choices dizisinin dolu olduğunu kontrol edin.
  • message.content değerinin metin olduğunu doğrulayın.
  • Boş veya beklenmedik yanıtlar için anlaşılır bir hata gösterin.
  • Model çıktısını arayüzde düz metin olarak gösterin. HTML olarak işleyecekseniz güvenli biçimde temizleyin.
  • Model çıktısını otomatik bir işlemde kullanacaksanız beklenen formatı ayrıca doğrulayın.

08Hata giderme

Bir istek başarısız olursa HTTP durumunu ve hata mesajını kontrol edin. Aşağıdaki tablo genel HTTP durumlarına göre inceleme adımlarını gösterir; API’den gelen gerçek hata gövdesi ek bilgi verebilir.

HTTP durumlarına göre kontrol
Durumİlk kontrol
400JSON geçerli mi? model ve messages alanları doğru mu? Mesaj içeriği metin mi?
401Ortam değişkeni yüklendi mi? Bearer ile anahtar arasında boşluk var mı? Anahtar geçerli mi?
403Hesabınızın ve anahtarınızın istenen kaynağa erişimini platform üzerinden kontrol edin.
404Adresin https://api.kedy.dev/v1/chat/completions olduğundan emin olun.
429İstek sıklığını azaltın. Yanıtta Retry-After varsa buna uyun; yoksa yeniden denemeler arasında giderek artan bir bekleme kullanın.
5xxGeçici sunucu sorunu olabilir. Sınırlı sayıda, aralıklı yeniden deneme uygulayın; sürekli hatada destek alın.
Zaman aşımı / ağ hatasıİnternet bağlantısını, DNS’i ve istemci zaman aşımı ayarınızı kontrol edin.
Kontrolsüz yeniden denemeyin

Aynı hatalı isteği sürekli göndermek sorunu çözmez. Önce isteği düzeltin; geçici hatalarda yeniden deneme sayısını sınırlayın. Zaman aşımında sunucu isteği yine de işlemiş olabilir.

Terminal çalışıyor, uygulama çalışmıyor

Sunucunuzun ortam değişkenini okuyabildiğini ve istek gövdesinin cURL örneğiyle aynı alanları taşıdığını kontrol edin. Tarayıcıdan doğrudan Kedy API’ye istek atıyorsanız isteği backend’e taşıyın. Günlüklerde durum kodunu kaydedin; API anahtarını veya kişisel mesajları kaydetmeyin.

09Projenize entegre etme

Örnek isteği çalıştırdıktan sonra aynı işlemi sunucunuzdaki bir endpoint veya sunucu fonksiyonuna taşıyın. Arayüzünüz yalnızca kendi sunucunuza bağlansın; Kedy API anahtarı sunucuda kalsın.

  1. Girdiyi doğrulayın. Boş girdileri reddedin ve uygulamanıza uygun bir uzunluk sınırı belirleyin.
  2. Anahtarı sunucuda okuyun. KEDY_API_KEY eksikse anlaşılır bir yapılandırma hatası üretin.
  3. API isteğini gönderin. İstek gövdesini JSON.stringify veya json.dumps gibi bir JSON dönüştürücüyle hazırlayın.
  4. Yanıtı doğrulayın. HTTP durumunu, JSON formatını ve metin alanını kontrol edin.
  5. Sonucu gösterin. Yüklenme, başarı ve hata durumlarını ayrı ele alın. Aynı işlem sürerken tekrar gönderimi engelleyin.
  6. Kullanımı kontrol edin. Herkese açık bir backend için kendi kimlik doğrulamanızı ve istek sınırlamanızı ekleyin.

Yayınlamadan önce

  • API anahtarını hosting sağlayıcınızın sunucu ortam değişkenlerine ekleyin.
  • Yerel .env dosyanızın sunucuya otomatik taşınacağını varsaymayın.
  • Gizli değer içeren ortam değişkenlerini frontend’e açan bir isimlendirme veya yapılandırma kullanmayın.
  • Boş girdi, eksik anahtar, HTTP hatası ve zaman aşımı durumlarını deneyin.
  • Üretim günlüklerinde anahtarın görünmediğini kontrol edin.

10Sık sorulan sorular ve destek

API anahtarını nereden alırım?

chat.kedy.dev üzerinden hesabınıza giriş yapıp API anahtarı oluşturun.

Örneklerde hangi model kullanılıyor?

Model kimliği novaq. İstek gövdesindeki model alanına bu değeri yazın.

SDK veya ek paket zorunlu mu?

Hayır. Bu sayfadaki Node.js ve Python örnekleri çalışma ortamlarının yerleşik HTTP araçlarıyla istek gönderir.

Örnekleri frontend’de kullanabilir miyim?

API anahtarını kullanan bölümü sunucuda çalıştırın. Frontend yalnızca kendi backend’inize bağlanmalı.

Yardım için ne paylaşmalıyım?

HTTP durum kodunu, kullanılan endpoint’i, çalışma ortamını ve anahtarı çıkarılmış örnek isteği paylaşın. Gerçek API anahtarınızı paylaşmayın.

Ek yardım için Kedy iletişim sayfasına ulaşabilirsiniz. Yarışmaya ilişkin videolar ve katılımcı bilgileri için Çiçekli Teknolig rehberine dönün.