| Contoh di halaman ini mengasumsikan bahwa Anda telah menyelesaikan Mulai: Akses Gemini API melalui framework Model Foundation Apple. |
Panduan ini menunjukkan cara mengirim berbagai jenis permintaan ke Gemini API melalui framework Model Dasar Apple menggunakan SDK Firebase AI Logic untuk platform Apple.
Halaman ini menunjukkan contoh cara mengirim jenis permintaan berikut:
- Membuat teks dari input khusus teks
- Membuat teks selama sesi multi-turn (chat)
- Membuat teks dari input multimodal (seperti gambar)
- Membuat gambar dari input khusus teks
Buat teks
Model Gemini mendukung kemampuan berikut untuk membuat teks:
- Membuat teks dari input khusus teks
- Membuat teks selama sesi multi-turn (chat)
- Membuat teks dari input multimodal (seperti gambar)
Model yang mendukung kemampuan ini
gemini-3.1-pro-previewgemini-3.5-flashgemini-3.1-flash-lite
Membuat teks dari input khusus teks
|
Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini. |
Anda dapat meminta model Gemini untuk membuat teks dengan memberikan input khusus teks.
import FoundationModels
import FirebaseCore
import FirebaseAILogic
// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.5-flash")
// Provide a prompt that contains text.
let prompt = "Write a story about a magic backpack."
// Create a session by injecting the model into Apple's `LanguageModelSession`.
// For a single-turn interaction, create a new session each time you call the model.
let session = LanguageModelSession(model: model)
// Generate a text response to the prompt.
let response = try await session.respond(to: prompt)
print(response.content)
Streaming respons
Anda dapat mencapai interaksi yang lebih cepat dengan tidak menunggu seluruh hasil dari pembuatan model, dan menggunakan streaming untuk menangani hasil parsial. Untuk
mengalirkan respons, gunakan streamResponse(to:), bukan respond(to:).
// imports
// initialization of Gemini API backend service and a `geminiLanguageModel`
// Provide a prompt that contains text.
let prompt = "Write a story about a magic backpack."
// Create a session by injecting the model into Apple's `LanguageModelSession`.
// For a single-turn interaction, create a new session each time you call the model.
let session = LanguageModelSession(model: model)
// Generate a text response to the prompt.
// To stream the response, use `streamResponse(to:)` instead of `respond(to:)`
let stream = session.streamResponse(to: "Write a story about a magic backpack.")
var response = ""
for try await snapshot in stream {
// The snapshot contains *all* content generated so far.
response = snapshot.content
}
Membuat teks selama sesi multi-turn (chat)
|
Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini. |
import FoundationModels
import FirebaseCore
import FirebaseAILogic
// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.5-flash")
// Create a session by injecting the model into Apple's `LanguageModelSession`.
// The session maintains state between each request.
let session = LanguageModelSession(model: model)
// Generate a text response to an initial prompt.
let response = try await session.respond(to: "Hello! I'd like to learn more about Albert Einstein.")
print(response.content) // Example response from model: "What would you like to know?"
// Continue using the existing session. Each prompt and response is added to the transcript.
let response2 = try await session.respond(to: "When was he born?")
print(response2.content) // Example response from model: "March 14, 1879"
Membuat teks dari input multimodal (seperti gambar)
|
Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini. |
Anda dapat meminta model Gemini untuk membuat teks dengan memberikan perintah berupa teks dan file, seperti gambar atau PDF.
import FoundationModels
import FirebaseCore
import FirebaseAILogic
// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.5-flash")
// Create a session by injecting the model into Apple's `LanguageModelSession`.
// For a single-turn interaction, create a new session each time you call the model.
let session = LanguageModelSession(model: model)
let cgImage: CGImage = // ... fetch CGImage from your datasource.
let response = try await session.respond {
"What are the dominant colors of this image, in order?"
Attachment(cgImage)
}
print(response.content)
Streaming respons
Anda dapat mencapai interaksi yang lebih cepat dengan tidak menunggu seluruh hasil dari pembuatan model, dan menggunakan streaming untuk menangani hasil parsial. Untuk
mengalirkan respons, gunakan streamResponse, bukan respond.
// imports
// initialization of Gemini API backend service and a `geminiLanguageModel`
// Create a session by injecting the model into Apple's `LanguageModelSession`.
// For a single-turn interaction, create a new session each time you call the model.
let session = LanguageModelSession(model: model)
let cgImage: CGImage = // ... fetch CGImage from your datasource.
let stream = session.streamResponse {
"What are the dominant colors of this image, in order?"
Attachment(cgImage)
}
var response = ""
for try await snapshot in stream {
// The snapshot contains *all* content generated so far.
response = snapshot.content
}
print(response)
Membuat gambar (menggunakan model "Nano Banana")
|
Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini. |
Model yang mendukung kemampuan ini
gemini-3-pro-image(alias "Nano Banana Pro")gemini-3.1-flash-image(alias "Nano Banana 2")
Anda dapat meminta model pembuat gambar Gemini (seperti model "Nano Banana") untuk membuat gambar dengan memberikan input berupa teks saja.
Contoh berikut menunjukkan cara membuat hanya gambar, tetapi model pembuat gambar dapat membuat gambar dan teks.Gemini
import FoundationModels
import FirebaseCore
import FirebaseAILogic
// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini image-generating model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.1-flash-image"
options:
GeminiGenerationOptions(responseModalities: .image)
)
let session = LanguageModelSession(model: model)
let response = try await session.respond(
to: "Generate an image of the Eiffel tower with fireworks in the background."
)
var generatedImage: CIImage?
// Find the image in the transcriptEntries.
for entry in response.transcriptEntries {
if case let .response(response) = entry {
for segment in response.segments {
if case let .attachment(attachment) = segment,
case let .image(image) = attachment.content {
generatedImage = image.ciImage
}
}
}
}
Membuat output JSON terstruktur
|
Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini. |
Model yang mendukung kemampuan ini
gemini-3.1-pro-previewgemini-3.5-flashgemini-3.1-flash-litegemini-3-pro-image
Model Gemini menampilkan respons sebagai teks tidak terstruktur secara default. Namun, beberapa kasus penggunaan memerlukan teks terstruktur, seperti JSON. Misalnya, Anda mungkin menggunakan respons untuk tugas downstream lainnya yang memerlukan skema data yang sudah ditetapkan.
Anda dapat mengonfigurasi model untuk memformat responsnya sesuai dengan skema JSON yang Anda berikan. Untuk mengetahui detail, praktik terbaik, dan kasus penggunaan untuk membuat output JSON terstruktur, lihat panduan umum Membuat output terstruktur.
import FoundationModels
import FirebaseCore
import FirebaseAILogic
@Generable(description: "Basic profile information about a cat")
struct CatProfile {
var name: String
@Guide(description: "The age of the cat", .range(0 ... 20))
var age: Int
@Guide(description: "A one sentence profile about the cat's personality")
var profile: String
}
// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.5-flash")
let session = LanguageModelSession(model: model)
let response = try await session.respond(
to: "Generate a cute rescue cat profile with an Elvish theme",
generating: CatProfile.self
)
let cat = response.content
Memberikan masukan tentang cara mengakses Gemini API melalui framework Model Dasar Apple