במדריך הזה נסביר איך ליצור טקסט מטקסט, מאודיו או מסרטון באמצעות הפונקציה AI.GENERATE ומודל Gemini שמתארח. כך לא תצטרכו ליצור ולתחזק מודל משלכם.
מטרות
- לסכם כתבות.
- יצירת פלט מובנה מכתבות שכולל סיכום וסנטימנט כללי.
- ליצור תמליל של סרטון ביפנית ולתרגם אותו לאנגלית.
- ליצור סיכום ורשימת נושאים מתוכן אודיו.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
- Gemini Enterprise Agent Platform: You incur costs for calls to the Agent Platform model.
בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.
למידע נוסף, קראו את המאמרים התמחור ב-BigQuery והתמחור ב-Agent Platform.
לפני שמתחילים
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
מפעילים את BigQuery API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםבפרויקטים חדשים, BigQuery API מופעל באופן אוטומטי.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לשימוש בפונקציה AI.GENERATE, אתם צריכים לבקש מהאדמין להקצות לכם את התפקידים הבאים ב-IAM:
-
יצירה ושימוש במערכי נתונים ובטבלאות של BigQuery:
עריכת נתונים ב-BigQuery (
roles/bigquery.dataEditor) בפרויקט. -
יצירה, הקצאה ושימוש בחיבורים ל-BigQuery:
אדמין של חיבורים ל-BigQuery (
roles/bigquery.connectionsAdmin) בפרויקט. -
לתת הרשאות לחשבון השירות של החיבור: אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin) בפרויקט שמכיל את נקודת הקצה של Gemini Enterprise Agent Platform. -
יצירת משימות ב-BigQuery:
BigQuery Job User (
roles/bigquery.jobUser) בפרויקט.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות כדי להשתמש בפונקציה AI.GENERATE. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להשתמש בפונקציה AI.GENERATE, צריך את ההרשאות הבאות:
-
יוצרים מערך נתונים:
bigquery.datasets.create -
יצירה, הקצאה ושימוש בחיבור:
bigquery.connections.* -
הגדרת הרשאות לחשבון השירות:
-
resourcemanager.projects.getIamPolicy -
resourcemanager.projects.setIamPolicy
-
-
שליחת שאילתות לגבי נתוני טבלאות:
bigquery.tables.getData
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
יצירת קבוצת נתונים
יוצרים מערך נתונים ב-BigQuery שיכיל את המשאבים:
המסוף
נכנסים לדף BigQuery במסוף Google Cloud .
בחלונית השמאלית, לוחצים על Explorer:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, לוחצים על שם הפרויקט.
לוחצים על View actions > Create dataset.
בדף Create dataset, מבצעים את הפעולות הבאות:
בשדה Dataset ID, מקלידים שם למערך הנתונים.
בקטע Location type, בוחרים באפשרות Region או Multi-region.
- אם בחרתם באפשרות Region, בוחרים מיקום מהרשימה Region.
- אם בחרתם באפשרות מספר אזורים, בחרו באפשרות US או Europe מהרשימה מספר אזורים.
לוחצים על Create dataset.
BQ
יצירת חיבור
אחרי שיוצרים את מערך הנתונים לאימון, יוצרים חיבור כדי לקשר בין BigQuery למקורות חיצוניים. יוצרים קישור למשאבים ב-Cloud ומקבלים את חשבון השירות של הקישור. יוצרים את החיבור באותו מיקום של קבוצת הנתונים שיצרתם בשלב הקודם.
בוחרים באחת מהאפשרויות הבאות:המסוף
נכנסים לדף BigQuery.
בחלונית הימנית, לוחצים על Explorer:

אם החלונית הימנית לא מוצגת, לוחצים על Expand left pane כדי לפתוח אותה.
בחלונית Explorer, מרחיבים את שם הפרויקט ולוחצים על Connections.
בדף Connections, לוחצים על Create connection.
בשדה Connection type, בוחרים באפשרות Vertex AI remote models, remote functions, BigLake and Spanner (Cloud Resource).
בשדה מזהה החיבור, נותנים שם לחיבור.
בשדה Location type, בוחרים מיקום לחיבור. החיבור צריך להיות באותו מיקום כמו המשאבים האחרים, למשל מערכי נתונים.
לוחצים על יצירת חיבור.
לוחצים על מעבר לחיבור.
בחלונית Connection info, מעתיקים את מזהה חשבון השירות כדי להשתמש בו בשלב מאוחר יותר.
SQL
משתמשים בהצהרה CREATE CONNECTION:
נכנסים לדף BigQuery במסוף Google Cloud .
בעורך השאילתות, מזינים את ההצהרה הבאה:
CREATE CONNECTION [IF NOT EXISTS] `CONNECTION_NAME` OPTIONS ( connection_type = "CLOUD_RESOURCE", friendly_name = "FRIENDLY_NAME", description = "DESCRIPTION" );
מחליפים את מה שכתוב בשדות הבאים:
-
CONNECTION_NAME: שם החיבור בפורמטPROJECT_ID.LOCATION.CONNECTION_ID,LOCATION.CONNECTION_IDאוCONNECTION_ID. אם לא מציינים את הפרויקט או המיקום, הם נגזרים מהפרויקט ומהמיקום שבהם ההצהרה מופעלת. -
FRIENDLY_NAME(אופציונלי): שם תיאורי לחיבור. -
DESCRIPTION(אופציונלי): תיאור של החיבור.
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
בסביבה של שורת הפקודה, יוצרים חיבור:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
הפרמטר
--project_idמבטל את פרויקט ברירת המחדל.מחליפים את מה שכתוב בשדות הבאים:
-
REGION: אזור החיבור שלכם -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
CONNECTION_ID: מזהה לחיבור
כשיוצרים משאב חיבור, BigQuery יוצר חשבון שירות ייחודי של המערכת ומשייך אותו לחיבור.
פתרון בעיות: אם מופיעה שגיאת החיבור הבאה, עדכנו את Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
-
מאחזרים ומעתיקים את מזהה חשבון השירות כדי להשתמש בו בשלב מאוחר יותר:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
הפלט אמור להיראות כך:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel."}
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Terraform
משתמשים במשאב google_bigquery_connection.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה נוצר קישור למשאבים ב-Cloud בשם my_cloud_resource_connection באזור US:
כך מחילים את ההגדרות של Terraform בפרויקט ב- Google Cloud :
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל ב- Google Cloud שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את הפרויקט ב- Google Cloud כדי להציג את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
מתן גישה לחשבון השירות
מקצים לחשבון השירות של החיבור את התפקידים "משתמש בפלטפורמת הסוכן" ו"צפייה באובייקטים באחסון". כדי להקצות את התפקידים:
נכנסים לדף IAM & Admin.
לוחצים על הוספה.
תיבת הדו-שיח Add principals נפתחת.
בשדה New principals, מזינים את מזהה חשבון השירות שהעתקתם קודם.
בשדה Select a role, בוחרים באפשרות Vertex AI ואז באפשרות Agent Platform User.
לוחצים על הוספת תפקיד.
בשדה Select a role, בוחרים באפשרות Cloud Storage ואז באפשרות Storage Object Viewer.
לוחצים על Save.
סיכום טקסט ושימוש בפורמט הפלט שמוגדר כברירת מחדל
כדי לסכם כתבות, קוראים לפונקציה AI.GENERATE עם טקסט הכתבה בתור ההנחיה. כברירת מחדל, הפלט כולל את טקסט הסיכום שנוצר, את התשובה המלאה וסטטוס ריק אם הפונקציה מחזירה תשובה תקינה.
נכנסים לדף BigQuery במסוף Google Cloud .
בעורך השאילתות, מריצים את השאילתה הבאה:
WITH bbc_news AS ( SELECT body FROM `bigquery-public-data.bbc_news.fulltext` LIMIT 5 ) SELECT AI.GENERATE(body) AS news FROM bbc_news;
הפלט אמור להיראות כך:
+---------------------------------------------+------------------------------------+---------------+ | news.result | news.full_response | news.status | +---------------------------------------------+------------------------------------+---------------+ | This article presents a debate about the | {"candidates":[{"avg_logprobs": | | | "digital divide" between rich and poor | -0.31465074559841777, content": | | | nations. Here's a breakdown of the key... | {"parts":[{"text":"This article... | | +---------------------------------------------+------------------------------------+---------------+ | This article discusses how advanced | {"candidates":[{"avg_logprobs": | | | mapping technology is aiding humanitarian | -0.21313422900091983,"content": | | | efforts in Darfur, Sudan. Here's a... | {"parts":[{"text":"This article... | | +---------------------------------------------+------------------------------------+---------------+ | ... | ... | ... | +---------------------------------------------+------------------------------------+---------------+
לסכם טקסט ולהפיק תוצאות מובנות
כדי ליצור טקסט באמצעות הפונקציה AI.GENERATE, ולעצב את הפלט באמצעות הארגומנט output_schema של הפונקציה AI.GENERATE:
נכנסים לדף BigQuery במסוף Google Cloud .
בעורך השאילתות, מריצים את השאילתה הבאה:
WITH bbc_news AS ( SELECT body FROM `bigquery-public-data`.bbc_news.fulltext LIMIT 5 ) SELECT news.good_sentiment, news.summary FROM bbc_news, UNNEST(ARRAY[AI.GENERATE(body, output_schema => 'summary STRING, good_sentiment BOOL')]) AS news;
הפלט אמור להיראות כך:
+----------------+--------------------------------------------+ | good_sentiment | summary | +----------------+--------------------------------------------+ | true | A World Bank report suggests the digital | | | divide is rapidly closing due to increased | | | access to technology in developing... | +----------------+--------------------------------------------+ | false | A massive earthquake and subsequent | | | waves have devastated southern Asia, with | | | Sri Lanka, India, Indonesia, and... | +----------------+--------------------------------------------+ | ... | ... | +----------------+--------------------------------------------+
תמלול ותרגום של קטע וידאו
אתם יכולים לעבד קובצי מולטימדיה שמאוחסנים ב-Cloud Storage באמצעות טבלאות אובייקטים חיצוניות. בשלבים הבאים מוסבר איך ליצור טבלת אובייקטים לקובצי וידאו, לתמלל את קטע הווידאו ביפנית ולתרגם את הטקסט לאנגלית.
נכנסים לדף BigQuery במסוף Google Cloud .
בעורך השאילתות, מריצים את השאילתה הבאה כדי ליצור את טבלת האובייקטים:
CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.video` WITH CONNECTION `us.test_connection` OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://cloud-samples-data/generative-ai/video/*']);
בעורך השאילתות, מריצים את השאילתה הבאה כדי לתמלל ולתרגם את הקובץ
pixel8.mp4:SELECT AI.GENERATE( (OBJ.GET_ACCESS_URL(ref, 'r'), 'Transcribe the video in Japanese and then translate to English.'), output_schema => 'japanese_transcript STRING, english_translation STRING' ).* EXCEPT (full_response, status) FROM `bqml_tutorial.video` WHERE REGEXP_CONTAINS(uri, 'pixel8.mp4');
הפלט אמור להיראות כך:
+--------------------------------------------+--------------------------------+ | english_translation | japanese_transcript | +--------------------------------------------+--------------------------------+ | My name is Saeka Shimada. I'm a | 島田 さえか です 。 東京 で フ | | photographer in Tokyo. Tokyo has many | ォトグラファー を し て い ま | | faces. The city at night is totally... | す 。 東京 に は いろんな 顔 が | +--------------------------------------------+--------------------------------+
ניתוח התוכן של קובץ האודיו
כדי ליצור טבלת אובייקטים על תוכן אודיו ציבורי ולנתח את התוכן של קובצי האודיו:
נכנסים לדף BigQuery במסוף Google Cloud .
בעורך השאילתות, מריצים את השאילתה הבאה כדי ליצור את טבלת האובייקטים:
CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.audio` WITH CONNECTION `us.test_connection` OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://cloud-samples-data/generative-ai/audio/*']);
בעורך השאילתות, מריצים את השאילתה הבאה כדי לנתח את קובצי האודיו:
SELECT AI.GENERATE( (OBJ.GET_ACCESS_URL(ref, 'r'), 'Summarize the content of this audio file.'), output_schema => 'topic ARRAY<STRING>, summary STRING' ).* EXCEPT (full_response, status), uri FROM `bqml_tutorial.audio`;
התוצאות אמורות להיראות כך:
+--------------------------------------------+-----------------------------------------------------------+ | summary | topic | uri | +--------------------------------------------+-----------------------------------------------------------+ | The audio contains a distinctive 'beep' | beep sound | gs://cloud-samples-data/generativ... | | sound, followed by the characteristic | | | | sound of a large vehicle or bus backing.. | | | +--------------------------------------------+--------------------+--------------------------------------+ | | vehicle backing up | | | +--------------------+ | | | bus | | | +--------------------+ | | | alarm | | +--------------------------------------------+--------------------+--------------------------------------+ | The speaker introduces themselves | Introduction | gs://cloud-samples-data/generativ... | | as Gemini and expresses their excitement | | | | and readiness to dive into something.. | | | +--------------------------------------------+--------------------+--------------------------------------+ | | Readiness | | | +--------------------+ | | | Excitement | | | +--------------------+ | | | Collaboration | | +--------------------------------------------+--------------------+--------------------------------------+ | ... | ... | ... | +--------------------------------------------+--------------------+--------------------------------------+
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים הנפרדים.
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת משאבים ספציפיים
אם אתם רוצים להשתמש בפרויקט שוב, אתם צריכים למחוק את המשאבים שיצרתם בשביל המדריך.
המסוף
נכנסים לדף BigQuery.
מוחקים את מערך הנתונים
bqml_tutorial. מחיקת מערך הנתונים מוחקת גם את המודל המרוחק.בחלונית Explorer, מרחיבים את הפרויקט ולוחצים על Datasets.
ברשימה Datasets, לוחצים על מערך הנתונים
bqml_tutorial.בחלונית הפרטים, לוחצים על מחיקה.
בתיבת הדו-שיח Delete dataset, לוחצים על Delete.
מוחקים את החיבור:
בחלונית Explorer, מרחיבים את הפרויקט ולוחצים על Connections.
ברשימה Connection ID, לוחצים על החיבור שיצרתם.
בחלונית הפרטים, לוחצים על מחיקה.
בתיבת הדו-שיח Delete connection, מזינים את הערך
deleteכדי לאשר את המחיקה.לוחצים על Delete.
gcloud
מוחקים את מערך הנתונים
bqml_tutorialואת המודל המרוחק:bq rm --dataset --recursive bqml_tutorialמוחקים את החיבור.
bq rm --connection PROJECT_ID.LOCATION.CONNECTION_IDמחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של החיבור
- CONNECTION_ID: מזהה החיבור