
Uygulamanıza Yapay Zeka Özelliği Ekleme: Kod Odaklı Rehber
Son güncelleme: 6 Haziran 2026.
"Uygulamanıza yapay zeka ekleyin" başlıklı rehberlerin çoğu, size altı haneli danışmanlık projesi satmaya çalışan ajanslar tarafından yazılmaktadır. Bu rehber size kod odaklı yaklaşımı sunar: çalışan OpenAI ve Anthropic API çağrıları, Vercel AI SDK ile streaming UI, bir elektronik tabloya girebileceğiniz maliyet formülleri ve LLM'nin garip davranmaya karar verdiği durumlarda uygulamanızı güvenilir tutan üretim kalıpları. Her şeyi yeniden yazmadan yapay zekayı mevcut uygulamanıza entegre edeceksiniz.
Hızlı Özet — Neler Oluşturabilirsiniz (ve Maliyeti Ne Olur)
İlk çıkaracağınız yapay zeka özelliğini seçmeden önce, gerçekçi bir dökümü aşağıda bulabilirsiniz. Bu tahminler 100 aktif kullanıcıyı ve özellik daha ağır bir şey gerektirmedikçe varsayılan model olarak gpt-4o-mini'yi baz almaktadır.
| Yapay Zeka Özelliği | Zorluk | Aylık Maliyet (100 kullanıcı) | Geliştirme Süresi | En İyi Sağlayıcı |
|---|---|---|---|---|
| Yapay Zeka Sohbeti / Asistan | Kolay | $5-15 | 1-2 gün | openai, anthropic |
| Semantik Arama | Orta | $8-20 | 3-5 gün | openai embeddings + pgvector |
| İçerik Özetleme | Kolay | $3-10 | 1 gün | gpt-4o-mini, claude-haiku |
| Akıllı Otomatik Tamamlama | Orta | $10-25 | 3-5 gün | gpt-4o-mini |
| Belge Q&A (RAG) | Zor | $15-40 | 1-2 hafta | openai + vektör veritabanı |
| Sınıflandırma / Yönlendirme | Kolay | $2-8 | 1-2 gün | gpt-4o-mini |
| Görüntü Anlama | Orta | $15-50 | 3-5 gün | gpt-4o, gemini-2.5-pro |
| Ajan Eylemleri | Zor | $20-80 | 2-4 hafta | openai + function calling |
Ürününüz için hem en kolay hem de en değerli olan özelliği seçin. Çoğu SaaS uygulaması için bu ya uygulama içi bir sohbet asistanı ya da içerik özetlemedir. Oradan başlayın, işe yaradığını kanıtlayın, ardından genişletin.
Bu rehberin geri kalanı, ilk API çağrınızdan üretime hazır dağıtıma kadar her adımı ele alır.
Bir Satır Kod Yazmadan Önce — Yapay Zeka Eklememek İçin Durumlar
Kimsenin size söylemeyeceği bir şey: bir regex, SQL sorgusu veya basit bir if ifadesi sorunu çözüyorsa LLM kullanmayın. Her yapay zeka API çağrısı para harcar, gecikme ekler ve belirsizlik yaratır. Mevcut uygulamanıza yapay zeka entegre etmeden önce "regex testini" geçin.
Regex Testi
| Görev | Yapay Zeka Kullan? | Daha İyi Alternatif | Neden |
|---|---|---|---|
| E-posta doğrulama | Hayır | Regex + MX araması | Deterministik, ücretsiz, anlık |
| Tarih ayrıştırma | Hayır | dayjs / dateutil | Kütüphaneler bunu mükemmel halleder |
| CRUD filtreleme ("$100 üzeri siparişleri göster") | Hayır | SQL WHERE cümlesi | %100 doğru, milisaniye yanıt |
| Destek biletlerini 5 sabit kategoriye ayırma | Belki | Anahtar kelime kurallarıyla başlayın, doğruluk düşerse yapay zekaya geçin | Kural tabanlı ücretsiz ve öngörülür |
| 10 sayfalık hukuki belge özetleme | Evet | Başka hiçbir şey iyi çalışmaz | Yapılandırılmamış metin LLM'lerin parlattığı alandır |
| Bilgi tabanınızda doğal dil araması | Evet | Elasticsearch %70'e ulaşır, yapay zeka %95'e | Anlamsal anlama anahtar kelime eşleşmesini geçer |
| Kişiselleştirilmiş e-posta taslakları oluşturma | Evet | Şablonlar yalnızca bir yere kadar gider | LLM'ler ton, bağlam ve çeşitliliği doğal olarak yönetir |
| Dağınık, yapılandırılmamış kullanıcı geri bildirimlerini sınıflandırma | Evet | Manuel etiketleme ölçeklenmez | LLM'ler belirsizliği ve sınır durumlarını yönetir |
Yapay Zeka Gerçekten Değer Kattığında
Girdi dağınık, yapılandırılmamış veya büyük ölçüde değişiyorsa ve çıktının doğal, bağlam odaklı veya yaratıcı olması gerekiyorsa LLM kullanın. Verileriniz temiz ve kurallarınız açıksa yapay zekayı atlayın ve bütçenizi koruyun.
Hızlı bir maliyet gerçeklik kontrolü: gpt-4o-mini bile 1 milyon giriş token'ı başına $0,15 ile toplanıyor. Günde 10 istek yapan ve her biri 500 token olan bin kullanıcı = ayda 5 milyon token = yaklaşık aylık $0,75 giriş maliyeti. Ucuz, ama ücretsiz değil. Bu istekleri yanlışlıkla gpt-4o'ya ($2,50/1M token) yönlendirirseniz, bu ayda $12,50 eder; yönetilebilir, ancak ekstra zekaya ihtiyaç duymayan görevler için 16 kat daha pahalı.
Modelinizi ve Sağlayıcınızı Seçme
Çoğu SaaS LLM entegrasyon çalışması için değerlendirmeye değer üç büyük sağlayıcı var. 2026 yılı başı itibarıyla durumları aşağıdadır.
| Model | Giriş (1M token başına) | Çıkış (1M token başına) | Bağlam Penceresi | En Uygun Kullanım |
|---|---|---|---|---|
| GPT-4o | $2,50 | $10,00 | 128K | Genel görevler, en geniş ekosistem |
| GPT-4o-mini | $0,15 | $0,60 | 128K | Maliyet odaklı iş yükleri, yüksek hacim |
| Claude Sonnet 4.6 | $3,00 | $15,00 | 1M | Uzun belgeler, dikkatli talimat takibi |
| Claude Haiku 4.5 | $1,00 | $5,00 | 200K | Hızlı, ucuz, iyi kalite |
| Gemini 2.5 Pro | $1,25 | $10,00 | 1M | Multimodal (görüntü + metin), uzun bağlam |
Fiyatlandırma Haziran 2026 itibarıyla OpenAI, Anthropic ve Google AI'dan alınmıştır.
Ucuzdan Başlayın, Gerektiğinde Yükseltin
Paradan tasarruf ettiren yaklaşım: her şey için gpt-4o-mini veya claude-haiku-4.5 ile başlayın. Bir hafta çalıştırın, gerçek kullanıcı geri bildirimleriyle kaliteyi ölçün ve yalnızca ucuz modelin yetersiz kaldığı belirli görevler için daha büyük bir modele geçin. Çoğu özetleme, sınıflandırma ve otomatik tamamlama özelliği mini katman modellerde mükemmel çalışır.
Tüm yapay zeka stack'inizi oluşturmak için daha kapsamlı bir bakış açısı için Yapay Zeka SaaS Stack Rehberimize göz atın.
İlk Yapay Zeka Özelliğiniz — API Entegrasyonu
Kod yazma zamanı. İşte tam olarak aynı işlem — bir sohbet tamamlama çağrısı — hem Python hem de TypeScript'te. Backend'inizin kullandığı dili seçin.
Python (OpenAI SDK)
# pip install openai
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
def ask_ai(user_message: str) -> str:
"""Call the LLM and return the response text."""
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful assistant for our SaaS product."},
{"role": "user", "content": user_message},
],
temperature=0.7,
max_tokens=1024,
)
return response.choices[0].message.contentTypeScript (OpenAI SDK)
// npm install openai
import OpenAI from "openai";
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
async function askAI(userMessage: string): Promise<string> {
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "You are a helpful assistant for our SaaS product." },
{ role: "user", content: userMessage },
],
temperature: 0.7,
max_tokens: 1024,
});
return response.choices[0].message.content ?? "";
}Bu Kod Uygulamanızda Nerede Yaşar
OpenAI'yi hiçbir zaman frontend'inizden çağırmayın. Hiç. Bu kod şurada bulunmalıdır:
- Next.js: bir API rotası (
app/api/chat/route.ts) - FastAPI: bir endpoint (
@app.post("/api/chat")) - Express: bir handler (
router.post("/api/chat", ...))
Frontend'iniz sizin backend'inize istek gönderir, backend'iniz OpenAI'yi çağırır ve sonucu döndürür. Bu sayede OPENAI_API_KEY'iniz ait olduğu sunucuda kalır.
İşte bu kadar. Çalışan bir yapay zeka özelliğiniz var. Ama yavaş hissettiriyor — kullanıcı "gönder"e tıklıyor ve 2-3 saniye boş ekrana bakıyor. Streaming bunu çözüyor.
Gerçekçi Hissettirmek — Yapay Zeka Yanıtlarını Streaming ile Yayınlama
2-3 saniyelik bekleme, geri bildirim olmadan bozuk hissettiriyor. Streaming, token'lar geldikçe göstererek — ChatGPT'de gördüğünüz daktilo etkisi — aynı yanıtı anında hissettiriyor. Her üretim yapay zeka uygulaması bunu kullanıyor ve uygulanması şaşırtıcı derecede kolay.
Sunucu Taraflı Streaming (Python + TypeScript)
FastAPI ve Server-Sent Events kullanan Python yaklaşımı:
# pip install fastapi openai sse-starlette
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
from openai import OpenAI
import os
app = FastAPI()
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
@app.post("/api/chat")
async def chat(user_message: str):
"""Stream the LLM response token by token."""
def generate():
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful SaaS assistant."},
{"role": "user", "content": user_message},
],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
yield chunk.choices[0].delta.content
return StreamingResponse(generate(), media_type="text/event-stream")Ve streaming altyapısını sizin için yöneten Vercel AI SDK ile Next.js kullanan TypeScript eşdeğeri:
// npm install ai openai
// app/api/chat/route.ts (Next.js App Router)
import { openai } from "@ai-sdk/openai";
import { streamText } from "ai";
export async function POST(req: Request) {
const { messages } = await req.json();
const result = streamText({
model: openai("gpt-4o-mini"),
system: "You are a helpful SaaS assistant.",
messages,
});
return result.toDataStreamResponse();
}İstemci Taraflı: Vercel AI SDK Yaklaşımı
React tarafında, useChat hook'u her şeyi yönetir — mesaj durumu, streaming, hata yönetimi:
// components/Chat.tsx
"use client";
import { useChat } from "@ai-sdk/react";
export default function Chat() {
const { messages, input, handleInputChange, handleSubmit, isLoading } = useChat({
api: "/api/chat",
});
return (
<div>
{messages.map((m) => (
<div key={m.id} className={m.role === "user" ? "user-msg" : "ai-msg"}>
{m.content}
</div>
))}
<form onSubmit={handleSubmit}>
<input value={input} onChange={handleInputChange} placeholder="Bir şey sorun..." />
<button type="submit" disabled={isLoading}>Gönder</button>
</form>
</div>
);
}Sunucu ve istemci genelinde yaklaşık 40 satır kodla tamamen işlevsel bir streaming yapay zeka sohbeti. useChat hook'u mesaj dizisini yönetir, akışlı token'ları gerçek zamanlı olarak ekler ve yükleme durumlarını otomatik olarak yönetir. EventSource veya ReadableStream'e doğrudan dokunmuyorsunuz. Streaming'in nasıl çalıştığı hakkında daha fazla bilgi için Vercel AI SDK belgeleri kesin referanstır.
Çıktıları Güvenilir Hale Getirme — Yapılandırılmış Çıktılar ve Function Calling
Ham LLM metni sohbet için harika. Kodunuzun ayrıştırması gereken her şey için berbat. Veri çıkarıyorsanız, eylemler tetikliyorsanız veya yapılandırılmış UI oluşturuyorsanız yapılandırılmış çıktılara ihtiyacınız var.
Yapılandırılmış Çıktılar (JSON Modu)
OpenAI'nin response_format parametresi, modeli şemanıza uyan geçerli JSON döndürmeye zorlar. Modelin ayrıştırılabilir metin çıkarmasını umma devri bitti:
from pydantic import BaseModel
from openai import OpenAI
client = OpenAI()
class ProductReview(BaseModel):
sentiment: str # "positive", "negative", "neutral"
key_points: list[str]
rating: int # 1-5
recommended: bool
response = client.beta.chat.completions.parse(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Extract a structured review from user text."},
{"role": "user", "content": "Amazing product! Fast shipping, great quality. Only downside is the price."},
],
response_format=ProductReview,
)
review = response.choices[0].message.parsed
print(review.sentiment) # "positive"
print(review.rating) # 4
print(review.key_points) # ["Fast shipping", "Great quality", "High price"]Model tam olarak tanımladığınız alanları döndürmekle kısıtlanır. Ayrıştırma hatası yok, regex ile çıkarma yok, "bazen Markdown döndürüyor bazen döndürmüyor" durumu yok. Şemalar, modlar ve sınır durumları için tam referans için LLM Yapılandırılmış Çıktılar Rehberimize bakın.
Uygulama Eylemleri için Function Calling
Function calling, LLM'nin uygulamanızdaki eylemleri tetiklemesine izin verir — bir veritabanı kaydını güncelleme, e-posta gönderme veya harici bir API çağırma. Mevcut araçları tanımlarsınız ve model ne zaman kullanacağına karar verir:
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Update my email to [email protected]" }],
tools: [
{
type: "function",
function: {
name: "update_user_profile",
description: "Updates a field on the user's profile",
parameters: {
type: "object",
properties: {
field: { type: "string", enum: ["email", "name", "avatar_url"] },
value: { type: "string" },
},
required: ["field", "value"],
},
},
},
],
});
// The model returns a tool_call -- you execute it in your backend
const toolCall = response.choices[0].message.tool_calls?.[0];
if (toolCall?.function.name === "update_user_profile") {
const args = JSON.parse(toolCall.function.arguments);
await db.users.update({ [args.field]: args.value }); // Your DB call
}Model hiçbir şeyi doğrudan çalıştırmaz. Size neyi çağıracağınızı ve hangi argümanlarla çağıracağınızı söyler, gerçek işlevi güvenli backend'inizde siz çalıştırırsınız. Yapay zeka özelliklerini sohbetin ötesine taşıyıp gerçekten bir şeyler yapan uygulamalar böyle inşa edilir. Anthropic'in Claude'unu kullanıyorsanız benzer bir araç kullanım API'si bulunmaktadır.
Bilgi Ekleme — 50 Satırda RAG
LLM'niz ürününüz, belgeleriniz veya kullanıcılarınız hakkında hiçbir şey bilmiyor. RAG (Retrieval-Augmented Generation) bunu çözüyor: önce verilerinizde arama yapın, ardından ilgili parçaları modele bağlam olarak verin. Yapay zeka özelliklerini şirkete özgü hale getirmek için en yaygın kalıptır.
Kalıp: Ara, Sonra Sor
- Belgelerinizi vektörlere embed edin (bir kez, alım sırasında)
- Vektörleri bir veritabanında saklayın (
pgvector, Pinecone, Qdrant, Weaviate) - Bir kullanıcı soru sorduğunda en ilgili parçaları alın
- Bu parçaları LLM prompt'una bağlam olarak enjekte edin
Minimal RAG Uygulaması
# pip install openai numpy psycopg2-binary pgvector
from openai import OpenAI
import numpy as np
client = OpenAI()
# Step 1: Embed a document chunk
def embed(text: str) -> list[float]:
response = client.embeddings.create(model="text-embedding-3-small", input=text)
return response.data[0].embedding
# Step 2: Store in pgvector (assumes table with vector column exists)
def store_chunk(cursor, text: str, embedding: list[float]):
cursor.execute(
"INSERT INTO documents (content, embedding) VALUES (%s, %s)",
(text, np.array(embedding).tolist()),
)
# Step 3: Retrieve relevant chunks
def search(cursor, query: str, top_k: int = 3) -> list[str]:
query_embedding = embed(query)
cursor.execute(
"""SELECT content FROM documents
ORDER BY embedding <=> %s::vector LIMIT %s""",
(np.array(query_embedding).tolist(), top_k),
)
return [row[0] for row in cursor.fetchall()]
# Step 4: Ask the LLM with context
def ask_with_context(question: str, cursor) -> str:
chunks = search(cursor, question)
context = "\n\n".join(chunks)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": f"Answer using this context:\n\n{context}"},
{"role": "user", "content": question},
],
)
return response.choices[0].message.contentYaklaşık 40 satırda tüm RAG pipeline'ı bu kadar. Parçalama stratejileri, hibrit arama ve değerlendirme içeren üretime hazır bir kurulum için RAG uygulaması oluşturmaya yönelik tam rehberimize bakın. Framework değerlendiriyorsanız LangChain ve LlamaIndex her ikisi de üst düzey soyutlamalar sunar.
Üretim Kalıpları — Maliyet, Güvenlik ve Hata Yönetimi
Yukarıdakilerin tümü geliştirme ortamında mükemmel çalışır. Üretim, işlerin ilginçleştiği yerdir. Bu bölüm, yapay zeka özelliğinizi dağıttıktan iki hafta sonra karşılaşacağınız sorunları ve bunların size uyku (veya para) kaybettirmeden önce nasıl çözüleceğini ele alır.
Token Bütçe Hesabı (Yapay Zeka Özelliğiniz Gerçekte Ne Kadar Maliyetli)
Tahmin etmeyi bırakın. İşte formül: kullanıcılar × istek/gün × ort_token × token_başına_maliyet = aylık maliyet.
| Senaryo | Kullanıcılar | İstek/Gün | Ort. Token (giriş+çıkış) | Model | Aylık Maliyet |
|---|---|---|---|---|---|
| Hobi / İç araç | 50 | 5 | 800 | gpt-4o-mini | ~$1,50 |
| Erken aşama startup | 500 | 8 | 1.000 | gpt-4o-mini | ~$18 |
| Büyüme aşamasındaki SaaS | 5.000 | 12 | 1.200 | gpt-4o | ~$540 |
| Ölçek (karma yönlendirme) | 20.000 | 15 | 1.500 | gpt-4o-mini + gpt-4o | ~$800-1.200 |
Büyüme katmanı insanların şaşırdığı yerdir. 5.000 kullanıcıda model yönlendirmesi isteyeceksiniz: kolay istekleri (özetleme, sınıflandırma) gpt-4o-mini'ye gönderin ve yalnızca karmaşık istekleri (çok adımlı akıl yürütme, kod üretimi) gpt-4o'ya yönlendirin. Bu maliyetleri %60-70 oranında azaltabilir.
Diğer maliyet optimizasyon taktikleri:
- Prompt önbelleği: OpenAI ve Anthropic her ikisi de tekrarlayan prompt ön eklerinde %50-90 tasarruf sunar
max_tokenslimitleri: modelin gereğinden fazla üretmemesi için çıkış uzunluğunu sınırlayın- Semantik önbellek: bir kullanıcı aynı soruyu iki kez sorarsa önbelleğe alınmış yanıtı döndürün
Gelişmiş prompt optimizasyon ve önbellekleme stratejileri için bağlam mühendisliği teknikleri rehberimize bakın.
API Anahtarı Güvenliği (Backend Proxy Kalıbı)
Bu açık olmalı, ama üretim uygulamalarında görünmeye devam ediyor: API anahtarlarınızı hiçbir zaman frontend kodunda açıklamayın. İstemciye paketlenen ortam değişkenlerinde değil. "Gizlenmiş" bir JavaScript değişkeninde değil. OWASP LLM Uygulamaları için Top 10, hassas bilgi ifşasını (LLM02:2025) birincil risk olarak listeliyor.
Çözüm basit: frontend'iniz sizin backend API'nizi çağırır. Backend'iniz OpenAI'yi çağırır. API anahtarı yalnızca sunucuda yaşar, bir ortam değişkeninden veya gizli yöneticisinden yüklenir.
Ayrıca tek bir kullanıcının API bütçenizi tüketmesini önlemek için kullanıcı başına hız sınırlaması uygulayın. Bu bizi şuna getiriyor:
Kullanıcı Başına Hız Sınırlaması
| Plan | Yapay Zeka İsteği/Gün | Token Bütçesi/Ay | Özellikler |
|---|---|---|---|
| Ücretsiz | 20 | 100K token | Temel sohbet, özetleme |
| Pro (aylık $29) | 200 | 1M token | Tüm yapay zeka özellikleri, RAG araması |
| Kurumsal | Sınırsız | 10M token | Öncelikli kuyruk, özel model yönlendirme |
Kullanımı yalnızca global düzeyde değil, kullanıcı düzeyinde takip edin. Yapay zeka endpoint'inizi keşfeden ve 10.000 istek gönderen ücretsiz plan kullanıcısı, CFO'nuzu çok mutsuz eder.
Hata Yönetimi ve Yedek Zincirleri
LLM API'leri çöker. Saçmalık döndürür. Hız sınırlarına çarpar. Uygulamanızın bunların hepsini zarif bir şekilde yönetmesi gerekir. İşte yedekli retry kalıbı:
import OpenAI from "openai";
import Anthropic from "@anthropic-ai/sdk";
const openai = new OpenAI();
const anthropic = new Anthropic();
async function aiWithFallback(prompt: string): Promise<string> {
const models = [
() => callOpenAI("gpt-4o-mini", prompt),
() => callOpenAI("gpt-4o", prompt),
() => callAnthropic("claude-3-5-haiku-latest", prompt),
];
for (const callModel of models) {
try {
return await withRetry(callModel, { maxRetries: 2, baseDelay: 1000 });
} catch (err) {
console.warn(`Model failed, trying next fallback...`, err);
}
}
// All models failed -- return cached or static response
return "İsteğinizi şu anda işleyemiyorum. Lütfen kısa süre sonra tekrar deneyin.";
}
async function withRetry<T>(fn: () => Promise<T>, opts: { maxRetries: number; baseDelay: number }): Promise<T> {
for (let i = 0; i <= opts.maxRetries; i++) {
try {
return await fn();
} catch (err: any) {
if (i === opts.maxRetries) throw err;
if (err?.status === 429 || err?.status >= 500) {
await new Promise((r) => setTimeout(r, opts.baseDelay * 2 ** i)); // Exponential backoff
} else {
throw err; // Don't retry client errors (400, 401, etc.)
}
}
}
throw new Error("Unreachable");
}Temel ilkeler: 429 ve 5xx hatalarını üstel geri çekilme ile yeniden deneyin, retry'lar tükendiğinde bir sonraki model sağlayıcısına geçin ve her zaman son bir yedek bulundurun (önbelleğe alınmış yanıt, statik içerik veya açık hata mesajı). Yapay zeka arızasının uygulamanızı çöktürmesine asla izin vermeyin.
Techsy'nin Yapay Zeka Özelliği Geliştirme Yaklaşımı
Her yapay zeka projesine 3. bölümdeki aynı soruyla başlıyoruz: "Bu gerçekten bir LLM gerektiriyor mu, yoksa daha basit bir çözüm var mı?" İyi tasarlanmış bir SQL sorgusunun bunun %80'ini çözdüğü cevabının ne kadar sık geldiğine şaşıracaksınız.
Yapay zeka doğru seçim olduğunda sürecimiz şudur:
- Hızlı prototip —
gpt-4o-minive mümkün olan en basit mimarıyla 1-2 haftada çalışan kavram kanıtı - Gerçek kullanıcılarla ölçme — yapay benchmarklar değil, gerçek kullanıcı memnuniyeti (beğeni/beğenmeme, görev tamamlama oranı)
- Değerlendirmelerle iterasyon — kullanıcılardan önce kalite gerilemeyi yakalayan otomatik LLM değerlendirmeleri
- Üretime sertleştirme — hız sınırları, yedek zincirleri, maliyet izleme ve bu rehberdeki güvenlik kalıpları
- Maliyetleri optimize etme — model yönlendirme, prompt önbellekleme ve özellik başına doğru model boyutu
Gerçek Projelerde Neler Beklenmeli: Kamuya Açık Benchmark Verileriyle Yönlendirme
İzin almadan müşteri metriklerini yayınlamıyoruz, ancak aşağıdaki rakamlar yayınlanmış model benchmark'larına ve kamuya açık API fiyat verilerine dayanmaktadır — kendi ölçümlerinizi yapmadan önce mühendislik hedefi olarak kullanılabilir:
gpt-4o-mini'de streaming ilk-token gecikmesi normal yük altında genellikle 200ms ile 600ms arasında gerçekleşir.gpt-4obenzer veya biraz daha yüksektir. p95'in medyanın 1,5 ile 2 katı olmasını bekleyin.- Konuşma başına maliyet,
gpt-4o-mini'de tipik bir 600-token destek yanıtı için (400 giriş + 200 çıkış): (400/1.000.000 × $0,15) + (200/1.000.000 × $0,60) = $0,000060 + $0,000120 = günde 5.000 yanıtta bile yanıt başına $0,00018, bir sentin altında. - RAG ek yükü:
text-embedding-3-small($0,02/1M token) ile her sorguyu embed etmek, arama başına yaklaşık $0,000010 ekler; tamamlama çağrısıyla karşılaştırıldığında ihmal edilebilir düzeyde.
Bunlar temsili başlangıç noktalarıdır. Kendi çağrılarınızı enstrümente ettiğinizde, gerçek rakamlar prompt uzunluğuna, sistem mesajı boyutuna ve trafik zirvelerine göre değişecektir. Techsy tarafından oluşturulan entegrasyonları çalıştırdıysanız ve bu rehber için benchmark verilerini paylaşmak istiyorsanız, bize ulaşın.
SaaS ürünleri için streaming yapay zeka sohbeti, RAG destekli bilgi tabanları ve yapay zeka destekli sınıflandırma sistemleri geliştirdik. Bu rehberdeki kalıplar, müşteri projelerinde kullandığımız kalıpların aynısıdır — hiçbir şey saklanmıyor.
Yapay zeka özellikleri geliştiriyor ve ikinci bir gözete ihtiyaç mı duyuyorsunuz? Ücretsiz mimari inceleme alın.
Sıkça Sorulan Sorular
Sıfırdan yeniden oluşturmadan SaaS'ıma yapay zeka özellikleri nasıl eklerim?
Yeniden oluşturmazsınız. OpenAI veya Anthropic'i çağıran bir backend API rotası ekler, bunu mevcut UI'nıza bağlar ve dağıtırsınız. Bu rehberdeki kod örnekleri tam olarak bunu gösteriyor — yeni bir mimari değil, yeni bir endpoint. Sohbet veya özetleme gibi bir özellikle başlayın ve oradan genişletin.
Mevcut bir uygulamaya OpenAI'yi entegre etmenin en hızlı yolu nedir?
SDK'yı yükleyin (pip install openai veya npm install openai), bir backend API rotası oluşturun, chat.completions.create() çağırın ve sonucu döndürün. Vercel AI SDK'nın useChat hook'u ile 30 dakikadan kısa sürede streaming yapay zeka sohbetini çalıştırabilirsiniz.
Bir SaaS uygulamasına yapay zeka özellikleri eklemek ne kadara mal olur?
1.000 kullanıcılı bir uygulama için API maliyetleri model ve kullanım kalıplarına bağlı olarak aylık $15-150 arasında değişir. gpt-4o-mini $0,15/1M giriş token ile maliyetleri çok düşük tutar. Geliştirme süresi genellikle ilk özellik için 1-4 haftadır. Ayrıntılı senaryolar için token bütçe matematik bölümüne bakın.
Ürünüme yapay zeka eklemek için RAG mi yoksa fine-tuning mi kullanmalıyım?
Kullanım durumlarının %90'ı için RAG. Fine-tuning yalnızca modelin bağlam aracılığıyla sağlanamayan belirli bir stil veya alan bilgisi öğrenmesi gerektiğinde. RAG daha ucuz, uygulanması daha hızlı ve güncellemesi çok daha kolay — bir modeli yeniden eğitmek yerine vektör deponuza yalnızca yeni belgeler ekliyorsunuz.
Web uygulamasında OpenAI API anahtarımı nasıl ifşa etmekten kaçınırım?
OpenAI API'yi hiçbir zaman frontend'den çağırmayın. Bir backend proxy oluşturun — frontend'iniz API'nizi çağırır, backend'iniz OpenAI'yi çağırır. Anahtarı sunucu tarafında ortam değişkenlerinde saklayın. Kimsenin endpoint'inizi kötüye kullanmaması için kullanıcı başına hız sınırlaması ekleyin.
Mevcut bir uygulamaya yapay zeka özellikleri eklemek ne kadar sürer?
Temel bir sohbet özelliği 1-2 gün alır. Streaming UI 2-3 gün ekler. Şirket verilerinizle RAG 1-2 hafta alır. Hız sınırları, hata yönetimi ve maliyet kontrolleriyle tam üretim sertleştirmesi 2-4 hafta alır. Temel versiyonu birkaç günde yayınlayabilir ve oradan iterasyon yapabilirsiniz.
GPT-4o, Claude ve Gemini'yi ne zaman kullanmalıyım?
En geniş ekosisteme ve en iyi araç desteğine sahip genel görevler için GPT-4o. Uzun belgeler, dikkatli talimat takibi ve kodlama görevleri için Claude Sonnet 4.6. Multimodal çalışma (görüntüler + metin) ve Google Cloud entegrasyonu için Gemini 2.5 Pro. Maliyet tasarrufu için GPT-4o-mini ile başlayın — yalnızca kalite farkını ölçebildiğinizde yükseltin.
Üretimdeki yapay zeka hatalarını nasıl yönetirim?
429 (hız sınırı) ve 5xx hataları için üstel geri çekilmeli retry mantığı uygulayın. Bir yedek model zinciri oluşturun — birincil modelinizi deneyin, alternatif bir sağlayıcıya düşün, ardından önbelleğe alınmış veya statik bir yanıta düşün. Yapay zeka arızasının uygulamanızı çöktürmesine veya boş ekran göstermesine asla izin vermeyin.
2026'da bir SaaS uygulaması hangi yapay zeka özelliklerine sahip olmalıdır?
Özel ürününüz için en yüksek değerli, en düşük karmaşıklıklı özellikle başlayın. Çoğu SaaS uygulaması için: yapay zeka destekli arama, içerik özetleme veya uygulama içi asistan. Özellik türü başına maliyet ve zorluk tahminleri için bu rehberin başındaki Hızlı Özet tablosuna bakın.
Yapay zeka özelliğimin gerçekten çalışıp çalışmadığını nasıl anlarım?
LLM değerlendirmeleri kurun — temsili girdiler üzerinde yanıt kalitesini, alaka düzeyini ve güvenliği ölçen otomatik testler. Beğeni/beğenmeme oylamaları ve takip sorusu sıklığı gibi kullanıcı memnuniyet metriklerini takip edin. Yapay zeka destekli görev tamamlamayı yapay zekasız akışla karşılaştırın. Kullanıcılar görevleri daha hızlı veya başarılı bir şekilde tamamlamıyorsa özellik üzerinde çalışılması gerekiyor demektir.
Yapay Zeka Özelliğinizi Yayınlamak İçin Kontrol Listesi
Artık tam resmi gördünüz. İşte adım adım yolunuz:
- Özelliğinizi seçin — ürününüz için en yüksek değerli, en düşük zorluklu seçeneği seçmek için Hızlı Özet tablosunu kullanın
- Regex testini geçirin — yapay zekanın bu görev için gerçekten doğru araç olduğunu doğrulayın
- Ucuz bir modelle başlayın —
gpt-4o-miniveyaclaude-haiku-4.5, yükseltmeden önce kaliteyi ölçün - Temel API çağrısını oluşturun — Python veya TypeScript, bir backend proxy arkasında
- Streaming ekleyin —
Vercel AI SDKbunu React uygulamaları için önemsiz kılar - Yapılandırılmış çıktılar ekleyin — özelliğinizin serbest metin yerine ayrıştırılabilir veriye ihtiyacı varsa
- Token bütçenizi hesaplayın — kullanıcılar × istekler × token'lar × maliyet = aylık fatura
- Hız sınırları ve hata yönetimi uygulayın — kullanıcı başına limitler, retry mantığı, yedek zincir
- Dağıtın ve ölçün — kullanıcı memnuniyetini takip edin, yalnızca API'nin 200 döndürüp döndürmediğini değil
İlk yapay zeka özelliğiniz düşündüğünüzden daha yakın. En zor kısım kod değil — ilk hangi özelliği oluşturacağınıza karar vermek. Birini seçin, bu hafta yayınlayın ve gerçek kullanıcıların söylediklerine göre iterasyon yapın.