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ı JSON gibi yapılandırılmış metinler gerektirir. Ö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. Böylece bu bilgileri uygulamanızın kullanıcı arayüzünde daha kolay bir şekilde ayrıştırıp 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, çıktı olarak enum değerleri oluşturma gibi daha fazla örnek bulunmaktadır. Yapılandırılmış çıktıları nasıl oluşturabileceğinize dair ek örnekleri görüntülemek için Google Cloud belgelerindeki Ö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ı kaydettirme ve Firebase yapılandırmanızı uygulamanıza ekleme dahil olmak üzere uygulamanızı Firebase'e bağlayın.

  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

Bir modelin çıktısının yapısını, alan adlarını ve her alan için 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ı, belirsiz olmayan alan adları ve hatta 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ığı şekliyle çıkış JSON'ı (yapılandırılmış çıkış gereksinimleri için faydalıdır)

    • text/x.enum: Yanıt şemasında tanımlandığı şekilde bir enum değeri döndürür (sınıflandırma görevleri için yararlı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 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 modelin başlatılması sırasında uygun responseMimeType'yi (bu örnekte application/json) ve modelin kullanmasını istediğiniz responseSchema'yi 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ış çıktıyı nasıl kullanabileceğiniz ve oluşturabileceğinizle ilgili ek örnekleri görüntülemek için Google Cloud belgelerindeki Örnek şemalar ve model yanıtları listesine göz atın.

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

Aşağıdaki örnekte, sınıflandırma görevi için yanıt şemasının nasıl kullanılacağı gösterilmektedir. Modelden, açıklamasına göre bir filmin türünü 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

  • Modeli, ihtiyaçlarınıza özel çıktılar oluşturacak şekilde etkileyebilmek için 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 maksimum çıkış jetonları, sıcaklık, topK ve topP'yi içerir.
  • 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 deneyiminizle ilgili geri bildirimde bulunun