Webhook'lar, eşzamansız veya uzun süren işlemler (LRO'lar) tamamlandığında Gemini API'nin sunucunuza gerçek zamanlı bildirimler göndermesine olanak tanır. Bu, durum güncellemeleri için API'ye yoklama yapma ihtiyacını ortadan kaldırarak gecikmeyi ve ek yükü azaltır.
Web kancaları, toplu işler, etkileşimler ve video üretimi gibi işlemler için kullanılabilir.
İşleyiş şekli
Bir işin tamamlanıp tamamlanmadığını kontrol etmek için GET /operations'yi tekrar tekrar yoklamak yerine, Gemini API webhook'larını bir etkinlik tetiklendiğinde hemen dinleyici URL'nize bir HTTP POST isteği gönderecek şekilde yapılandırabilirsiniz.
Gemini API, webhook'ları yapılandırmak için iki yöntem destekler:
- Statik webhook'lar: Gemini WebhookService API ile yapılandırılmış proje düzeyinde uç noktalar. Küresel entegrasyonlar için uygundur (ör. Slack'e bildirim gönderme, veritabanı senkronize etme vb.).
- Dinamik webhook'lar: Belirli bir iş çağrısının yapılandırma yükünde webhook URL'si ileten istek düzeyinde geçersiz kılmalar. Belirli işleri özel uç noktalara yönlendirmek için idealdir.
Statik web kancaları
Statik webhook'lar, tüm proje için kaydedilir ve eşleşen tüm etkinlikler için tetiklenir.
Webhook oluşturma
SDK veya REST API'yi kullanarak uç noktalar oluşturabilirsiniz.
ÖNEMLİ: Web kancası oluştururken API, imza gizli anahtarını yalnızca bir kez döndürür. İmzaları daha sonra doğrulamak için bunu güvenli bir şekilde (ör. ortam değişkenlerinizde) saklamanız gerekir. İmzalama gizli anahtarını kaybederseniz döndürmeniz gerekir.
Python
from google import genai
client = genai.Client()
webhook = client.webhooks.create(
name="MyBatchWebhook",
subscribed_events=["batch.succeeded", "batch.failed"],
uri="https://my-api.com/gemini-callback",
)
# Store webhook.new_signing_secret securely
webhook_secret = webhook.new_signing_secret
print(f"Created webhook: {webhook.name}, {webhook.id}")
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI();
async