VladaZakharova opened a new pull request, #75969:
URL: https://github.com/apache/airflow/pull/75969

   1. CreateBatchPredictionJobOperator (BatchPredictionJobHook)
   Using region="global" fails because of how the google-cloud-aiplatform 
library builds the endpoint. When the location is passed directly to 
BatchPredictionJob.create / submit, the library always builds 
{location}-aiplatform.googleapis.com. For global that gives 
global-aiplatform.googleapis.com, which doesn't exist. The library only uses 
the correct aiplatform.googleapis.com when the location is set with 
aiplatform.init(), which is why the customer's workaround works.
   
   We also found a second problem in Airflow's hook: for multi-regional 
locations such as us, it built us-aiplatform.googleapis.com instead of 
aiplatform.us.rep.googleapis.com. That broke checking the job status after 
creation (get, list and delete, plus deferrable mode).
   
   Fix: the hook now picks the correct endpoint for each type of location:
   
   global → aiplatform.googleapis.com
   us / eu → aiplatform.{location}.rep.googleapis.com
   regional → {region}-aiplatform.googleapis.com
   
   It passes this endpoint to aiplatform.init() before every create/submit 
call, and uses the same endpoint for all other calls. Regional endpoints keep 
working as before.
   
   Limitation: the current google-cloud-aiplatform version doesn't accept eu as 
a location at all, so eu still can't be used with this operator. For eu, use 
the GenAI operator below.
   
   2. GenAIGeminiCreateBatchJobOperator (GenAIGeminiAPIHook)
   Confirmed. The hook always created the google-genai client in Gemini 
Developer API mode (vertexai=False, API key). That mode only accepts inline 
requests or Gemini Files API files, so GCS and BigQuery input and output 
weren't possible.
   
   Fix: we added an optional vertexai parameter (default False, so existing 
users aren't affected). With vertexai=True, the operator uses Gemini on Vertex 
AI with the Airflow Google Cloud connection, project_id and location. GCS 
(gs://) and BigQuery (bq://) input and output then work. location can be 
global, us, eu or a region such as us-central1. When the job finishes, the GCS 
or BigQuery result location is pushed to XCom. The operator also now fails 
early with a clear error if the settings don't match the chosen mode, for 
example a GCS input without vertexai=True.
   
   So, now:
   
   - CreateBatchPredictionJobOperator: works with global, us and regional 
locations (not eu, because of the library limitation).
   - GenAIGeminiCreateBatchJobOperator with vertexai=True: works with 
GCS/BigQuery input and output on global, us, eu and regional locations. 
   
   <!-- SPDX-License-Identifier: Apache-2.0
         https://www.apache.org/licenses/LICENSE-2.0 -->
   
   <!--
   Thank you for contributing!
   
   Please provide above a brief description of the changes made in this pull 
request.
   Write a good git commit message following this guide: 
https://chris.beams.io/posts/git-commit/
   
   Please make sure that your code changes are covered with tests.
   And in case of new features or big changes remember to adjust the 
documentation.
   
   For user-facing UI changes, please attach before/after screenshots (or a 
short
   screen recording) so reviewers can assess the visual impact.
   
   Feel free to ping (in general) for the review if you do not see reaction for 
a few days
   (72 Hours is the minimum reaction time you can expect from volunteers) - we 
sometimes miss notifications.
   
   In case of an existing issue, reference it using one of the following:
   
   * closes: #ISSUE
   * related: #ISSUE
   -->
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   <!--
   If generative AI tooling has been used in the process of authoring this PR, 
please
   change below checkbox to `[X]` followed by the name of the tool, uncomment 
the "Generated-by".
   -->
   
   - [ ] Yes (please specify the tool below)
   
   <!--
   Generated-by: [Tool Name] following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
   -->
   
   ---
   
   * Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)**
 for more information. Note: commit author/co-author name and email in commits 
become permanently public when merged.
   * For fundamental code changes, an Airflow Improvement Proposal 
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
 is needed.
   * When adding dependency, check compliance with the [ASF 3rd Party License 
Policy](https://www.apache.org/legal/resolved.html#category-x).
   * For significant user-facing changes create newsfragment: 
`{pr_number}.significant.rst`, in 
[airflow-core/newsfragments](https://github.com/apache/airflow/tree/main/airflow-core/newsfragments).
 You can add this file in a follow-up commit after the PR is created so you 
know the PR number.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to