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_tokensayarlanarak 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.