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. Ardından, daha az son işlemle verileri doğrudan modelin çıkışından 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 çoklu formatlı isteklere de yapılandırılmış yanıtlar ü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ı kaydettirme ve Firebase yapılandırmanızı uygulamanıza ekleme dahil olmak üzere uygulamanızı Firebase'e bağlayın.

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

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

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ı, 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ığı ş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 dizisinde 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 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ış çı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ş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, filmin türünü açıklamasına göre tanımlaması istenir. Çıkış, modelin sağlanan yanıt şemasında tanımlanan bir değer listesinden seçtiği bir düz metin numaralandırma değeridir.

Bu yapılandırılmış sınıflandırma görevini gerçekleştirmek için modelin başlatılması sırasında uygun responseMimeType'yi (bu örnekte text/x.enum) ve modelin kullanmasını istediğiniz responseSchema'yi 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 çıktılar oluşturmak 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 verme