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. Adım adım uygulamalı geliştirici rehberi.

Google AI Studio 2026: Gemini Geliştirici Platformu

# Google AI Studio 2026: Gemini Geliştirici Platformu

Yapay zeka uygulamalari geliştirmek istiyorsan ve hangi platformla baslayacagina karar veremediysen, Google AI Studio tam sana göre bir başlangıç noktasi. Gemini 2.5 Pro ve Flash modelleriyle prompt tasarimi, function calling, model tuning ve güvenlik ayarlarina kadar her seyi tek bir arayüzden yonetebiliyorsun. API key olusturmadan production-grade entegrasyona, maliyet optimizasyonundan mobil SDK kurulumuna kadar tum adımlari adım adım birlikte kesfedecegiz. Hazirsan başlayalım.

💡 Pro Tip: Google AI Studio ucretsiz katmani oldukca comert. Gemini Flash ile günlük 1500 istek yapabiliyorsun — prototipleme ve MVP geliştirme için harika bir başlangıç noktasi.

İçindekiler


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 için değil, uretim seviyesinde AI uygulamalari geliştirmek için kullanilabiliyor.

Platform Yetenekleri

Özellik
Açıklama
Ucretsiz Limit
**Chat Mode**
Çok turlu konusma oluşturma
Günlük 1500 istek (Flash)
**Structured Prompt**
Örnek tabanli prompt şablonlari
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 içinde Python çalıştırma
100 çalıştırma/gun
**Grounding**
Google Search ile gerçek 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 çoğu rakipten genis: Flash modeli ile günlük 1500 istek, production oncesi prototipleme için yeterli
  2. Multimodal nativ destek: Video, ses, görsel ve PDF'yi tek bir API çağrısinda isleyebiliyorsun
  3. Google ekosistemi entegrasyonu: Firebase, Vertex AI, Cloud Functions ile seamless geçis
  4. 2M token context window: Gemini 2.5 Pro ile tek seferde dev dokumanlari isleyebilirsin
Daha önce 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 çalışmaya başlamanın ilk adimi API key oluşturmak. Süreç oldukca basit ama bazi dikkat edilmesi gereken noktalar var.

Adım Adım Kurulum

bash
1# 1. Google AI Studio'ya git: https://aistudio.google.com
2# 2. Google hesabinla giriş yap
3# 3. Sol menuden "Get API Key" tikla
4# 4. "Create API Key in new project" seç
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 seç
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<string> {
19 const result = await model.generateContent(prompt);
20 const response = result.response;
21 return response.text();
22}
23 
24// Kullanım
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}

Güvenlik Uyarıları

API key yönetimi konusunda iOS Security Best Practices yazimda detayli bahsetmistim. Gemini API key için 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 oluştur:: Her 90 günde key'i yenile

3. Gemini Model Ailesi 2026

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

Model Karşılaştırmasi

Model
Context
Hız
Zeka
Fiyat (1M input)
En Iyi Kullanım
**Gemini 2.5 Pro**
2M token
Orta
Çok yuksek
$1.25
Karmaşık akil yurutme, kodlama
**Gemini 2.5 Flash**
1M token
Çok hızlı
Yuksek
$0.075
Genel amac, yuksek hacim
**Gemini 2.0 Flash**
1M token
Hızlı
Iyi
$0.04
Maliyet-hassas işler
**Gemini 2.5 Flash Lite**
128K token
Ultra hızlı
Orta
$0.02
Basit siniflandirma, özetleme

Model Secim Rehberi

typescript
1// Goreve göre 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'; // Varsayılan: denge modeli
21 }
22}

Thinking Mode (Derin Düşünme)

Gemini 2.5 Pro ve Flash'in en dikkat cekici özelliklerinden biri Thinking Mode. Model, cevap vermeden önce adım adım düşünme surecini gösteriyor — tum bu süreç token tuketimine dahil.

💡 Pro Tip: Thinking budget'i kontrol edebiliyorsun. Basit sorular için thinking'i kapatarak token maliyetini %40'a kadar dusur. Karmaşık problemlerde ise açık birak — doğru cevap orani belirgin şekilde artiyor.

4. Prompt Design: Etkili Sorgular Oluşturma

Prompt design, Gemini'den en iyi sonuçu almanin anahtari. Google AI Studio'nun Structured Prompt ozelligi bu konuda çok isini kolaylastirir.

System Instruction Yapısı

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

Few-Shot Prompting

typescript
1const prompt = `
2Aşağıdaki örneklere bakarak verilen kodu refactor et:
3 
4Örnek 1:
5Input: let x = ["a","b","c"]; for(let i=0;i<x.length;i++){console.log(x[i])}
6Output: const items = ["a", "b", "c"];
7items.forEach(item => console.log(item));
8 
9Örnek 2:
10Input: var result = ""; for(var i=0;i<arr.length;i++){result+=arr[i]+","}
11Output: const result = arr.join(",");
12 
13Şimdi bu kodu refactor et:
14Input: let sum=0; for(let i=0;i<numbers.length;i++){sum=sum+numbers[i]}
15`;
16 
17const result = await model.generateContent(prompt);

Chain of Thought Prompting

Karmaşık problemlerde modeli adım adım dusunmeye yonlendirmek sonuçları dramatik şekilde iyilestirir. Eger daha önce Swift Async/Await yazisini okudunysan, concurrency problemlerinin ne kadar karmaşık olabilecegini biliyorsundur — bu tip konularda CoT birebirdir.


5. Function Calling ile Tool Kullanımi

Function calling, Gemini'nin en güçlü özelliklerinden biri. Model senin tanimladigin fonksiyonlari cagirabiliyor ve gerçek dunya verileriyle calisabiliyor.

Function Tanımlama

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 (örnek: 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: 'Ürün 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<string> {
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<string, unknown>) {
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 bağlamak muhteşem 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 çok değerli.

Tuning Veri Formati

json
1{
2 "training_data": [
3 {
4 "input": "SwiftUI'da bir liste nasil oluşturulur?",
5 "output": "SwiftUI'da liste oluşturmak için List view'i kullanılır. ForEach ile dinamik içerik render edilir ve .listStyle() modifier ile görünüm 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 tanımlama yapılır, CloudKit entegrasyonu dahilidir ve SwiftUI ile dogal olarak çalışır."
10 }
11 ]
12}

Tuning Best Practices

Parametre
Önerilen Değer
Açıklama
**Training örnekleri**
100-500
Minimum 20, ideal 100+
**Epoch sayısı**
3-5
Overfitting riskine dikkat
**Learning rate**
Otomatik
Google'in optimizer'i genelde iyi
**Validation split**
%20
Performans olcumu için ayir

7. Safety Settings ve İçerik Filtreleme

Gemini API varsayılan olarak içerik filtreleme uygular. Production uygulamalarinda bu ayarlari senaryona göre 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});

İçerik Filtreleme Seviyeleri

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

8. Fiyatlandirma ve Maliyet Optimizasyonu

Gemini API fiyatlandirmasi token bazlidir. Akıllı kullanım 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<string, { input: number; output: number }> = {
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// Örnek: 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 gönderme, context caching API'sini aktifle
  2. Model secimini optimize et: Basit işler için Flash Lite, karmaşık işler için Pro
  3. Prompt'u kisalt: Gereksiz örnek ve açıklamalar token harcar
  4. Batch API kullan: Yuksek hacimli işlemler için %50 indirimli batch endpoint
  5. Token sayimini izle: countTokens API'si ile onceden maliyet tahmini yap

9. Mobil Uygulamalarda Gemini Entegrasyonu

Mobil uygulamalarda Gemini kullanımi için iki ana yaklaşım var: doğrudan SDK veya backend proxy.

iOS / Swift Entegrasyonu

CI/CD Pipeline yazimda mobil uygulama deploy sureclerinden bahsetmistim — Gemini entegrasyonu da ayni pipeline içinde 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<String> 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 hızlı prototipleme için su workflow'u oneriyorum: (1) Studio arayuzunde prompt tasarla ve test et, (2) "Get Code" butonuyla TypeScript/Python/Swift kodu al, (3) Kendi projen için adapte et, (4) Function calling ile gerçek API'lere bağla, (5) Safety settings ile production'a hazirla. Bu 5 adım, fikir aşamasından çalışır MVP'ye 1 günde ulasmanı sağlar.

Sonuç ve Öneriler

Google AI Studio 2026, Gemini model ailesini kullanmanin en hızlı ve en verimli yolu. Ucretsiz katmani ile prototipleme, function calling ile gerçek dunya entegrasyonu ve model tuning ile domain uzmanlasmasi — hepsi tek bir platform uzerinde.

Onerilerim:

  • Gemini Flash ile başla — hız/maliyet dengesi muhteşem
  • Function calling'i mutlaka dene — uygulamana gerçek zamanli veri kazandiriyor
  • Safety settings'i production oncesi mutlaka yapılandır
  • Context caching ile maliyet optimizasyonu yap
  • WebSocket Real-Time entegrasyonu ile streaming yanıtlar oluştur

Bir sonraki yazimda Gemini'nin multimodal yeteneklerini derinlemesine inceleyecegiz. Görsel, 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ş

İlgili İçerik