Fornecer ferramentas ao modelo ao acessar a API Gemini usando a estrutura Foundation Models da Apple


Os exemplos nesta página pressupõem que você concluiu o Começar: acessar o Gemini API pelo framework de modelos de fundação da Apple.


É possível fornecer ferramentas integradas do Gemini para modelos do Gemini ao acessar o Gemini API pelo framework de modelos de fundação da Apple para conectar o modelo a fontes de dados externas.

A página mostra como usar as seguintes ferramentas integradas para modelos Gemini:

O embasamento com Google Search conecta um modelo do Gemini ao conteúdo da Web em tempo real disponível publicamente. Isso permite que o modelo forneça respostas mais precisas e atualizadas e cite fontes verificáveis.

Para detalhes, práticas recomendadas e casos de uso, consulte o guia geral Embasamento com Google Search.

Modelos compatíveis

  • gemini-4-argon
  • gemini-3.8-flash
  • gemini-3.5-flash-lite (e o gemini-3.1-flash-lite mais antigo)
  • gemini-nano-banana-2.1 (Nano Banana 2.1)
  • gemini-3.1-flash-image (Nano Banana 2)
  • gemini-3-pro-image (Nano Banana Pro)

Os modelos Gemini 3.x Flash de uso geral mais antigos são compatíveis com esse recurso, mas não são mais recomendados para uso devido às próximas datas de desativação e/ou ao roteamento automático para modelos mais recentes.

Forneça a ferramenta googleSearch como parte da criação do geminiLanguageModel:

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

Embasamento com Google Maps

O embasamento com o Google Maps conecta um modelo do Gemini a dados geoespaciais do Google Maps para que você possa criar funcionalidades de reconhecimento de local nos seus apps.

Para detalhes, práticas recomendadas e casos de uso, consulte o guia geral Embasamento com Google Maps.

Modelos compatíveis

  • gemini-4-argon
  • gemini-3.8-flash
  • gemini-3.5-flash-lite (e o gemini-3.1-flash-lite mais antigo)

Os modelos Gemini 3.x Flash de uso geral mais antigos são compatíveis com esse recurso, mas não são mais recomendados para uso devido às próximas datas de desativação e/ou ao roteamento automático para modelos mais recentes.

Ativar a ferramenta Google Maps

Forneça a ferramenta googleMaps como parte da criação do geminiLanguageModel. Também é possível fornecer coordenadas na configuração da ferramenta.

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


Envie feedback sobre o acesso ao Gemini API pelo framework de modelos de fundação da Apple