Gemini {7}API'sini kullanarak yapılandırılmış çıkış (JSON gibi) oluşturma


Gemini API, yanıtları varsayılan olarak yapılandırılmamış metin olarak döndürür. Ancak bazı kullanım alanları için JSON gibi yapılandırılmış metin gerekir. Örneğin, yanıtı, belirlenmiş bir veri şeması gerektiren diğer aşağı akış görevleri için kullanıyor olabilirsiniz.

Modelin oluşturduğu çıktının her zaman belirli bir şemaya uymasını sağlamak için model yanıtları için bir plan gibi çalışan bir yanıt şeması tanımlayabilirsiniz. Böylece daha az işleme sonrası işlem uygulayarak verileri doğrudan modelin sonucundan ayıklayabilirsiniz.

Aşağıda bazı örnekler verilmiştir:

  • Modelin yanıtının geçerli JSON oluşturduğundan ve sağladığınız şemaya uygun olduğundan emin olun.
    Örneğin, model, tarifler için her zaman tarif adını, malzeme listesini ve adımları içeren yapılandırılmış girişler oluşturabilir. Ardından bu bilgileri daha kolay ayrıştırabilir ve uygulamanızın kullanıcı arayüzünde görüntüleyebilirsiniz.

  • Sınıflandırma görevleri sırasında modelin nasıl yanıt verebileceğini kısıtlayın.
    Örneğin, modelin oluşturduğu etiketler (good, positive, negative veya bad gibi bir değişkenlik derecesine sahip olabilir) yerine modelin metni belirli bir etiket grubuyla (örneğin, positive ve negative gibi belirli bir enum grubu) notlandırmasına izin verebilirsiniz.

Bu kılavuzda, generateContent çağrısında responseSchema sağlayarak JSON çıkışını nasıl oluşturacağınız gösterilmektedir. Yalnızca metin girişine odaklanır ancak Gemini, giriş olarak resim, video ve ses içeren çok modlu isteklere yapılandırılmış yanıtlar da üretebilir.

Bu sayfanın alt kısmında, enum değerlerini çıkış olarak oluşturma gibi daha fazla örnek bulunmaktadır. Yapılandırılmış çıkış oluşturmanın diğer örneklerini görmek için Google Cloud dokümanlarında örnek şemalar ve model yanıtlar listesine göz atın.

Başlamadan önce

Henüz yapmadıysanız Vertex AI in Firebase SDK'ları için başlangıç kılavuzunu tamamlayın. Aşağıdakilerin tümünü yaptığınızdan emin olun:

  1. Blaze fiyatlandırma planını kullanma ve gerekli API'leri etkinleştirme dahil olmak üzere yeni veya mevcut bir Firebase projesi oluşturun.

  2. Uygulamanızı Firebase'e bağlayın. Buna, uygulamanızı kaydetme ve Firebase yapılandırmanızı ekleme.

  3. SDK'yı ekleyip Vertex AI hizmetini ve üretken modeli uygulamanızda başlatın.

Uygulamanızı Firebase'e bağlayıp SDK'yı ekledikten, Vertex AI hizmetini ve üretken modeli başlattıktan sonra Gemini API öğesini çağırmaya hazırsınız demektir.

1. adım: Yanıt şeması tanımlayın

Her alan için model çıkışının yapısını, alan adlarını ve beklenen veri türünü belirtmek üzere bir yanıt şeması tanımlayın.

Bir model yanıt oluştururken isteminizdeki alan adını ve bağlamı kullanır. Amacınızın net olması için net bir yapı, net alan adları ve gerekirse açıklamalar kullanmanızı öneririz.

Yanıt şemalarıyla ilgili dikkat edilmesi gerekenler

Yanıt şemanızı yazarken aşağıdakileri göz önünde bulundurun:

  • Yanıt şemasının boyutu, giriş jetonu sınırına dahil edilir.

  • Yanıt şeması özelliği aşağıdaki yanıt MIME türlerini destekler:

    • application/json: Yanıt şemasında tanımlandığı şekilde JSON çıkışı (yapılandırılmış çıkış koşulları için yararlıdır)

    • text/x.enum: Yanıt şemasında tanımlandığı gibi bir enum değeri çıktısı verir (sınıflandırma görevlerinde faydalıdır)

  • Yanıt şeması özelliği aşağıdaki şema alanlarını destekler:

    enum
    items
    maxItems
    nullable
    properties
    required

    Desteklenmeyen bir alan kullanırsanız model isteğinizi işlemeye devam edebilir ancak alanı yoksayar. Yukarıdaki listenin OpenAPI 3.0 şema nesnesinin bir alt kümesi olduğunu unutmayın (Vertex AI şeması referansına bakın).

  • Vertex AI in Firebase SDK'larında, varsayılan olarak tüm alanlar optionalProperties dizisi içinde isteğe bağlı olarak belirtmediğiniz sürece zorunlu olarak kabul edilir. Bu isteğe bağlı alanlar için model, alanları doldurabilir veya atlayabilir.

    Bunun, Vertex AI Gemini API için varsayılan davranışın tam tersi olduğunu unutmayın.

2. Adım: JSON oluşturmak için yanıt şemasıyla bir istem gönderin

Aşağıdaki örnekte, yapılandırılmış JSON çıkışının nasıl oluşturulacağı gösterilmektedir.

Yapılandırılmış çıkış oluşturmak için model başlatma sırasında uygun responseMimeType (bu örnekte application/json) ve modelin kullanmasını istediğiniz responseSchema belirtmeniz gerekir.

responseSchema kullanımı Gemini 1.5 Pro ve Gemini 1.5 Flash tarafından desteklenir.

Kullanım alanınıza ve uygulamanıza uygun bir Gemini modelini ve isteğe bağlı olarak bir konum seçmeyi öğrenin.

Diğer örnekler

Yapılandırılmış çıkışı nasıl kullanabileceğiniz ve oluşturabileceğinizle ilgili ek örnekleri görüntülemek için Google Cloud dokümanlarında örnek şemalar ve model yanıtları listesine göz atın.

Çıkış olarak enum değerleri oluştur

Aşağıdaki örnekte, sınıflandırma görevi için yanıt şemasının nasıl kullanılacağı gösterilmektedir. Modelden, filmin türünü açıklamasına göre tanımlaması istenir. Çıkış, modelin sağlanan yanıt şemasında tanımlanan değerler listesinden seçtiği bir düz metin sıralama değeridir.

Bu yapılandırılmış sınıflandırma görevini gerçekleştirmek için modeli başlatma sırasında uygun responseMimeType (bu örnekte text/x.enum) ve modelin kullanmasını istediğiniz responseSchema değerini belirtmeniz gerekir.

Kullanım alanınıza ve uygulamanıza uygun bir Gemini modelini ve isteğe bağlı olarak bir konum seçmeyi öğrenin.

İçerik oluşturmayı kontrol etmek için diğer seçenekler

  • İhtiyaçlarınıza özel bir sonuç üretmesi için modeli etkileyebilmek amacıyla istem tasarımı hakkında daha fazla bilgi edinin.
  • Modelin yanıt oluşturma şeklini kontrol etmek için model parametrelerini yapılandırın. Bu parametreler arasında maksimum çıkış jetonu, sıcaklık, en yüksek K ve en yüksek P yer alır.
  • Nefret söylemi ve müstehcen içerik dahil olmak üzere zararlı kabul edilebilecek yanıtlar alma olasılığını ayarlamak için güvenlik ayarlarını kullanın.
  • Modelin davranışını yönlendirmek için sistem talimatları ayarlayın. Bu özellik, model son kullanıcıdan başka talimatlar almadan önce eklediğiniz bir "önsöz" gibidir.


Vertex AI in Firebase ile ilgili deneyiminiz hakkında geri bildirim verin