פיתוח ופריסה ב-Google Cloud באמצעות Antigravity

1. מבוא

fca14bb9f4bb74f4.png

בשיעור ה-Lab הזה תלמדו איך להשתמש ב-Google Antigravity (שנקרא בהמשך המסמך Antigravity) כדי לתכנן, לבנות ולפרוס אפליקציה ללא שרת ב-Google Cloud. נבנה צינור לעיבוד מסמכים ללא שרתים (serverless) שמבוסס על אירועים. הצינור הזה יקלוט קבצים מ-Google Cloud Storage‏ (GCS), יעבד אותם באמצעות Cloud Run ו-Gemini ויזרים את המטא-נתונים שלהם ל-BigQuery.

מה תלמדו

  • איך משתמשים ב-Antigravity לתכנון ולעיצוב אדריכלי.
  • יצירת תשתית כקוד (סקריפטים של מעטפת) באמצעות סוכן AI.
  • פיתוח ופריסה של שירות Cloud Run מבוסס Python.
  • שילוב של Gemini ב-Vertex AI לניתוח מסמכים מולטי-מודאלי.
  • מאמתים את צינור הנתונים מקצה לקצה באמצעות ארטיפקט ההדרכה של Antigravity.

מה תצטרכו

2. סקירה כללית של האפליקציה

לפני שנתחיל לתכנן וליישם את האפליקציה באמצעות Antigravity, נגדיר קודם את האפליקציה שאנחנו רוצים ליצור.

אנחנו רוצים לבנות צינור להעברת מסמכים ללא שרתים (serverless) שמבוסס על אירועים. הצינור הזה יקבל קבצים מ-Google Cloud Storage ‏(GCS), יעבד אותם באמצעות Cloud Run ו-Gemini ויזרים את המטא-נתונים שלהם ל-BigQuery.

דיאגרמת ארכיטקטורה כללית של האפליקציה יכולה להיראות כך:

3bd519cfab38258d.png

המיקום לא חייב להיות מדויק. ‫Antigravity יכול לעזור לנו להבין את פרטי הארכיטקטורה תוך כדי התהליך. עם זאת, כדאי שתהיה לכם תוכנית לגבי מה שאתם רוצים ליצור. ככל שתספקו יותר פרטים, כך התוצאות שתקבלו מ-Antigravity יהיו טובות יותר מבחינת ארכיטקטורה וקוד.

3. תכנון הארכיטקטורה

אנחנו מוכנים להתחיל לתכנן את פרטי הארכיטקטורה עם Antigravity.

חברת Antigravity מצטיינת בתכנון מערכות מורכבות. במקום לכתוב קוד באופן מיידי, אפשר להתחיל בהגדרת הארכיטקטורה ברמה גבוהה.

קודם כל, מוודאים שאתם נמצאים במרכז לניהול סוכנים. אם הרגע פתחתם את Antigravity, אתם יכולים ללחוץ על הלחצן Open Agent Manager באמצע או על אותו לחצן Open Agent Manager בפינה השמאלית העליונה.

במרכז לניהול סוכנים, יש לכם אפשרות לפתוח סביבת עבודה או פשוט להשתמש במגרש המשחקים, סביבת עבודה עצמאית ליצירת אבות טיפוס מהירים ולניסויים. נתחיל עם Playground.

לוחצים על הלחצן + כדי להתחיל שיחה חדשה במגרש המשחקים:

4e33c028a604a375.png

יוצג ממשק שבו אפשר להזין את ההנחיה, כמו שמוצג בהמשך:

fbf023e84f0eb3b2.png

בפינה השמאלית העליונה, לוחצים על סמל ההגדרות ⚙️ ומגדירים את Review Policy בקטע Artifact ואת Terminal Command Auto Execution בקטע Terminal לערך Request Review. כך תוכלו לבדוק ולאשר את התוכנית בכל שלב לפני שהסוכן יבצע אותה.

הנחיה

עכשיו אנחנו מוכנים לספק את הפרומפט הראשון שלנו ל-Antigravity.

קודם כול, מוודאים ש-Antigravity במצב Planning. בוחרים במודל Gemini Pro (High) (אבל אפשר להתנסות במודלים אחרים).

מזינים את ההנחיה הבאה ולוחצים על לחצן השליחה:

I want to build a serverless event-driven document processing pipeline on Google Cloud.
Architecture:
- Ingestion: Users upload files to a Cloud Storage bucket.
- Trigger: File uploads trigger a Pub/Sub message.
- Processor: A Python-based Cloud Run service receives the message, processes the file (simulated OCR), and extracts metadata.
- Storage: Stream the metadata (filename, date, tags, word_count) into a BigQuery dataset. 

רשימת משימות ותוכנית הטמעה

‫Antigravity ינתח את הבקשה שלכם ויפיק רשימה של משימות ותוכנית הטמעה.

בתוכנית הזו מפורטים:

  • תשתית: מאגר GCS, נושא Pub/Sub, מערך נתונים ב-BigQuery.
  • מעבד: אפליקציית Python/Flask, קובץ Docker, דרישות.
  • שילוב: התראות GCS ‏→ Pub/Sub ‏→ Cloud Run.

אמורה להופיע כותרת שדומה לכותרת הבאה:

ada19341c490a570.png

לוחצים על הלחצן Open לצד השורה Task. אמורה להופיע קבוצה של משימות שנוצרו על ידי Antigravity. הנציג יעבור עליהם אחד אחד:

19675c55a71b373.png

השלב הבא הוא לבדוק את תוכנית ההטמעה ולתת לסוכן הרשאה להמשיך.

לוחצים על תוכנית ההטמעה כדי לראות את הפרטים שלה. כדאי לקרוא אותו בעיון. זו ההזדמנות שלכם לספק משוב על ההטמעה. אפשר ללחוץ על כל חלק בתוכנית ההטמעה ולהוסיף הערות. אחרי שמוסיפים הערות, חשוב לשלוח לבדיקה את כל השינויים שרוצים לבצע, במיוחד שינויים שקשורים לשמות, למזהה הפרויקט ב-Google Cloud, לאזור וכו'.

אם הכול נראה בסדר, לוחצים על הלחצן Proceed כדי לתת לנציג הרשאה להמשיך עם תוכנית ההטמעה.

4. יצירת האפליקציה

אחרי שהתוכנית מאושרת, Antigravity מתחילה ליצור את הקבצים שנדרשים לאפליקציה, מסקריפטים להקצאת הרשאות ועד קוד האפליקציה.

‫Antigravity ייצור תיקייה ויתחיל ליצור את הקבצים שנדרשים לפרויקט. בהרצה לדוגמה שלנו, ראינו את הדברים הבאים:

4d98413e3bd17148.png

נוצר קובץ סקריפט של מעטפת בשם setup.sh או בשם דומה, שמבצע אוטומטית את יצירת המשאב. הוא מטפל ב:

  1. הפעלת ממשקי API ‏ (run, pubsub, bigquery, storage).
  2. יצירת הקטגוריה ב-Google Cloud Storage‏ (doc-ingestion-{project-id}).
  3. יצירת מערך נתונים וטבלה ב-BigQuery‏ (pipeline_data.processed_docs).
  4. הגדרת נושאים והתראות ב-Pub/Sub.

הנציג צריך ליצור אפליקציית Python ‏ (main.py) שמקשיבה להודעות מסוג push ב-Pub/Sub. הוא משתמש בלוגיקה מדומה של OCR, יוצר ספירות ותגי מילים אקראיים ושומר אותם ב-BigQuery.

אחרי שהסקריפט הזה נוצר, Antigravity אמורה להציג בקשה להפעיל את הסקריפט בשמכם. למטה מוצג מסך לדוגמה:

44395ab66413a64f.png

אפשר ללחוץ על Accept לפי הצורך.

סקריפט ההקצאה ייצור את המשאבים ויוודא שהם נוצרו. אם הבדיקה תצליח, המערכת תמשיך לבניית הקונטיינר ולפריסתו כשירות (ב-main.py) ב-Cloud Run. למטה מוצג פלט לדוגמה:

e0e625e218e7fe46.png

במסגרת הפריסה של השירות, המערכת תגדיר גם מינויים ל-Pub/Sub ורכיבים אחרים שנדרשים כדי שצינור הנתונים הזה יפעל. התהליך יימשך כמה דקות.

בינתיים, אפשר לעבור אל Inbox (מהפינה הימנית העליונה) ולבדוק את המשימות Pending שממתינות להזנת נתונים:

ddd2f49d02fad987.png

זו דרך טובה לוודא שאתם מאשרים משימות בזמן שהסוכן מחפש את המשוב שלכם.

5. אימות האפליקציה

אחרי שהצינור נפרס, Antigravity ממשיכה לאמת שהאפליקציה באמת פועלת. ‫Antigravity מבצעת את זה באופן אוטומטי באמצעות שלבי אימות ברשימת המשימות. למטה מוצג מסך לדוגמה:

b8758b77880cc4d9.png

הוא יוצר ארטיפקט לבדיקה (test.txt) ורוצה להעלות אותו לקטגוריה של Google Cloud Storage. לוחצים על Accept כדי להמשיך.

אם רוצים להריץ בדיקות נוספות בעצמכם, אפשר לקבל רמז משלב האימות של Antigravity, שבו נעשה שימוש בכלי gsutil כדי להעלות קובץ לדוגמה לקטגוריה של Cloud Storage. פקודה לדוגמה:

gsutil cp <some-test-doc>.txt gs://<bucket-name>/

בדיקת התוצאות ב-BigQuery

במסגרת תהליך האימות, המערכת גם תבדוק שהנתונים נשמרו ב-BigQuery.

c0f08fedf671e9bd.png

שימו לב לשאילתת ה-SQL שבה נעשה שימוש כדי לבדוק את המסמכים.

אחרי האימות, רשימת המשימות אמורה להיראות כך:

b55ad48a87f95eca.png

אופציונלי: אימות ידני

גם אם Antigravity כבר אימתה את האפליקציה, אתם יכולים לבדוק באופן ידני במסוף Google Cloud שכל המשאבים נוצרו. כך עושים זאת:

Cloud Storage

מטרה: לוודא שהמאגר קיים ולבדוק אם יש בו קבצים שהועלו.

  1. עוברים אל Cloud Storage > Buckets.
  2. מאתרים את הקטגוריה בשם [PROJECT_ID]-doc-uploads.
  3. לוחצים על שם הקטגוריה כדי לעיין בקבצים.
  4. בודקים: הקבצים שהעליתם אמורים להופיע (למשל, test.txt).

Pub/Sub

המטרה: לוודא שהנושא קיים ושיש לו מינוי מסוג push.

  1. עוברים אל Pub/Sub > Topics.
  2. מחפשים את doc-processing-topic.
  3. לוחצים על מזהה הנושא.
  4. גוללים למטה לכרטיסייה מינויים.
  5. אימות: מוודאים ש-doc-processing-sub מופיע עם סוג המסירה Push.

Cloud Run

המטרה: בדיקת הסטטוס והיומנים של השירות.

  1. עוברים אל Cloud Run.
  2. לוחצים על השירות doc-processor.
  3. אימות:
  4. תקינות: סימן וי ירוק מציין שהשירות פעיל.
  5. יומנים: לוחצים על הכרטיסייה Logs (יומנים). מחפשים רשומות כמו Processing file: gs://...‎ ו-Successfully processed...‎.

BigQuery

המטרה: לוודא שהנתונים מאוחסנים בפועל.

  1. עוברים אל BigQuery >‏ SQL Workspace (סביבת עבודה של SQL).
  2. בחלונית Explorer, מרחיבים את הפרויקט > מערך הנתונים pipeline_data.
  3. לוחצים על הטבלה processed_docs.
  4. לוחצים על הכרטיסייה תצוגה מקדימה.
  5. בודקים: אמורות להופיע שורות עם filename,‏ upload_date,‏ tags ו-word_count.

הדרכה מפורטת

בשלב האחרון, Antigravity יוצרת ארטיפקט של הדרכה מפורטת. פריט המידע הזה שנוצר בתהליך פיתוח (Artifact) מסכם את:

  • בוצעו שינויים.
  • פקודות האימות מופעלות.
  • התוצאות בפועל (פלט השאילתה שמציג את המטא-נתונים שחולצו על ידי Gemini).

אפשר ללחוץ על Open כדי לראות אותו. למטה מוצג פלט לדוגמה:

47ecf561d0252924.png

6. סקירת האפליקציה

בשלב הזה, האפליקציה הבסיסית מוכנה ופועלת. לפני שמרחיבים את האפליקציה הזו, כדאי להקדיש רגע לבדיקת הקוד. אפשר לעבור לכלי העריכה באמצעות הלחצן Open Editor בפינה השמאלית העליונה.

הנה סיכום קצר של הקבצים שיופיעו:

  1. setup.sh: סקריפט האב שמקצה את כל המשאבים ב-Google Cloud ומפעיל את ממשקי ה-API הנדרשים.
  2. main.py: נקודת הכניסה הראשית של צינור עיבוד הנתונים. אפליקציית Python הזו יוצרת שרת אינטרנט שמקבל הודעות push של Pub/Sub, מוריד את הקובץ מ-GCS, מבצע בו 'עיבוד' (סימולציה של OCR) ומזרים את המטא-נתונים ל-BigQuery.
  3. Dockerfile: מגדיר איך לארוז את האפליקציה בקובץ אימג' בקונטיינר.
  4. requirements.txt: רשימת התלויות של Python.

יכול להיות שיוצגו גם סקריפטים וקבצי טקסט אחרים שנדרשים לבדיקה ולאימות.

בשלב הזה, יכול להיות שתרצו גם לעבור מ-Playground לסביבת עבודה או לתיקייה ייעודית. כדי לעשות את זה, לוחצים על הלחצן הרלוונטי בפינה השמאלית העליונה:

278de21c89e5c726.png

אחרי שבוחרים תיקייה, כל הקוד יועבר לתיקייה הזו וייווצר סביבת עבודה חדשה עם התיקייה והיסטוריית השיחות.

7. הרחבת האפליקציה

עכשיו שיש לכם אפליקציה בסיסית שעובדת, אתם יכולים להמשיך לשפר ולהרחיב את האפליקציה. הנה כמה רעיונות.

הוספת חזית

ליצור ממשק אינטרנט פשוט להצגת המסמכים שעברו עיבוד.

אפשר לנסות את ההנחיה הבאה: Create a simple Streamlit or Flask web application that connects to BigQuery. It should display a table of the processed documents (filename, upload_date, tags, word_count) and allow me to filter the results by tag

שילוב עם AI/ML אמיתי

במקום עיבוד OCR מדומה, אפשר להשתמש במודלים של Gemini כדי לחלץ, לסווג ולתרגם.

  1. מחליפים את לוגיקת ה-OCR של ה-dummy. שולחים את התמונה או קובץ ה-PDF ל-Gemini כדי לחלץ טקסט ונתונים. לנתח את הטקסט שחולץ כדי לסווג את סוג המסמך (חשבונית, חוזה, קורות חיים) או לחלץ ישויות (תאריכים, שמות, מיקומים).
  2. המערכת תזהה אוטומטית את השפה של המסמך ותתרגם אותו לאנגלית לפני האחסון. אפשר להשתמש גם בכל שפה אחרת.

שיפור האחסון והניתוח

אפשר להגדיר כללים לניהול מחזור החיים בקטגוריה כדי להעביר קבצים ישנים לאחסון מסוג Coldline או Archive כדי לחסוך בעלויות.

חוסן ואבטחה

אתם יכולים לשפר את האמינות והאבטחה של האפליקציה, למשל:

  1. תורי הודעות מתות (DLQ): צריך לעדכן את המינוי ל-Pub/Sub כדי לטפל בכשלים. אם שירות Cloud Run נכשל בעיבוד קובץ 5 פעמים, המערכת שולחת את ההודעה לנושא או לדלי נפרדים של 'הודעות שלא נמסרו' לבדיקה על ידי אדם.
  2. ‫Secret Manager: אם האפליקציה שלכם צריכה מפתחות API או הגדרות רגישות, כדאי לאחסן אותם ב-Secret Manager ולגשת אליהם בצורה מאובטחת מ-Cloud Run במקום להקשיח קוד מחרוזות.
  3. ‫Eventarc: שדרוג מ-Pub/Sub ישיר ל-Eventarc כדי ליהנות מניתוב אירועים גמיש יותר, שמאפשר הפעלה על סמך יומני ביקורת מורכבים או אירועים אחרים של שירותי GCP.

כמובן, אתם יכולים להעלות רעיונות משלכם ולהשתמש ב-Antigravity כדי להטמיע אותם!

8. סיכום

הצלחתם ליצור תוך דקות צינור עיבוד נתונים מבוסס-AI למסמכים, שניתן להתאמה ללא שרת באמצעות Google Antigravity. למדתם איך:

  • תכנון ארכיטקטורות באמצעות AI.
  • נותנים הוראות ל-Antigravity ומנהלים אותו בזמן שהוא יוצר את האפליקציה, החל מיצירת הקוד ועד לפריסה ולאימות.
  • אימות הפריסות והוולידציה באמצעות מדריכים מפורטים.

מאמרי עזרה