
iPhone Action Button ChatGPT API Entegrasyonu

Bu rehber, iPhone Action Button ChatGPT entegrasyonunu sıfırdan üretim seviyesine taşımak isteyen geliştiriciler için hazırlandı. İçerik; kestirme tasarımından function calling, streaming cevap işleme, rate limit ve retry stratejilerine, iOS background task entegrasyonuna ve örnek sunucu kodlarına kadar uzanır.
iPhone Action Button ChatGPT: Yüksek Seviye Mimari
Donanımdan buluta uzanan veri yolu şu şekilde işler:
[Action Button] → [iOS Shortcuts / App Intent] → [Local Preprocessor / PKG] → [Edge Server / Proxy] → [OpenAI ChatGPT API] → [Streaming / Completion] → [Client Presentation]
iPhone Action Button ChatGPT için Önerilen Mimariler
Doğrudan cihazdan API çağrısı yapılabileceği gibi, ölçeklenebilirlik, güvenlik ve streaming ihtiyaçları için arada bir proxy/edge sunucu kullanmak çoğu durumda gereklidir. Aşağıdaki yaklaşımlar önerilir:
- Basit: Shortcuts doğrudan OpenAI API’ye POST atar. Hızlı prototipler için uygun.
- Proxy Tabanlı: Cihaz, kendi API anahtarını taşımamak için edge sunucuya istek yollar. Sunucu API anahtarını yönetir, rate-limit ve caching uygular.
- Streaming-Ready: Streaming yanıtları işlemek için WebSocket veya Server-Sent Events köprüsü kullanılır; iOS tarafında kısa süreli polling veya push yoluyla sonuç iletilir.
iPhone Action Button ChatGPT: Güvenlik ve Anahtar Yönetimi
Direct API çağrısı yaparken cihazlarda uzun ömürlü anahtar saklamaktan kaçının. Önerilen yöntemler:
- Edge sunucu kullanarak API anahtarını sunucuda tutun.
- Sunucu ile cihaz arasında kısa ömürlü JWT / signed token kullanın.
- Rate-limit, logging ve anomali tespiti sunucu tarafında uygulanmalı.
iPhone Action Button ChatGPT: Shortcuts İçinde Streaming ve Function Calling Yaklaşımları
Shortcuts yerel olarak streaming response işleyemeyebilir. İki pratik çözüm vardır:
iPhone Action Button ChatGPT – Shortcuts + Polling Modeli
1) Shortcuts, edge sunucuya tetik gönderir.
2) Sunucu ChatGPT API ile streaming başlatır ve bir session id döner.
3) Shortcuts kısa aralıklarla session id ile sunucuyu sorgular.
4) Sunucu birikmiş chunk’ları döner; Shortcuts sonuçları birleştirip gösterir.
iPhone Action Button ChatGPT- WebSocket / Push Modeli
Edge sunucu WebSocket üzerinden cihazla iletişim kurar. iOS uygulaması ya WebSocket client barındırır ya da sunucu Apple Push Notifications ile cihazı bilgilendirir. Bu model düşük gecikme sunar fakat uygulama gerektirir; sadece Shortcuts ile tam bu özellik uygulanamaz.
iPhone Action Button ChatGPT: Fonksiyon Çağırma (Function Calling) ve Yapılandırma
Function calling ile ChatGPT’den yapısal veri bekleyebilir ve sunucuda tip güvenli işlem akışları başlatabilirsiniz. Örnek JSON şablonu:
{
"model": "gpt-4o",
"messages": [
{"role": "system", "content": "You are a helpful assistant that returns JSON when asked."},
{"role": "user", "content": "Toplantı notlarını özetle ve aksiyon maddelerini JSON olarak ver."}
],
"functions": [
{
"name": "meeting_summary",
"parameters": {
"type": "object",
"properties": {
"summary": {"type": "string"},
"actions": {
"type": "array",
"items": {"type": "string"}
}
},
"required": ["summary"]
}
}
],
"function_call": {"name": "meeting_summary"}
}
Sunucu aldığı JSON’i parse eder, tip kontrolü uygular ve doğrudan task queue’ya (ör. Redis Queue, Sidekiq) koyabilir.
iPhone Action Button ChatGPT: Rate Limit, Retry ve Backoff Stratejileri
Prod ortamında gerekli çözümler:
- Global Rate Limiting: Token bucket veya leaky bucket edge sunucuda.
- Per-User Throttling: Kullanıcı başına eş zamanlı istek sınırı.
- Retry Logic: Idempotent olmayan işlemler için dikkat. POST çağrılarda at-most-once garanti sağlamak üzere sunucu tarafı idempotency-key kullanın.
- Exponential Backoff: 500/429 hatalarında exponensiyel geri çekilme: initial 500ms, max 16s, jitter ekleyin.
iPhone Action Button ChatGPT: Streaming Cevapları Shortcuts içinde İşleme – Örnek Akış
Shortcuts doğrudan stream okuyamıyorsa şu akışı kullanın:
1) Shortcuts -> POST /start-session -> returns { session_id }
2) Edge -> OpenAI streaming -> buffer chunk -> store to Redis list
3) Shortcuts polls /session/{id}/poll -> returns new chunks
4) Shortcuts birleştirir ve kullanıcıyı bilgilendirir
Edge sunucu Node.js ile örnek (kısaltılmış pseudocode):
const express = require('express');
app.post('/start-session', async (req, res) => {
const sessionId = createSession();
startStreamToRedis(sessionId, req.body.prompt);
res.json({ sessionId });
});
app.get('/session/:id/poll', (req, res) => {
const chunks = getChunksFromRedis(req.params.id);
res.json({ chunks });
});
iPhone Action Button ChatGPT: iOS Background Tasks ve App Intents
Gerçek zamanlı deneyim sunmak için:
- App Intents ile kullanıcının tuşuna daha esnek yanıt verebilirsiniz.
- BGProcessingTask ile uzun süren arka plan işleri planlayabilirsiniz. Ancak Apple politikalarına uyun ve görevlerin süre sınırlarına dikkat edin.
- Push Notifications ile sonuçları cihaz üzerinde tetikleyin; kullanıcı anında haberdar olur.
iPhone Action Button ChatGPT: Prompt Templating ve Context Yönetimi
İyi bir deneyim için prompt templating kullanın. Örnek template sistemi:
{
"template_id": "meeting_summary_v1",
"template": "Aşağıdaki toplantı notlarını özetle: {{transcript}}. Özet maksimum 5 madde olsun."
}
Sunucu template’i render edip ChatGPT’ye gönderir. Context pencere sınırları için önemli parçaları özetleyip cache’leyin.
iPhone Action Button ChatGPT: Örnek Edge Sunucu Kodları
Aşağıda Node.js Express + OpenAI streaming örneğinin iskeleti var. Bu kod örneği eğitimseldir ve production için ek güvenlik, hata yönetimi ve logging gerektirir.
/* PSEUDO-CODE */
const express = require('express');
const { createOpenAIStream } = require('./openai-stream-helper');
const Redis = require('ioredis');
const redis = new Redis();
app.post('/start-session', async (req, res) => {
const { prompt } = req.body;
const sessionId = generateId();
res.json({ sessionId });
const stream = await createOpenAIStream(prompt);
stream.on('data', chunk => {
redis.rpush(`session:${sessionId}:chunks`, chunk);
});
stream.on('end', () => {
redis.rpush(`session:${sessionId}:chunks`, '[__END__]');
});
});
iPhone Action Button ChatGPT: Telemetri, Observability ve Logging
İzlenebilirlik için öneriler:
- Distributed tracing (ör. OpenTelemetry) ile request path takibi.
- Metricler: latency, 429/5xx oranı, session byte miktarı.
- Audit log: kullanıcı id, session id, prompt hash (plain text saklamayın).
iPhone Action Button ChatGPT: Örnek Shortcuts Blok Dizaynı (Adım Adım)
- Action Button tetiklenince “Dikte Başlat”
- Dikte tamamlanınca değişkene ata
- HTTP POST /start-session ile prompt gönder ve session_id al
- Kısa döngüyle /session/{id}/poll yap, yeni chunk varsa birleştir
- Sonuç hazırsa “Bildirim Göster” veya “Konuşma Olarak Çal”
iPhone Action Button ChatGPT: Production Tavsiyeleri
- Edge sunucu ile anahtar yönetin, cihazda API anahtarı saklamayın.
- Idempotency-key kullanın.
- Privacy-first: hassas verileri minimal saklayın ve şifreleyin.
- Rate limit ve backoff uygulayın, servis tarafında limitleri yönetin.
- Function calling çıktısını schema ile doğrulayın.



