SDK Rehberi & Örnekler

Numex AI'yi uygulamanıza entegre etmek için ihtiyacınız olan her şey. Resmi SDK'lar, hazır kod örnekleri ve uçtan uca uygulama rehberleri.

🔑 API anahtarınız yoksa ücretsiz API anahtarı alın.


📦 Dil ve Ortam Örnekleri

Aşağıdaki örnekler çalışan REST API kullanır. Resmi pip/npm/go/composer paketleri henüz yayında değildir.

⚠️
Resmi pip/npm/go/composer paketleri henüz yayında değil. PyPI, npm, Packagist veya GitHub'da numex / numex-ai aramayın; bulunmaz. Aşağıdaki tüm örnekler çalışan REST API kullanır. Tek base URL: https://www.numexai.com.tr/api/v1. SDK'lar yayınlandığında bu rehber güncellenecektir.

⚡ 5 Dakikada İlk İstek

1
API Anahtarı Edinin

numexai.com.tr/api adresinden ücretsiz API anahtarınızı oluşturun. E-posta yeterli, kredi kartı gerekmez.

2
SDK'yı Kurun
Python npm Go
pip install requests
# Tarayıcıda fetch() kullanın; Node'da node-fetch veya axios
# Go SDK henüz yok; REST ile istek atın (net/http veya aşağıdaki cURL)
3
API Anahtarını Ayarlayın
🔒
API anahtarını asla kaynak koda gömmeyin. Ortam değişkeni kullanın.
# .env dosyası veya shell
export NUMEX_API_KEY="nx-your-api-key-here"
4
İlk Çağrınızı Yapın
import requests
import os

url = "https://www.numexai.com.tr/api/v1/chat"
headers = {
    "Authorization": "Bearer " + os.environ.get("NUMEX_API_KEY", ""),
    "Content-Type": "application/json"
}
payload = {
    "message": "Merhaba! Bana Türkiye hakkında kısa bir bilgi ver.",
    "history": [],
    "maxOutputTokens": 512
}
r = requests.post(url, json=payload, headers=headers)
print(r.json().get("text", ""))
🎉
Bu kadar! İlk yanıtınız saniyeler içinde gelecek.

🐍 Python (REST API)

Python 3.8+ ile requests kütüphanesi kullanarak API çağrısı. Resmi pip install numex paketi henüz yok; aşağıdaki örnek çalışır.

Kurulum

pip install requests

Temel Kullanım

import requests
import os

url = "https://www.numexai.com.tr/api/v1/chat"
headers = {
    "Authorization": "Bearer " + os.environ.get("NUMEX_API_KEY", ""),
    "Content-Type": "application/json"
}
payload = {
    "message": "Python'da quicksort yaz",
    "history": [],
    "maxOutputTokens": 2048
}
r = requests.post(url, json=payload, headers=headers)
data = r.json()
print(data.get("text", ""))
print(f"Token: {data.get('usage', {}).get('total_tokens', 'N/A')}")

Async (aiohttp)

# pip install aiohttp
import asyncio
import aiohttp

async def main():
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://www.numexai.com.tr/api/v1/chat",
            headers={"Authorization": "Bearer nx-your-key", "Content-Type": "application/json"},
            json={"message": "Merhaba!", "history": [], "maxOutputTokens": 512}
        ) as resp:
            data = await resp.json()
            print(data.get("text", ""))

asyncio.run(main())

🟨 JavaScript / TypeScript (REST API)

Tarayıcıda fetch, Node.js'te fetch (18+) veya node-fetch. Resmi npm install numex-ai paketi henüz yok; aşağıdaki örnek çalışır.

Kurulum

# Tarayıcıda ek paket gerekmez. Node 18+ yerleşik fetch kullanır.
# Node <18 için: npm install node-fetch

Temel Kullanım (fetch)

const response = await fetch('https://www.numexai.com.tr/api/v1/chat', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + process.env.NUMEX_API_KEY,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    message: 'Koşullu cümle örnekleri ver',
    history: [],
    maxOutputTokens: 1024
  })
});
const data = await response.json();
console.log(data.text);

Next.js API Route

⚠️
API anahtarınızı client component'lerde kullanmayın. Her zaman bir API route veya Server Action üzerinden çağrı yapın.
// app/api/chat/route.ts
import { NextResponse } from 'next/server';

export async function POST(req: Request) {
  const { message, history } = await req.json();
  const res = await fetch('https://www.numexai.com.tr/api/v1/chat', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + process.env.NUMEX_API_KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ message, history: history ?? [], maxOutputTokens: 1024 })
  });
  const data = await res.json();
  return NextResponse.json({ content: data.text });
}

🔵 Go (REST API)

Resmi go get numexai.com.tr/go paketi henüz yok. Aşağıdaki örnek standart net/http ve encoding/json ile çalışır.

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

func main() {
    url := "https://www.numexai.com.tr/api/v1/chat"
    body, _ := json.Marshal(map[stringinterface{}]{
        "message": "Go'da HTTP sunucu yaz",
        "history": []interface{}{},
        "maxOutputTokens": 512,
    })
    req, _ := http.NewRequest("POST", url, bytes.NewReader(body))
    req.Header().Set("Authorization", "Bearer "+os.Getenv("NUMEX_API_KEY"))
    req.Header().Set("Content-Type", "application/json")
    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    var out struct { Text string `json:"text"` }
    json.NewDecoder(resp.Body).Decode(&out)
    fmt.Println(out.Text)
}

🐘 PHP (REST API)

Resmi composer require numex/ai paketi henüz Packagist'te yok. Aşağıdaki örnek file_get_contents veya cURL ile çalışır.

<?php
$url = 'https://www.numexai.com.tr/api/v1/chat';
$payload = json_encode([
  'message' => 'Merhaba Numex, kısa bir selam ver.',
  'history' => [],
  'maxOutputTokens' => 512
]);
$ctx = stream_context_create([
  'http' => [
    'method' => 'POST',
    'header' => "Authorization: Bearer " . getenv('NUMEX_API_KEY') . "\r\nContent-Type: application/json\r\n",
    'content' => $payload
  ]
]);
$res = file_get_contents($url, false, $ctx);
$data = json_decode($res, true);
echo $data['text'] ?? '';

🌐 REST / cURL

SDK kullanmadan doğrudan HTTP ile çağrı yapmak için cURL örneği:

curl https://www.numexai.com.tr/api/v1/chat \
  -H "Authorization: Bearer nx_live_your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"message":"Kısa bir ürün açıklaması yaz","history":[],"maxOutputTokens":512}'
ℹ️
Bu bölüm dış linke gitmez; sadece iç sayfa içeriği ve kopyalanabilir komutlar içerir.

🤖 Örnek: Türkçe Chatbot

Bağlam hafızalı, çok turlu bir chatbot uygulaması. Konuşma geçmişini korur.

import requests
import os

url = "https://www.numexai.com.tr/api/v1/chat"
headers = {"Authorization": "Bearer " + os.environ.get("NUMEX_API_KEY", ""), "Content-Type": "application/json"}
history = []

def chat(user_message: str) -> str:
    payload = {
        "message": user_message,
        "history": history,
        "maxOutputTokens": 512
    }
    r = requests.post(url, json=payload, headers=headers)
    data = r.json()
    text = data.get("text", "")
    history.append({"role": "user", "content": user_message})
    history.append({"role": "assistant", "content": text})
    return text

# Örnek konuşma (system davranışı ilk mesajda belirtilebilir)
print(chat("Sen FatmaAna'sın, Türk mutfağı uzmanısın. Merhaba! Bugün ne pişirsem?"))
print(chat("Malzemeleri var mı kontrol edeyim, ne lazım?"))
print(chat("Kaç kişilik tarif versene"))

🔍 Örnek: RAG Sistemi

Embedding + Chat API kullanarak belgelerinizden soru yanıtlama (Retrieval-Augmented Generation).

import requests
import os

# Embedding API yoksa basit anahtar kelime eşleşmesi ile bağlam seç
belgeler = [
    "Numex AI, Türkiye'nin yapay zeka platformudur.",
    "API ile sohbet, görsel ve ses üretimi yapılabilir.",
    "Pro plan aylık 399 TL'dir ve API erişimi içerir."
]

def soru_yanıtla(soru: str) -> str:
    # Basit bağlam: soru kelimeleri geçen ilk belge
    en_iyi = belgeler[0]
    for b in belgeler:
        if any(w in b for w in soru.lower().split()):
            en_iyi = b
            break
    r = requests.post(
        "https://www.numexai.com.tr/api/v1/chat",
        headers={"Authorization": "Bearer "+os.environ.get("NUMEX_API_KEY",""), "Content-Type": "application/json"},
        json={"message": f"Bağlam: {en_iyi}\n\nSoru: {soru}", "history": [], "maxOutputTokens": 256}
    )
    return r.json().get("text", "")

print(soru_yanıtla("Pro plan ne kadara?"))

✍️ Örnek: İçerik Üretimi

Blog, ürün açıklaması ve sosyal medya metinleri için şablonlu içerik üretimi.

import requests
import os

r = requests.post(
    "https://www.numexai.com.tr/api/v1/chat",
    headers={"Authorization": "Bearer " + os.environ.get("NUMEX_API_KEY", ""), "Content-Type": "application/json"},
    json={
        "message": "Sen bir içerik stratejistisin. Türkçe, net ve satış odaklı yaz. Organik bal için kısa ürün açıklaması yaz. 3 madde + 1 CTA olsun.",
        "history": [],
        "maxOutputTokens": 512
    }
)
print(r.json().get("text", ""))

💻 Örnek: Kod Asistanı

Kod yazdırma, bug düzeltme ve refactor görevleri için `numex-code` profili.

import requests
import os

url = "https://www.numexai.com.tr/api/v1/chat"
r = requests.post(url,
    headers={"Authorization": "Bearer " + os.environ.get("NUMEX_API_KEY", ""), "Content-Type": "application/json"},
    json={
        "message": "Temiz ve production-ready kod yaz. Express ile /health endpoint yaz ve basit test örneği ekle.",
        "history": [],
        "maxOutputTokens": 1200
    }
)
print(r.json().get("text", ""))

🎙️ Örnek: Sesli Asistan

TTS endpoint ile metni sese çevirip dosya olarak kaydetme örneği.

import requests

API_KEY = "nx-your-api-key"
url = "https://www.numexai.com.tr/api/v1/audio/speech"

payload = {
  "input": "Merhaba, Numex sesli asistana hoş geldiniz.",
  "voice": "zeynep",
  "format": "mp3"
}

r = requests.post(
  url,
  headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
  json=payload,
  timeout=60
)
r.raise_for_status()
open("numex-tts.mp3", "wb").write(r.content)

💡 Prompt Mühendisliği

Numex AI modellerinden en iyi sonuçları almak için kanıtlanmış teknikler.

🎭 Rol Tanımlama

System prompt'ta net bir rol ve persona tanımlayın.

"Sen Türk hukuku konusunda uzman bir
avukatsın. Cevaplarında yasal
kaynaklara atıfta bulun."
📐 Format Belirtme

İstediğiniz çıktı formatını açıkça belirtin.

"Yanıtını JSON formatında ver:
{
  'özet': '...',
  'maddeler': [],
  'sonuç': '...'
}"
🔗 Bağlam Verme

İlgili arka plan bilgisini her zaman ekleyin.

"Şirketimiz B2B SaaS satıyor.
Hedef kitle: KOBİ'ler.
Bütçe: Orta.
→ Pazarlama stratejisi öner"

🇹🇷 Türkçe için Öneriler

Numex modelleri Türkçe için özel olarak optimize edilmiştir. Daha iyi sonuçlar için:

  • Türkçe sorular için Türkçe system prompt kullanın
  • Türkçe yazım kurallarına uygun giriş yapın
  • numex-pro modeli Türkçe bağlam anlama açısından en güçlüdür
  • Teknik konularda Türkçe terimler kullanmak yanıt kalitesini artırır

🛡️ Hata Yönetimi

Üretim ortamında sağlıklı çalışma için hata yönetimi ve retry mantığı şarttır.

import requests
import time
import os

url = "https://www.numexai.com.tr/api/v1/chat"
headers = {"Authorization": "Bearer " + os.environ.get("NUMEX_API_KEY", ""), "Content-Type": "application/json"}

def güvenli_chat(message: str, history=None, max_retries=3):
    for deneme in range(max_retries):
        r = requests.post(url, headers=headers, json={
            "message": message, "history": history or [], "maxOutputTokens": 512
        })
        if r.status_code == 429:
            bekleme = 2 ** deneme
            print(f"Rate limit, {bekleme}s bekleniyor...")
            time.sleep(bekleme)
            continue
        if r.status_code == 401:
            raise ValueError("Geçersiz API anahtarı")
        if r.status_code >= 500 and deneme < max_retries - 1:
            time.sleep(1)
            continue
        r.raise_for_status()
        return r.json().get("text", "")
    raise Exception("Maksimum deneme sayısına ulaşıldı")

✅ Best Practices

💰Maliyet Optimizasyonu
  • Basit görevler için numex-fast kullanın
  • System prompt'u kısa tutun
  • max_tokens sınırını belirleyin
  • Tekrarlayan sonuçları cache'leyin
🚀Performans
  • Uzun yanıtlar için streaming kullanın
  • Bağımsız istekleri paralel çalıştırın
  • Bağlantıyı yeniden kullanın (keep-alive)
  • Async/await tercih edin
🔒Güvenlik
  • API anahtarını ortam değişkeninde saklayın
  • Kullanıcı girdisini doğrulayın
  • Rate limiting uygulayın
  • HTTPS zorunlu, HTTP kullanmayın