-
Notifications
You must be signed in to change notification settings - Fork 1.7k
[Vertex AI] Add enum integration test and run on Developer API v1 #14547
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
Conversation
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.
Hello @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!
Summary of Changes
This pull request adds an integration test for responseMIMEType: "text/x.enum"
and updates the integration tests to run on the v1
Developer API where possible. It also adds support for specifying a FirebaseApp
, along with the APIConfig
, in integration tests, allowing testing using a project on the Firebase Spark plan (no billing account).
Highlights
- Enum Integration Test: An integration test has been added to verify the functionality of
responseMIMEType: "text/x.enum"
. - API Version Update: Integration tests have been updated to run on the
v1
Developer API where feasible. - FirebaseApp Configuration: Support for specifying a
FirebaseApp
along with theAPIConfig
has been added to integration tests, enabling testing with Firebase Spark plan projects.
Changelog
Click here to see the changelog
- FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h
- Corrected a typo in a comment, changing
GoogleServices-Info.plist
toGoogleService-Info.plist
on line 105 and 110.
- Corrected a typo in a comment, changing
- FirebaseVertexAI/Tests/TestApp/Sources/Constants.swift
- Added a new file
Constants.swift
that defines enums forFirebaseAppNames
andModelNames
.
- Added a new file
- FirebaseVertexAI/Tests/TestApp/Sources/TestApp.swift
- Configured a Firebase App without a billing account (Spark plan) by loading options from
GoogleService-Info-Spark.plist
on lines 27-35.
- Configured a Firebase App without a billing account (Spark plan) by loading options from
- FirebaseVertexAI/Tests/TestApp/Sources/TestAppCheckProviderFactory.swift
- Replaced
TestAppCheckProviderFactory.notConfiguredName
withFirebaseAppNames.appCheckNotConfigured
on line 27.
- Replaced
- FirebaseVertexAI/Tests/TestApp/Tests/Integration/GenerateContentIntegrationTests.swift
- Replaced
APIConfig
withInstanceConfig
to includeappName
andlocation
on lines 26-40. - Updated the
generateContent
test to useInstanceConfig
andVertexAI.componentInstance
on lines 71-76. - Adjusted expected token counts in the
generateContent
test on lines 85-87. - Added a new test
generateContentEnum
to test enum generation with a system instruction on lines 98-138.
- Replaced
- FirebaseVertexAI/Tests/TestApp/Tests/Integration/IntegrationTests.swift
- Replaced
TestAppCheckProviderFactory.notConfiguredName
withFirebaseAppNames.appCheckNotConfigured
on lines 112 and 288.
- Replaced
- FirebaseVertexAI/Tests/TestApp/Tests/Utilities/IntegrationTestUtils.swift
- Moved the
isEqual
extension forNumeric
types fromGenerateContentIntegrationTests.swift
to this file on lines 41-45.
- Moved the
- FirebaseVertexAI/Tests/TestApp/Tests/Utilities/VertexAITestUtils.swift
- Created a new file
VertexAITestUtils.swift
withInstanceConfig
struct andcomponentInstance
extension forVertexAI
.
- Created a new file
- FirebaseVertexAI/Tests/TestApp/VertexAITestApp.xcodeproj/project.pbxproj
- Modified the project file to include the new files and resources.
Using Gemini Code Assist
The 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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
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 .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and 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 to provide feedback.
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.
Did you know?
The first version of Swift was released in 2014, marking a significant shift towards modern, safe, and expressive programming for Apple platforms.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
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 introduces an integration test for responseMIMEType: "text/x.enum"
, updates integration tests to run on the v1
Developer API, and adds support for specifying a FirebaseApp
in integration tests. The changes look good overall, but I have a few suggestions for improvement.
Summary of Findings
- File Naming Consistency: In
FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h
, the file name reference is corrected fromGoogleServices-Info.plist
toGoogleService-Info.plist
. It would be good to ensure consistency in naming across the project. - Redundant Constant Definition: The constant
notConfiguredName
is defined in bothConstants.swift
andTestAppCheckProviderFactory.swift
. It's better to define it in one place to avoid redundancy. - Test Coverage for Developer API v1: The pull request updates integration tests to run on the
v1
Developer API where possible. It's important to ensure sufficient test coverage for the new API version.
Merge Readiness
The pull request is almost ready for merging. I recommend addressing the redundant constant definition and ensuring sufficient test coverage for the Developer API v1. I am unable to directly approve this pull request, and recommend that others review and approve this code before merging.
responseMIMEType: "text/x.enum"
.v1
Developer API, where possible.FirebaseApp
, along with theAPIConfig
, in integration tests.#no-changelog