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 bir modelin nasıl yanıt verebileceğini kısıtlayın.
Örneğin, modelin oluşturduğu etiketler (good
,positive
,negative
veyabad
gibi bir değişkenlik derecesine sahip olabilir) yerine modelin metni belirli bir etiket grubuyla (örneğin,positive
venegative
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 yönelik 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.
Gemini API ile çalışmayla ilgili diğer seçenekler
İsteğe bağlı olarak, Gemini API
Google AI Studio ve Google AI istemci SDK'larını kullanarak ücretsiz erişim elde etme (sınırlamalar dahilinde ve kullanılabilir olduğunda) özelliğinin alternatif "Google AI" sürümünü deneyin. Bu SDK'lar, mobil ve web uygulamalarında yalnızca prototipleme için kullanılmalıdır.Gemini API'ün işleyiş şeklini öğrendikten sonra, Vertex AI in Firebase SDK'larımıza geçin (bu dokümanlar). Bu SDK'lar, mobil ve web uygulamaları için önemli olan birçok ek özelliğe sahiptir. Örneğin, Firebase App Check kullanarak API'yi kötüye kullanımdan koruma ve isteklerde büyük medya dosyalarını destekleme gibi.
İsteğe bağlı olarak Vertex AI Gemini API sunucu tarafı çağrısı yapın (ör. Python, Node.js veya Go ile)
Gemini API için sunucu tarafı Vertex AI SDK'larını, Firebase Genkit veya Firebase Extensions kullanı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:
Blaze fiyatlandırma planını kullanma ve gerekli API'leri etkinleştirme dahil olmak üzere yeni veya mevcut bir Firebase projesi oluşturun.
Uygulamanızı kaydettirme ve Firebase yapılandırmanızı uygulamanıza ekleme dahil olmak üzere uygulamanızı Firebase'e bağlayın.
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şlevini ç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
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 birlikte 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ı tüm Gemini modellerinde (Gemini 1.0 modelleri hariç) desteklenir.
import FirebaseVertexAI
// Provide a JSON schema object using a standard format.
// Later, pass this schema object into `responseSchema` in the generation config.
let jsonSchema = Schema.object(
properties: [
"characters": Schema.array(
items: .object(
properties: [
"name": .string(),
"age": .integer(),
"species": .string(),
"accessory": .enumeration(values: ["hat", "belt", "shoes"]),
],
optionalProperties: ["accessory"]
)
),
]
)
// Initialize the Vertex AI service and the generative model.
let model = VertexAI.vertexAI().generativeModel(
modelName: "gemini-2.0-flash",
// In the generation config, set the `responseMimeType` to `application/json`
// and pass the JSON schema object into `responseSchema`.
generationConfig: GenerationConfig(
responseMIMEType: "application/json",
responseSchema: jsonSchema
)
)
let prompt = "For use in a children's card game, generate 10 animal-based characters."
let response = try await model.generateContent(prompt)
print(response.text ?? "No text in response.")
Kullanım alanınıza ve uygulamanıza uygun bir modeli ve isteğe bağlı olarak bir konum nasıl seçeceğinizi öğ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.
import FirebaseVertexAI
// Provide an enum schema object using a standard format.
// Later, pass this schema object into `responseSchema` in the generation config.
let enumSchema = Schema.enumeration(values: ["drama", "comedy", "documentary"])
// Initialize the Vertex AI service and the generative model.
let model = VertexAI.vertexAI().generativeModel(
modelName: "gemini-2.0-flash",
// In the generation config, set the `responseMimeType` to `text/x.enum`
// and pass the enum schema object into `responseSchema`.
generationConfig: GenerationConfig(
responseMIMEType: "text/x.enum",
responseSchema: enumSchema
)
)
let prompt = """
The film aims to educate and inform viewers about real-life subjects, events, or people.
It offers a factual record of a particular topic by combining interviews, historical footage,
and narration. The primary purpose of a film is to present information and provide insights
into various aspects of reality.
"""
let response = try await model.generateContent(prompt)
print(response.text ?? "No text in response.")
Kullanım alanınıza ve uygulamanıza uygun bir modeli ve isteğe bağlı olarak bir konumu nasıl seçeceğinizi öğ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. Gemini modelleri için bu parametreler arasında maksimum çıkış jetonları, sıcaklık, en yüksek K ve en yüksek P yer alır. Imagen modelleri için bunlara en boy oranı, kişi oluşturma, filigran ekleme vb. dahildir.
- 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