Tools für das Modell bereitstellen, wenn über das Foundation Models-Framework von Apple auf die Gemini API zugegriffen wird


Bei den Beispielen auf dieser Seite wird davon ausgegangen, dass Sie die Schritte unter Erste Schritte: Über das Foundation Models-Framework von Apple auf Gemini API zugreifen ausgeführt haben.


Sie können Gemini-Modellen Gemini integrierte Tools zur Verfügung stellen, wenn Sie über das Foundation Models-Framework von Apple auf die Gemini API zugreifen, um das Modell mit externen Datenquellen zu verbinden.

Auf dieser Seite wird beschrieben, wie Sie die folgenden integrierten Tools für Gemini-Modelle verwenden:

Durch die Fundierung mit Google Search wird ein Gemini-Modell mit Echtzeit-, öffentlich verfügbaren Webinhalten verbunden. So kann das Modell genauere, aktuellere Antworten geben und überprüfbare Quellen zitieren.

Details, Best Practices und Anwendungsfälle finden Sie im allgemeinen Leitfaden Fundierung mit Google Search.

Unterstützte Modelle

  • gemini-4-argon
  • gemini-3.8-flash
  • gemini-3.5-flash-lite (und die ältere gemini-3.1-flash-lite)
  • gemini-nano-banana-2.1 (Nano Banana 2.1)
  • gemini-3.1-flash-image (Nano Banana 2)
  • gemini-3-pro-image (Nano Banana Pro)

Ältere Gemini 3.x Flash-Modelle für die allgemeine Verwendung unterstützen diese Funktion, werden aber aufgrund bevorstehender Abschaltungstermine und/oder des automatischen Routings zu neueren Modellen nicht mehr empfohlen.

Geben Sie das googleSearch-Tool beim Erstellen des geminiLanguageModel an:

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_MODEL_NAME",
  // Provide Google Search as a tool that the model can use to generate its response.
  serverTools: [GeminiTool.googleSearch()]
)

let session = LanguageModelSession(model: model)
let response = try await session.respond(to: "What is the weather in Toronto today?")
for entry in response.transcriptEntries {
  if case let .response(responseEntry) = entry {
    if let groundingMetadata = responseEntry
        .metadata["groundingMetadata"] as? GroundingMetadata {
      for chunk in groundingMetadata.groundingChunks {
        let webChunk = chunk.web
        // use the webChunk
      }
    }
  }
}

// Make sure to comply with the "Grounding with Google Search" usage requirements,
// which includes how you use and display the grounded result

Fundierung mit Google Maps

Die Fundierung mit Google Maps verbindet ein Gemini-Modell mit Geodaten aus Google Maps, sodass Sie standortbezogene Funktionen in Ihre Anwendungen einbinden können.

Details, Best Practices und Anwendungsfälle finden Sie im allgemeinen Leitfaden Fundierung mit Google Maps.

Unterstützte Modelle

  • gemini-4-argon
  • gemini-3.8-flash
  • gemini-3.5-flash-lite (und die ältere gemini-3.1-flash-lite)

Ältere Gemini 3.x Flash-Modelle für die allgemeine Verwendung unterstützen diese Funktion, werden aber aufgrund bevorstehender Abschaltungstermine und/oder des automatischen Routings zu neueren Modellen nicht mehr empfohlen.

Tool „Google Maps“ aktivieren

Stellen Sie das googleMaps-Tool im Rahmen der Erstellung des geminiLanguageModel bereit. Optional können Sie auch Koordinaten in der Konfiguration des Tools angeben.

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_MODEL_NAME",
  // Provide Google Maps as a tool that the model can use to generate its response.
  serverTools: [GeminiTool.googleMaps()]
)

let session = LanguageModelSession(model: model)

let response = try await session
      respond(to: "Where is a good place to grab a coffee near Alameda, CA?")

for entry in response.transcriptEntries {
  if case let .response(responseEntry) = entry {
    if let groundingMetadata = responseEntry
        .metadata["groundingMetadata"] as? GroundingMetadata {
      for chunk in groundingMetadata.groundingChunks {
        let mapsChunk = chunk.maps
        // use the mapsChunk
      }
    }
  }
}

// Make sure to comply with the "Grounding with Google Maps" usage requirements,
// which includes how you meet service usage requirements


Feedback geben zum Zugriff auf Gemini API über das Foundation Models-Framework von Apple