APIMaster.ai

Geliştiriciler için LLM API — Entegrasyon Rehberi 2026 | APIMaster.ai

LLM API'leri için geliştirici rehberi: kimlik doğrulama, akış, fonksiyon çağırma, gömülü vektörler, RAG, asenkron desenler ve maliyet yönetimi. APIMaster üzerinden Claude, GPT ve DeepSeek ile çalışır.

Geliştiriciler için LLM API: Tam Entegrasyon Rehberi

Bu rehber, bir geliştiricinin LLM API'lerini üretim uygulamalarına entegre etmesi için gereken her şeyi kapsar: kimlik doğrulama, akış, araç kullanımı, gömülü vektörler, RAG desenleri ve maliyet yönetimi. Tüm örnekler OpenAI uyumlu formatı kullanır ve APIMaster.ai ile çalışır.

Kurulum

from openai import OpenAI

client = OpenAI(
    api_key="APIMASTER_ANAHTARINIZ",
    base_url="https://apimaster.ai/v1",
)

Temel Desenler

1. Temel Sohbet Tamamlama

def sor(soru: str, model: str = "claude-sonnet-4-6") -> str:
    yanit = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": soru}],
    )
    return yanit.choices[0].message.content

2. Sistem Yönergesi + Konuşma

class Konusma:
    def __init__(self, sistem: str, model: str = "claude-sonnet-4-6"):
        self.model = model
        self.mesajlar = [{"role": "system", "content": sistem}]
    
    def gonder(self, kullanici_mesaji: str) -> str:
        self.mesajlar.append({"role": "user", "content": kullanici_mesaji})
        yanit = client.chat.completions.create(
            model=self.model,
            messages=self.mesajlar,
        )
        cevap = yanit.choices[0].message.content
        self.mesajlar.append({"role": "assistant", "content": cevap})
        return cevap

bot = Konusma("Sen uzman bir Python geliştiricisisin.")
print(bot.gonder("GIL nedir?"))
print(bot.gonder("Bunun etrafından nasıl dolaşırım?"))

3. Akış (Streaming)

def akis(soru: str, model: str = "gpt-5.4"):
    with client.chat.completions.stream(
        model=model,
        messages=[{"role": "user", "content": soru}],
    ) as s:
        for metin in s.text_stream:
            yield metin

for parca in akis("Python'da async/await'i açıkla"):
    print(parca, end="", flush=True)

4. Yapılandırılmış Çıktı

from pydantic import BaseModel
from typing import List

class CikarilanVeri(BaseModel):
    varliklar: List[str]
    duygu: str
    ozet: str

import json

yanit = client.chat.completions.create(
    model="gpt-5.4",
    messages=[
        {"role": "system", "content": f"Veriyi çıkar ve şu şemaya uygun JSON döndür: {CikarilanVeri.schema()}"},
        {"role": "user", "content": "Apple rekor gelir bildirdi. CEO Tim Cook bunu olağanüstü olarak nitelendirdi."},
    ],
    response_format={"type": "json_object"},
)

veri = CikarilanVeri(**json.loads(yanit.choices[0].message.content))
print(veri.varliklar)    # ["Apple", "Tim Cook"]
print(veri.duygu)        # "positive"

5. Araç Kullanımı / Fonksiyon Çağırma

import json

araclar = [
    {
        "type": "function",
        "function": {
            "name": "sql_calistir",
            "description": "Salt-okunur bir SQL sorgusu çalıştır",
            "parameters": {
                "type": "object",
                "properties": {
                    "sorgu": {"type": "string"},
                    "veritabani": {"type": "string", "enum": ["kullanicilar", "siparisler", "urunler"]},
                },
                "required": ["sorgu", "veritabani"],
            },
        },
    }
]

def arac_cagirisi_isle(arac_adi: str, argumanlar: dict) -> str:
    # Sizin uygulamanız
    return json.dumps({"sonuc": "mock veri"})

def ajan_dongusu(kullanici_mesaji: str):
    mesajlar = [{"role": "user", "content": kullanici_mesaji}]
    
    while True:
        yanit = client.chat.completions.create(
            model="gpt-5.4",
            messages=mesajlar,
            tools=araclar,
        )
        
        if yanit.choices[0].finish_reason != "tool_calls":
            return yanit.choices[0].message.content
        
        # Araç çağrılarını işle
        mesajlar.append(yanit.choices[0].message)
        for tc in yanit.choices[0].message.tool_calls:
            sonuc = arac_cagirisi_isle(tc.function.name, json.loads(tc.function.arguments))
            mesajlar.append({"role": "tool", "tool_call_id": tc.id, "content": sonuc})

6. Gömülü Vektörler (Embeddings)

def gomulecek(metinler: list[str]) -> list[list[float]]:
    yanit = client.embeddings.create(
        model="text-embedding-3-small",
        input=metinler,
    )
    return [oge.embedding for oge in yanit.data]

# Anlamsal benzerlik
import numpy as np

def kosinus_benzerligi(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

vektorler = gomulecek(["Python harika", "Python'u seviyorum", "Java ayrıntılı"])
print(kosinus_benzerligi(vektorler[0], vektorler[1]))  # Yüksek: ~0.95
print(kosinus_benzerligi(vektorler[0], vektorler[2]))  # Daha düşük: ~0.70

7. RAG (Getirme ile Zenginleştirilmiş Üretim)

from typing import List

def rag_sorgula(kullanici_sorusu: str, bilgi_tabani: List[str]) -> str:
    # Adım 1: Soruyu göm
    soru_vektoru = gomulecek([kullanici_sorusu])[0]
    belge_vektorleri = gomulecek(bilgi_tabani)
    
    # Adım 2: En alakalı belgeleri bul
    benzerlikler = [kosinus_benzerligi(soru_vektoru, d) for d in belge_vektorleri]
    en_iyi_indeksler = sorted(range(len(benzerlikler)), key=lambda i: benzerlikler[i], reverse=True)[:3]
    baglam = "\n\n".join(bilgi_tabani[i] for i in en_iyi_indeksler)
    
    # Adım 3: Bağlamla yanıt oluştur
    yanit = client.chat.completions.create(
        model="claude-sonnet-4-6",
        messages=[
            {"role": "system", "content": f"Sadece şu bağlamı kullanarak yanıtla:\n\n{baglam}"},
            {"role": "user", "content": kullanici_sorusu},
        ],
    )
    return yanit.choices[0].message.content

8. Yüksek Verim için Asenkron

import asyncio
from openai import AsyncOpenAI

async_istemci = AsyncOpenAI(
    api_key="APIMASTER_ANAHTARINIZ",
    base_url="https://apimaster.ai/v1",
)

async def toplu_isle(sorular: list[str]) -> list[str]:
    gorevler = [
        async_istemci.chat.completions.create(
            model="gpt-4o-mini",
            messages=[{"role": "user", "content": s}],
            max_tokens=100,
        )
        for s in sorular
    ]
    yanitlar = await asyncio.gather(*gorevler)
    return [y.choices[0].message.content for y in yanitlar]

# 50 soruyu eşzamanlı işle
sonuclar = asyncio.run(toplu_isle(sorularim))

Üretim Kontrol Listesi

  • API anahtarları ortam değişkenlerinde, kaynak kodunda değil
  • 429/500 hataları için üstel geri çekilme ile yeniden deneme mantığı
  • max_tokens ayarlanarak maliyetlerin kontrolden çıkması önlenmiş
  • Kullanıcıya yönelik 2 saniyeden uzun yanıtlar için akış kullanılıyor
  • Maliyet takibi için token sayılarıyla istek günlüğü tutuluyor
  • Sağlayıcı limitlerine uymak için hız sınırlayıcı kullanılıyor

Doğru Modeli Seçin

Kullanım Durumu Model Maliyet Seviyesi
Prototipleme deepseek-v4-flash veya gpt-4o-mini Çok düşük
Üretim sohbet botu claude-haiku-4-5 Düşük
Kod asistanı deepseek-v4-flash veya claude-sonnet-4-6 Düşük–Orta
Karmaşık analiz claude-sonnet-4-6 Orta
Araştırma/mantık yürütme claude-opus-4-8 veya o3 Yüksek

Sıkça Sorulan Sorular

LLM API nedir? LLM API, kodunuzun metin girdileri göndermesine ve yapay zeka tarafından oluşturulmuş yanıtlar almasına olanak tanıyan bir HTTP arayüzüdür. Bir messages dizisi gönderirsiniz; API bir tamamlama döndürür. Çoğu, OpenAI Chat Completions formatını kullanır.

LLM API sağlayıcıları arasında nasıl seçim yapmalıyım? Model yeteneğini (karşılaştırmalar), token başına maliyeti, gecikmeyi ve güvenilirliği göz önünde bulundurun. Çoğu kullanım durumu için DeepSeek V4 Flash (düşük maliyetli kodlama), Claude Sonnet (yazma/analiz) veya GPT-4o (çoklu ortam) yaygın yolları kapsar. APIMaster ile sağlayıcıyı tek satırda değiştirebilirsiniz.

OpenAI uyumlu API nedir? OpenAI ile aynı /v1/chat/completions formatını uygulayan bir uç noktadır. Bu sayede openai Python kütüphanesini veya OpenAI uyumlu herhangi bir aracı, OpenAI dışı modellerle kullanabilirsiniz.

Üretimde LLM API hatalarını nasıl ele almalıyım? RateLimitError (geri çekilme ile yeniden dene), APIConnectionError (yeniden dene) ve InvalidRequestError (sorunu düzelt) hatalarını yakalayın. Üretim dayanıklılığı için zaman aşımları ve devre kesiciler kullanın.

Birden fazla LLM sağlayıcısı için tek bir API anahtarı kullanabilir miyim? Evet—APIMaster, GPT, Claude, DeepSeek ve Gemini için tek bir anahtar ve uç nokta sağlar. model parametresini değiştirerek modeller arasında geçiş yapın. Sağlayıcıya özel anahtarlara veya SDK'lara gerek yoktur.

LLM API erişimi edinin → · Modelleri karşılaştırın →