Как предоставить модели инструменты при доступе к Gemini API через фреймворк Foundation Models от Apple


Примеры на этой странице предполагают, что вы выполнили инструкции из статьи Начало работы: доступ к Gemini API через фреймворк Foundation Models от Apple.


Вы можете предоставить моделям Gemini встроенные инструменты Gemini, когда получаете доступ к Gemini API через фреймворк Foundation Models от Apple, чтобы подключить модель к внешним источникам данных.

В этой статье рассказывается, как использовать следующие встроенные инструменты для моделей Gemini:

Обоснование с Google Search позволяет модели Gemini получать доступ к общедоступному веб-контенту в реальном времени. Это позволяет модели давать более точные и актуальные ответы и ссылаться на проверенные источники.

Подробную информацию, рекомендации и примеры использования вы найдете в общем руководстве Обоснование с помощью Google Search.

Поддерживаемые модели

  • gemini-4-argon
  • gemini-3.8-flash
  • gemini-3.5-flash-lite (и более старая версия 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)

Старые модели Gemini 3.x Flash общего назначения поддерживают эту функцию, но мы не рекомендуем их использовать, поскольку они скоро будут отключены и/или запросы к ним будут автоматически перенаправляться к более новым моделям.

Укажите инструмент googleSearch при создании 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

Обоснование с помощью Google Maps

Заземление с помощью Google Maps связывает модель Gemini с геопространственными данными из Google Maps, чтобы вы могли добавлять в приложения функции, учитывающие местоположение.

Подробную информацию, рекомендации и примеры использования вы найдете в общем руководстве Обоснование с помощью Google Maps.

Поддерживаемые модели

  • gemini-4-argon
  • gemini-3.8-flash
  • gemini-3.5-flash-lite (и более старая версия gemini-3.1-flash-lite)

Старые модели Gemini 3.x Flash общего назначения поддерживают эту функцию, но мы не рекомендуем их использовать, поскольку они скоро будут отключены и/или запросы к ним будут автоматически перенаправляться к более новым моделям.

Включить инструмент "Google Maps"

Предоставьте инструмент googleMaps в рамках создания 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 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


Оставить отзыв о доступе к Gemini API через фреймворк Foundation Models от Apple