-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[Firebase AI] Update models to newer versions #1809
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Summary of ChangesHello @andrewheard, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request focuses on updating the AI models used within the Firebase AI example application. The primary goal is to ensure compatibility and leverage the latest capabilities by migrating from older model versions, particularly addressing the upcoming deprecation of Imagen 3.0, and improving the Gemini model integration. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request correctly updates the Gemini and Imagen models to newer versions, which is an important update to keep the example app current and avoid using deprecated models. The changes look good. My main feedback is to consider centralizing the model name strings. Currently, they are duplicated across multiple files, which makes updates like this one more tedious and error-prone. Defining them as constants in a single place would significantly improve the code's maintainability.
| init(firebaseService: FirebaseAI, title: String, searchGroundingEnabled: Bool = false) { | ||
| let model = firebaseService.generativeModel( | ||
| modelName: "gemini-2.0-flash-001", | ||
| modelName: "gemini-2.5-flash-lite", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This pull request updates the model name gemini-2.0-flash-001 to gemini-2.5-flash-lite in 5 different files. This highlights that having the model name as a hardcoded string literal in multiple places is a maintenance burden. To improve maintainability and reduce code duplication, consider defining these model names as constants in a centralized location.
For example, you could create a struct to hold all model names:
// In a new file, e.g., ModelConstants.swift
struct ModelNames {
static let geminiFlash = "gemini-2.5-flash-lite"
static let imagen4 = "imagen-4.0-fast-generate-001"
}Then you could use it like this: modelName: ModelNames.geminiFlash. This would make future model updates much simpler and less error-prone.
|
|
||
| init(firebaseService: FirebaseAI) { | ||
| let modelName = "imagen-3.0-generate-002" | ||
| let modelName = "imagen-4.0-fast-generate-001" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Imagen model name is also hardcoded here. To improve maintainability, it would be beneficial to centralize this string literal into a shared constants structure, as suggested for the Gemini models. This would make it easier to manage and update model versions in the future.
Using a centralized constant like ModelNames.imagen4 (as proposed in my other comment) would be ideal.
| var generationConfig = ImagenGenerationConfig() | ||
| generationConfig.numberOfImages = 4 | ||
| generationConfig.aspectRatio = .landscape4x3 | ||
| generationConfig.aspectRatio = .square1x1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I switched this to 1:1 since the images are square in the UI and looked stretched:
| .aspectRatio(1, contentMode: .fill) |
paulb777
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's talk again about adding the enum ....
Replaced
gemini-2.0-flash-001withgemini-2.5-flash-liteand, more importantly, replacedimagen-3.0-generate-002withimagen-4.0-fast-generate-001. Imagen 3 is deprecated on the Gemini Developer API as of 2025-11-10.