Tüm Yazılar
KategoriAI
Okuma Süresi
21 dk okuma
Yayın Tarihi
...
Kelime Sayısı
2.258kelime

Kahveni hazırla - bu içerikli bir makale!

Google AI Studio ile Gemini API entegrasyonu, prompt design, function calling, model tuning ve safety settings. Adim adim uygulamali gelistirici rehberi.

Google AI Studio 2026: Gemini Geliştirici Platformu

# Google AI Studio 2026: Gemini Gelistirici Platformu

Yapay zeka uygulamalari gelistirmek istiyorsan ve hangi platformla baslayacagina karar veremediysen, Google AI Studio tam sana gore bir baslangic noktasi. Gemini 2.5 Pro ve Flash modelleriyle prompt tasarimi, function calling, model tuning ve guvenlik ayarlarina kadar her seyi tek bir arayuzden yonetebiliyorsun. API key olusturmadan production-grade entegrasyona, maliyet optimizasyonundan mobil SDK kurulumuna kadar tum adimlari adim adim birlikte kesfedecegiz. Hazirsan baslayalim.

💡 Pro Tip: Google AI Studio ucretsiz katmani oldukca comert. Gemini Flash ile gunluk 1500 istek yapabiliyorsun — prototipleme ve MVP gelistirme icin harika bir baslangic noktasi.

Icindekiler


1. Google AI Studio Nedir?

Google AI Studio, eskiden "MakerSuite" olarak bilinen platformun evrilmis halidir. 2026'da tamamen yeniden tasarlanan arayuzuyle artik sadece prompt denemek icin degil, uretim seviyesinde AI uygulamalari gelistirmek icin kullanilabiliyor.

Platform Yetenekleri

Ozellik
Aciklama
Ucretsiz Limit
**Chat Mode**
Cok turlu konusma olusturma
Gunluk 1500 istek (Flash)
**Structured Prompt**
Ornek tabanli prompt sablonlari
Sinirsiz tasarim
**Function Calling**
Harici API ve arac entegrasyonu
Tum modellerde aktif
**Model Tuning**
Kendi verilerinle model ince ayar
5 GB/ay ucretsiz
**Code Execution**
Sandbox icinde Python calistirma
100 calistirma/gun
**Grounding**
Google Search ile gercek zamanli veri
500 istek/gun

Neden Google AI Studio?

Piyasada OpenAI Playground, Anthropic Console ve diger araclar varken neden Google AI Studio secmelisin?

  1. Ucretsiz katman cogu rakipten genis: Flash modeli ile gunluk 1500 istek, production oncesi prototipleme icin yeterli
  2. Multimodal nativ destek: Video, ses, gorsel ve PDF'yi tek bir API cagrisinda isleyebiliyorsun
  3. Google ekosistemi entegrasyonu: Firebase, Vertex AI, Cloud Functions ile seamless gecis
  4. 2M token context window: Gemini 2.5 Pro ile tek seferde dev dokumanlari isleyebilirsin
Daha once Firebase Advanced Patterns yazimda Firebase'in AI entegrasyonlarindan bahsetmistim. Google AI Studio bu vizyonun merkezinde duruyor.

2. API Key ve Proje Kurulumu

Google AI Studio ile calismaya baslamanin ilk adimi API key olusturmak. Surec oldukca basit ama bazi dikkat edilmesi gereken noktalar var.

Adim Adim Kurulum

bash
1# 1. Google AI Studio'ya git: https://aistudio.google.com
2# 2. Google hesabinla giris yap
3# 3. Sol menuden "Get API Key" tikla
4# 4. "Create API Key in new project" sec
5 
6# API key'i environment variable olarak sakla
7export GEMINI_API_KEY="AIzaSy..."
8 
9# Test et
10curl -s "https://generativelanguage.googleapis.com/v1beta/models?key=${GEMINI_API_KEY}" | jq '.models[].name'

Node.js / TypeScript Kurulumu

typescript
1// npm install @google/generative-ai
2import { GoogleGenerativeAI } from '@google/generative-ai';
3 
4const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);
5 
6// Model sec
7const model = genAI.getGenerativeModel({
8 model: 'gemini-2.5-pro-preview',
9 generationConfig: {
10 temperature: 0.7,
11 topP: 0.95,
12 topK: 40,
13 maxOutputTokens: 8192,
14 },
15});
16 
17// Basit bir sorgu
18async function generateResponse(prompt: string): Promise {
19 const result = await model.generateContent(prompt);
20 const response = result.response;
21 return response.text();
22}
23 
24// Kullanim
25const answer = await generateResponse(
26 'Swift ve Kotlin arasindaki temel farklar nelerdir?'
27);
28console.log(answer);

Swift / iOS Kurulumu

swift
1// Swift Package Manager ile ekle:
2// https://github.com/google/generative-ai-swift
3 
4import GoogleGenerativeAI
5 
6let model = GenerativeModel(
7 name: "gemini-2.5-flash",
8 apiKey: APIKey.default
9)
10 
11func generateContent() async throws -> String {
12 let response = try await model.generateContent("Merhaba Gemini!")
13 return response.text ?? "Yanit alinamadi"
14}

Guvenlik Uyarilari

API key yonetimi konusunda iOS Security Best Practices yazimda detayli bahsetmistim. Gemini API key icin de ayni prensipler gecerli:

  • Asla client-side koda gomme:: API key'i backend proxy uzerinden kullan
  • Environment variable kullan:: `.env` dosyasinda sakla, git'e commit etme
  • Key restriction uygula:: Google Cloud Console'dan IP veya referrer kisitlamasi ekle
  • Rotasyon plani olustur:: Her 90 gunde key'i yenile

3. Gemini Model Ailesi 2026

2026 itibariyle Gemini model ailesi oldukca genisledi. Her modelin kendine ozgu gucleri ve kullanim alanlari var.

Model Karsilastirmasi

Model
Context
Hiz
Zeka
Fiyat (1M input)
En Iyi Kullanim
**Gemini 2.5 Pro**
2M token
Orta
Cok yuksek
$1.25
Karmasik akil yurutme, kodlama
**Gemini 2.5 Flash**
1M token
Cok hizli
Yuksek
$0.075
Genel amac, yuksek hacim
**Gemini 2.0 Flash**
1M token
Hizli
Iyi
$0.04
Maliyet-hassas isler
**Gemini 2.5 Flash Lite**
128K token
Ultra hizli
Orta
$0.02
Basit siniflandirma, ozetleme

Model Secim Rehberi

typescript
1// Goreve gore model secimi
2function selectModel(task: string): string {
3 switch (task) {
4 case 'code-generation':
5 case 'complex-reasoning':
6 case 'long-document-analysis':
7 return 'gemini-2.5-pro-preview';
8 
9 case 'chat':
10 case 'summarization':
11 case 'general-qa':
12 return 'gemini-2.5-flash';
13 
14 case 'classification':
15 case 'entity-extraction':
16 case 'simple-generation':
17 return 'gemini-2.5-flash-lite';
18 
19 default:
20 return 'gemini-2.5-flash'; // Varsayilan: denge modeli
21 }
22}

Thinking Mode (Derin Dusunme)

Gemini 2.5 Pro ve Flash'in en dikkat cekici ozelliklerinden biri Thinking Mode. Model, cevap vermeden once adim adim dusunme surecini gosteriyor — tum bu surec token tuketimine dahil.

💡 Pro Tip: Thinking budget'i kontrol edebiliyorsun. Basit sorular icin thinking'i kapatarak token maliyetini %40'a kadar dusur. Karmasik problemlerde ise acik birak — dogru cevap orani belirgin sekilde artiyor.

4. Prompt Design: Etkili Sorgular Olusturma

Prompt design, Gemini'den en iyi sonucu almanin anahtari. Google AI Studio'nun Structured Prompt ozelligi bu konuda cok isini kolaylastirir.

System Instruction Yapisi

typescript
1const model = genAI.getGenerativeModel({
2 model: 'gemini-2.5-flash',
3 systemInstruction: {
4 parts: [{
5 text: `Sen deneyimli bir iOS gelistiricisin.
6 Kullanicilara Swift ve SwiftUI konularinda yardimci oluyorsun.
7 
8 Kurallar:
9 - Her zaman Turkce cevap ver
10 - Kod ornekleri Swift 6 uyumlu olsun
11 - Aciklayici ve ogretici bir ton kullan
12 - Best practice'leri vurgula
13 - Yanlis bilgi verme, emin degilsen belirt`
14 }]
15 }
16});

Few-Shot Prompting

typescript
1const prompt = `
2Asagidaki orneklere bakarak verilen kodu refactor et:
3 
4Ornek 1:
5Input: let x = ["a","b","c"]; for(let i=0;i
6Output: const items = ["a", "b", "c"];
7items.forEach(item => console.log(item));
8 
9Ornek 2:
10Input: var result = ""; for(var i=0;i
11Output: const result = arr.join(",");
12 
13Simdi bu kodu refactor et:
14Input: let sum=0; for(let i=0;i
15`;
16 
17const result = await model.generateContent(prompt);

Chain of Thought Prompting

Karmasik problemlerde modeli adim adim dusunmeye yonlendirmek sonuclari dramatik sekilde iyilestirir. Eger daha once Swift Async/Await yazisini okudunysan, concurrency problemlerinin ne kadar karmasik olabilecegini biliyorsundur — bu tip konularda CoT birebirdir.


5. Function Calling ile Tool Kullanimi

Function calling, Gemini'nin en guclu ozelliklerinden biri. Model senin tanimladigin fonksiyonlari cagirabiliyor ve gercek dunya verileriyle calisabiliyor.

Function Tanimlama

typescript
1import { GoogleGenerativeAI, FunctionDeclarationSchemaType } from '@google/generative-ai';
2 
3const tools = [{
4 functionDeclarations: [{
5 name: 'getWeather',
6 description: 'Belirtilen sehrin hava durumu bilgisini getirir',
7 parameters: {
8 type: FunctionDeclarationSchemaType.OBJECT,
9 properties: {
10 city: {
11 type: FunctionDeclarationSchemaType.STRING,
12 description: 'Sehir adi (ornek: Istanbul)'
13 },
14 unit: {
15 type: FunctionDeclarationSchemaType.STRING,
16 enum: ['celsius', 'fahrenheit'],
17 description: 'Sicaklik birimi'
18 }
19 },
20 required: ['city']
21 }
22 }, {
23 name: 'searchProducts',
24 description: 'Urun katalogundan arama yapar',
25 parameters: {
26 type: FunctionDeclarationSchemaType.OBJECT,
27 properties: {
28 query: {
29 type: FunctionDeclarationSchemaType.STRING,
30 description: 'Arama sorgusu'
31 },
32 maxPrice: {
33 type: FunctionDeclarationSchemaType.NUMBER,
34 description: 'Maksimum fiyat (TL)'
35 }
36 },
37 required: ['query']
38 }
39 }]
40}];
41 
42const model = genAI.getGenerativeModel({
43 model: 'gemini-2.5-flash',
44 tools
45});

Function Call Dongusu

typescript
1async function chatWithTools(userMessage: string): Promise {
2 const chat = model.startChat();
3 let response = await chat.sendMessage(userMessage);
4 
5 // Model function call istediyse
6 while (response.response.candidates?.[0]?.content?.parts?.some(
7 part => 'functionCall' in part
8 )) {
9 const functionCalls = response.response.candidates[0].content.parts
10 .filter(part => 'functionCall' in part)
11 .map(part => part.functionCall!);
12 
13 const functionResponses = await Promise.all(
14 functionCalls.map(async (call) => {
15 const result = await executeTool(call.name, call.args);
16 return {
17 functionResponse: {
18 name: call.name,
19 response: { result }
20 }
21 };
22 })
23 );
24 
25 response = await chat.sendMessage(functionResponses);
26 }
27 
28 return response.response.text();
29}
30 
31// Tool executor
32async function executeTool(name: string, args: Record) {
33 switch (name) {
34 case 'getWeather':
35 return await fetchWeatherAPI(args.city as string);
36 case 'searchProducts':
37 return await searchProductDB(args.query as string, args.maxPrice as number);
38 default:
39 throw new Error(`Bilinmeyen fonksiyon: ${name}`);
40 }
41}
GraphQL Mobile Development yazimda API entegrasyonlarindan bahsetmistim. Function calling ile Gemini'yi kendi GraphQL API'lerine baglamak muhtesem bir deneyim sunuyor.

6. Model Tuning ve Fine-tuning

Google AI Studio uzerinden Gemini modellerini kendi verilerin ile fine-tune edebilirsin. Bu ozellikle domain-specific bilgi gerektiren uygulamalarda cok degerli.

Tuning Veri Formati

json
1{
2 "training_data": [
3 {
4 "input": "SwiftUI'da bir liste nasil olusturulur?",
5 "output": "SwiftUI'da liste olusturmak icin List view'i kullanilir. ForEach ile dinamik icerik render edilir ve .listStyle() modifier ile gorunum ozellestirilebilir."
6 },
7 {
8 "input": "Core Data ile SwiftData arasindaki fark nedir?",
9 "output": "SwiftData, Core Data'nin modern Swift-native alternatifidir. @Model macro'su ile tanimlama yapilir, CloudKit entegrasyonu dahilidir ve SwiftUI ile dogal olarak calisir."
10 }
11 ]
12}

Tuning Best Practices

Parametre
Onerilen Deger
Aciklama
**Training ornekleri**
100-500
Minimum 20, ideal 100+
**Epoch sayisi**
3-5
Overfitting riskine dikkat
**Learning rate**
Otomatik
Google'in optimizer'i genelde iyi
**Validation split**
%20
Performans olcumu icin ayir

7. Safety Settings ve Icerik Filtreleme

Gemini API varsayilan olarak icerik filtreleme uygular. Production uygulamalarinda bu ayarlari senaryona gore yapilandirman gerekir.

typescript
1import { HarmCategory, HarmBlockThreshold } from '@google/generative-ai';
2 
3const safetySettings = [
4 {
5 category: HarmCategory.HARM_CATEGORY_HARASSMENT,
6 threshold: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
7 },
8 {
9 category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
10 threshold: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
11 },
12 {
13 category: HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
14 threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
15 },
16 {
17 category: HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
18 threshold: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
19 },
20];
21 
22const model = genAI.getGenerativeModel({
23 model: 'gemini-2.5-flash',
24 safetySettings,
25});

Icerik Filtreleme Seviyeleri

  • BLOCK_NONE:: Hicbir sey filtreleme (sadece arastirma amacli)
  • BLOCK_LOW_AND_ABOVE:: Dusuk risk dahil engelle (en kati)
  • BLOCK_MEDIUM_AND_ABOVE:: Orta ve yuksek risk engelle (onerilen)
  • BLOCK_ONLY_HIGH:: Sadece yuksek risk engelle (esnek)

8. Fiyatlandirma ve Maliyet Optimizasyonu

Gemini API fiyatlandirmasi token bazlidir. Akilli kullanim ile maliyeti ciddi olcude dusurmen mumkun.

Maliyet Hesaplama Ornegi

typescript
1interface CostEstimate {
2 inputTokens: number;
3 outputTokens: number;
4 model: string;
5 totalCost: number;
6}
7 
8function estimateCost(
9 inputTokens: number,
10 outputTokens: number,
11 model: string
12): CostEstimate {
13 const pricing: Record = {
14 'gemini-2.5-pro': { input: 1.25, output: 10.0 }, // per 1M tokens
15 'gemini-2.5-flash': { input: 0.075, output: 0.30 },
16 'gemini-2.0-flash': { input: 0.04, output: 0.16 },
17 };
18 
19 const rate = pricing[model] ?? pricing['gemini-2.5-flash'];
20 const totalCost =
21 (inputTokens / 1_000_000) * rate.input +
22 (outputTokens / 1_000_000) * rate.output;
23 
24 return { inputTokens, outputTokens, model, totalCost };
25}
26 
27// Ornek: 10K input + 2K output, Flash modeli
28const estimate = estimateCost(10_000, 2_000, 'gemini-2.5-flash');
29console.log(`Tahmini maliyet: $${estimate.totalCost.toFixed(6)}`);
30// Tahmini maliyet: $0.001350

Maliyet Dusurme Taktikleri

  1. Caching kullan: Ayni system instruction tekrar tekrar gonderme, context caching API'sini aktifle
  2. Model secimini optimize et: Basit isler icin Flash Lite, karmasik isler icin Pro
  3. Prompt'u kisalt: Gereksiz ornek ve aciklamalar token harcar
  4. Batch API kullan: Yuksek hacimli islemler icin %50 indirimli batch endpoint
  5. Token sayimini izle: countTokens API'si ile onceden maliyet tahmini yap

9. Mobil Uygulamalarda Gemini Entegrasyonu

Mobil uygulamalarda Gemini kullanimi icin iki ana yaklasim var: dogrudan SDK veya backend proxy.

iOS / Swift Entegrasyonu

CI/CD Pipeline yazimda mobil uygulama deploy sureclerinden bahsetmistim — Gemini entegrasyonu da ayni pipeline icinde yer alabilir.

swift
1import GoogleGenerativeAI
2 
3actor GeminiService {
4 private let model: GenerativeModel
5 
6 init() {
7 self.model = GenerativeModel(
8 name: "gemini-2.5-flash",
9 apiKey: Configuration.geminiAPIKey,
10 generationConfig: GenerationConfig(
11 temperature: 0.7,
12 maxOutputTokens: 2048
13 )
14 )
15 }
16 
17 func chat(message: String) async throws -> String {
18 let response = try await model.generateContent(message)
19 guard let text = response.text else {
20 throw GeminiError.emptyResponse
21 }
22 return text
23 }
24 
25 func analyzeImage(_ image: UIImage, prompt: String) async throws -> String {
26 let response = try await model.generateContent(prompt, image)
27 return response.text ?? ""
28 }
29}

Flutter Entegrasyonu

dart
1// pubspec.yaml: google_generative_ai: ^0.4.0
2import 'package:google_generative_ai/google_generative_ai.dart';
3 
4class GeminiRepository {
5 late final GenerativeModel _model;
6 
7 GeminiRepository() {
8 _model = GenerativeModel(
9 model: 'gemini-2.5-flash',
10 apiKey: const String.fromEnvironment('GEMINI_API_KEY'),
11 );
12 }
13 
14 Future generate(String prompt) async {
15 final content = [Content.text(prompt)];
16 final response = await _model.generateContent(content);
17 return response.text ?? '';
18 }
19}

ALTIN İPUCU

Bu yazının en değerli bilgisi

Bu ipucu, yazının en önemli çıkarımını içeriyor.

Easter Egg

Gizli bir bilgi buldun!

Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?

Okuyucu Ödülü

Google AI Studio ile hizli prototipleme icin su workflow'u oneriyorum: (1) Studio arayuzunde prompt tasarla ve test et, (2) "Get Code" butonuyla TypeScript/Python/Swift kodu al, (3) Kendi projen icin adapte et, (4) Function calling ile gercek API'lere bagla, (5) Safety settings ile production'a hazirla. Bu 5 adim, fikir asamasindan calisir MVP'ye 1 gunde ulasmanı saglar.

Sonuc ve Oneriler

Google AI Studio 2026, Gemini model ailesini kullanmanin en hizli ve en verimli yolu. Ucretsiz katmani ile prototipleme, function calling ile gercek dunya entegrasyonu ve model tuning ile domain uzmanlasmasi — hepsi tek bir platform uzerinde.

Onerilerim:

  • Gemini Flash ile basla — hiz/maliyet dengesi muhtesem
  • Function calling'i mutlaka dene — uygulamana gercek zamanli veri kazandiriyor
  • Safety settings'i production oncesi mutlaka yapilandir
  • Context caching ile maliyet optimizasyonu yap
  • WebSocket Real-Time entegrasyonu ile streaming yanıtlar olustur

Bir sonraki yazimda Gemini'nin multimodal yeteneklerini derinlemesine inceleyecegiz. Gorsel, ses ve video analizi ile neler yapabilecegini goreceksin!

Etiketler

#AI#Gemini#Google#API#Machine Learning#LLM#2026
Muhittin Çamdalı

Muhittin Çamdalı

Senior iOS Developer

12+ yıllık deneyime sahip iOS Developer. Swift, SwiftUI ve modern iOS mimarileri konusunda uzman. Apple platformlarında performanslı ve kullanıcı dostu uygulamalar geliştiriyorum.

iOS Geliştirme Haberleri

Haftalık Swift tips, SwiftUI tricks ve iOS best practices. Spam yok, sadece değerli içerik.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.

Paylaş

Bunu da begenebilirsiniz