Commit Graph
80 Commits
Author SHA1 Message Date
Andrew Heard a512638ecd refactor(ai): consolidate HTTP request headers (#16612) 2026-09-04 21:45:01 -04:00
Andrew Heard 3796a55fdf feat(ai): add GeminiLanguageModel (#16601)
Implemented `GeminiLanguageModel`, providing an adapter for Google's
Gemini models conforming to Apple's `FoundationModels.LanguageModel`
protocol. This PR includes text to text generation capabilities; other
modalities and Gemini features will be handled in follow-up PRs.

**Note:** The `GeminiLanguageModel` implementation is guarded by the
environment variable `GEMINI_LANGUAGE_MODEL`. By default none of the
`GeminiLanguageModel` implementation is included.

Key additions:
- `GeminiLanguageModel`: Implements `LanguageModel` protocol with
  reasoning capabilities, configuring execution via `ModelResource`
  and `EndpointConfiguration`.
- `GeminiLanguageModelExecutor`: Converts prompt instructions and
  history into Gemini streaming requests, yielding responses as
  `LanguageModelSession.ResponseStream`.
- `GeminiTranscriptTranslator`: Translates Apple `Transcript` entries
  and segments into Gemini `Content` structures while preserving thought
  signatures and validating supported transcript features.
- `GeminiLanguageModel.Error` and `GeminiErrorMapper`: Translates Gemini
  API, HTTP, and network errors into standard `LanguageModelError` cases
  (`rateLimited`, `timeout`, `guardrailViolation`, `refusal`, and
  `unsupportedLanguageOrLocale`) or `GeminiLanguageModel.Error` cases
  (`serviceUnavailable`, `networkFailure`, `modelNotFound`, `apiError`).
  The `APIError` payload is designed for seamless forward compatibility
  with both GenerateContent and the upcoming Interactions API.
- Testing infrastructure: Adds `ConditionTrait.requireFoundationModels`
  to conditionally run Foundation Models tests only on supported
  platforms (macOS 27+, iOS 27+, watchOS 27+, visionOS 27+), along with
  shared test constants, mock fixtures, and comprehensive unit and
  integration test suites.
2026-09-04 18:05:45 -04:00
Paul Beusterien 58bd319bae Fix AppCheck concurrency infinite recursion bug in Auth (#16552) 2026-09-01 09:02:03 -07:00
Paul Beusterien 3b2287ec40 Remove deprecated Imagen APIs (#16483) 2026-08-06 09:51:46 -07:00
06d2b95fe5 feat(ai): add support for RealtimeInputConfig (#16441)
Co-authored-by: Andrew Heard <andrewheard@google.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-07-29 10:31:43 -05:00
Paul BeusterienandAndrew Heard f98844f320 docs(FirebaseAI): rename Vertex AI to Agent Platform Gemini API in comments (#16457)
Co-authored-by: Andrew Heard <andrewheard@google.com>
2026-07-28 07:57:06 -07:00
Mila ce61e5ac81 [AI] Mark speech output feature "public preview" (#16432) 2026-07-22 13:16:20 -04:00
Nick Cooke 1d28bb5de0 fix(firebaseai): prevent stream leak on cancellation (#16393) 2026-07-20 14:23:07 -05:00
Paul BeusterienandAndrew Heard 6b581ae875 [AI] Rename vertexAI to agentPlatform (#16372)
Co-authored-by: Andrew Heard <andrewheard@google.com>
2026-07-13 14:32:58 -07:00
Nick Cooke 1f73a56da7 fix(ailogic): xcode 27 renaming deprecation (#16297) 2026-06-30 15:47:19 -04:00
5681734e91 [AI] Support SpeechConfig in Text-To-Speech (#16226)
Co-authored-by: Ryan Wilson <wilsonryan@google.com>
Co-authored-by: Daymon <daymxn@google.com>
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
Co-authored-by: Daymon <17409137+daymxn@users.noreply.github.com>
Co-authored-by: Nick Cooke <nickcooke@google.com>
2026-06-10 18:05:58 -05:00
Andrew Heard 2e6f24faec [AI] Revert rename of GeminiModel to GeminiLanguageModel (#16237) 2026-06-07 15:21:43 -04:00
Andrew Heard bf840dae85 [AI] Add public init for GeminiLanguageModel (#16234) 2026-06-05 06:29:52 -04:00
Andrew Heard 67d2c5d0f2 [AI] Rename GeminiModel to GeminiLanguageModel (#16227) 2026-06-04 09:56:35 -04:00
Seyed Mojtaba Hosseini Zeidabadi 33ca06ed47 chore: fix a bunch of typos in the swift files (#16179) 2026-05-15 06:38:45 -07:00
Andrew Heard 7de0b35fa7 [AI] Remove Gemma from header comment on GeminiModel (#16177) 2026-05-14 11:27:18 -07:00
Andrew Heard 09298bd555 [AI] Add hybrid and Foundation Models debug logging (#16134) 2026-04-29 00:16:01 -04:00
c4a15f1f2c feat(ai): add live session resumption (#15904)
Co-authored-by: Daymon <daymxn@google.com>
Co-authored-by: Daymon <17409137+daymxn@users.noreply.github.com>
2026-04-28 19:22:48 +00:00
7c3c8b531a [AI] Add ImageConfig support for generateContent (#15923)
Co-authored-by: Andrew Heard <andrewheard@google.com>
Co-authored-by: Daymon <daymxn@google.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-28 14:04:34 -05:00
Andrew Heard d377408ea0 [AI] Refactor GeminiModelSession to use text(isThought:) (#16122) 2026-04-27 09:55:01 -04:00
Andrew Heard 223f04dc41 [AI] Lazily initialize sessions in HybridModelSession (#16119) 2026-04-25 11:38:21 -04:00
Andrew Heardandgemini-code-assist[bot] 59d89567f6 [AI] Add hybrid tag in x-goog-api-client header (#16118)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-24 17:19:18 -04:00
Andrew Heard b1c9e27fd0 [AI] Add hybrid support with Foundation Models (#16111) 2026-04-23 23:45:36 -04:00
Andrew Heard adb6dd46a2 [AI] Add visionOS 26.0 to @available annotations (#16114) 2026-04-23 19:06:33 -04:00
Andrew Heard 1067db6d57 [AI] Add HybridModel to support a fallback model (#16110) 2026-04-23 11:36:22 -04:00
Andrew Heard 90c17718b5 [AI] Extract Gemini-specific logic into GeminiModelSession (#16109) 2026-04-22 23:51:30 -04:00
Andrew Heard a67c7570b0 [AI] Add GenerationOptionsRepresentable for hybrid generation opts (#16105) 2026-04-22 10:44:11 -04:00
Andrew Heard dbe3b1bfc2 [AI] Add wrapper for FoundationModels.GenerationOptions (#16103) 2026-04-21 10:42:08 -04:00
Andrew Heard 289cf5633f [AI] Add wrapper for FoundationModels.SystemLanguageModel (#16086) 2026-04-16 10:16:43 -04:00
Paul Beusterien 90a9ae52ea [AI] feat: Add Google Maps Grounding support for Server Prompt Templates (#16067) 2026-04-13 08:32:39 -07:00
Paul Beusterien 4ab415ebc9 [SPM] Fix unfound file warnings from swift build (#16041) 2026-04-10 13:48:42 -07:00
Andrew Heard 3e515cba7d [AI] Annotate Imagen integration tests as deprecated (#16054) 2026-04-06 21:20:49 -04:00
Paul BeusterienandAndrew Heard 26bffc81cb [AI] Maps Grounding (#15911)
Co-authored-by: Andrew Heard <andrew.heard@google.com>
2026-04-03 16:42:31 -07:00
2a57f97341 [AI] Automatic function calling (#15915)
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-31 23:48:34 -04:00
Andrew Heard 6e71c8c5b6 [AI] Add IS_FOUNDATION_MODELS_SUPPORTED_PLATFORM flag (#15999) 2026-03-30 17:16:27 -04:00
Daymon 701e8a315e feat(ai): add deprecation notices to Imagen types (#15985) 2026-03-27 10:34:28 -05:00
Daymon dad019eb9a chore(ai): Add additional logging support for live api server messages (#15940) 2026-03-20 12:08:28 -04:00
Andrew Heard d98b1e88f6 [AI] Conform GenerationConfig and Schema to Equatable (#15949) 2026-03-19 10:31:28 -04:00
Andrew Heard 150698e98a [AI] Lower minimum required deployment targets (#15928) 2026-03-12 18:33:33 -04:00
Andrew Heard dd1ee29faa [AI] Add GenerationConfig.merge(_:with:) unit tests (#15918) 2026-03-10 11:47:20 -04:00
4565e79f78 [AI] Add GenerativeModelSession with structured output APIs (#15872)
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-10 00:51:04 -04:00
Andrew Heard 7c5e6fc123 [AI] Fix documentation generation warnings (#15892) 2026-02-27 20:58:38 +00:00
Paul Beusterien 893c0c6376 [AI] Fix API doc build warnings (#15883) 2026-02-24 09:28:59 -08:00
Paul Beusterienandgemini-code-assist[bot] 9f7c1119d7 [AI] Add AGENTS.md for FirebaseAI/Sources (#15871)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-02-20 15:19:43 -08:00
Paul Beusterien e40dca8661 [AI] URL Context is now GA in Gemini models (#15719) 2026-01-14 14:14:28 -08:00
3670cc3db0 [Firebase AI] Add support for setting thinking levels (#15557)
Co-authored-by: Rodrigo Lazo <rlazo@users.noreply.github.com>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2026-01-06 13:34:26 -05:00
google-labs-jules[bot]andAndrew Heard cc8f4aa3f8 [Firebase AI] Add x-ios-bundle-identifier header to requests (#15515)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Andrew Heard <andrewheard@google.com>
2025-11-21 17:39:55 -05:00
Andrew Heard f0555c6cdb [Firebase AI] Add support for direct Vertex AI integration testing (#15498) 2025-11-14 11:18:11 -05:00
Seyed Mojtaba Hosseini Zeidabadi ec7f926955 fix: "mutability" throughout the code (#15473) 2025-11-10 08:12:03 -08:00
Seyed Mojtaba Hosseini Zeidabadi e1cb63bc6f docs: Fix a bunch of typos (#15472) 2025-11-10 07:36:57 -08:00