-
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
v1Developer API where feasible. - FirebaseApp Configuration: Support for specifying a
FirebaseAppalong with theAPIConfighas 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.plisttoGoogleService-Info.pliston line 105 and 110.
- Corrected a typo in a comment, changing
- FirebaseVertexAI/Tests/TestApp/Sources/Constants.swift
- Added a new file
Constants.swiftthat defines enums forFirebaseAppNamesandModelNames.
- 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.pliston 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.notConfiguredNamewithFirebaseAppNames.appCheckNotConfiguredon line 27.
- Replaced
- FirebaseVertexAI/Tests/TestApp/Tests/Integration/GenerateContentIntegrationTests.swift
- Replaced
APIConfigwithInstanceConfigto includeappNameandlocationon lines 26-40. - Updated the
generateContenttest to useInstanceConfigandVertexAI.componentInstanceon lines 71-76. - Adjusted expected token counts in the
generateContenttest on lines 85-87. - Added a new test
generateContentEnumto test enum generation with a system instruction on lines 98-138.
- Replaced
- FirebaseVertexAI/Tests/TestApp/Tests/Integration/IntegrationTests.swift
- Replaced
TestAppCheckProviderFactory.notConfiguredNamewithFirebaseAppNames.appCheckNotConfiguredon lines 112 and 288.
- Replaced
- FirebaseVertexAI/Tests/TestApp/Tests/Utilities/IntegrationTestUtils.swift
- Moved the
isEqualextension forNumerictypes fromGenerateContentIntegrationTests.swiftto this file on lines 41-45.
- Moved the
- FirebaseVertexAI/Tests/TestApp/Tests/Utilities/VertexAITestUtils.swift
- Created a new file
VertexAITestUtils.swiftwithInstanceConfigstruct andcomponentInstanceextension 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.plisttoGoogleService-Info.plist. It would be good to ensure consistency in naming across the project. - Redundant Constant Definition: The constant
notConfiguredNameis defined in bothConstants.swiftandTestAppCheckProviderFactory.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
v1Developer 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".v1Developer API, where possible.FirebaseApp, along with theAPIConfig, in integration tests.#no-changelog