בנוסף לעיבוד בסטרימינג, אפשר לבחור בעיבוד באצווה כדי לקבל מידע מהנתונים. מצב העיבוד הזה לא מבוסס על סטרימינג, והוא מאפשר לכם ליצור אפליקציות לתמיכה בסוגי מדיה אחרים.
אתם יכולים לעבד קבצים של תמונות שאוחסנו ב-Cloud Storage באמצעות מודלים נבחרים. הפלט מאוחסן ב-Cloud Storage.
מודלים נתמכים
המודלים הבאים תומכים בעיבוד ברצף (batch processing):
- הכלי לזיהוי תגים
- הכלי לזיהוי מוצרים
סוגי נתונים נתמכים
בדף הזה מוסבר איך לעבד באצווה את סוגי הנתונים הבאים:
- נתוני תמונות
לפני שמתחילים
- כדאי לעיין במודלים הנתמכים ובסוגי הנתונים הנתמכים לעיבוד באצווה שמתואר בדף הזה.
- אם אתם משתמשים במודל Product recognizer, צריך ליצור
CatalogוProductRecognitionIndexכדי להשתמש בהם כשיוצרים מודל Product recognizer לעיבוד באצווה. אפשרות אחרת היא לזהות אינדקס קיים של כלי לזיהוי מוצרים או מודל קיים של כלי לזיהוי מוצרים שרוצים להשתמש בו. - אם אתם משתמשים במודל Tag recognizer, אתם צריכים ליצור מודל באמצעות המדריך למודל Tag recognizer.
- אם אתם משתמשים במודל Product recognizer, צריך ליצור
- יוצרים קטגוריה אחת או יותר של Cloud Storage עבור קלט ופלט של עיבוד באצווה.
- מאתרים קבצים נתמכים ומעלים אותם לקטגוריית הקלט של Cloud Storage כדי לעבד אותם.
התהליך שעובר המשתמש
כדי לעבד נתונים של תמונות באצווה, פועלים לפי השלבים הכלליים הבאים:
מפעילים את Gemini Enterprise Agent Platform Vision API.
יוצרים מעבד נתמך (מזהה מוצרים או מזהה תגים).
יוצרים אפליקציה.
קלט: מוסיפים צומת קלט אוניברסלי שמציין את הקבצים לעיבוד ב-Cloud Storage.
עיבוד: מוסיפים את צומת המודל.
פלט: מוסיפים את צומת האחסון של הפלט ומציינים איפה הנתונים המעובדים מאוחסנים ב-Cloud Storage.
יוצרים מופעים של האפליקציה לעיבוד באצווה, כשכל מופע תואם למיקום קלט של קטגוריית Cloud Storage.
פורסים את האפליקציה ואת המופעים שלה.
אחרי שמופע העיבוד באצווה מסתיים, בודקים את הפלט שמאוחסן ב-Cloud Storage.
עיבוד תמונות באצווה
השלבים לשליחת בקשה לעיבוד באצווה משתנים מדגם לדגם. פועלים לפי ההוראות של מודל היעד כדי לעבד תמונות בקבוצות.
מודל לזיהוי מוצרים
אפשר להשתמש בדוגמאות האלה כדי לעבד תמונות בקבוצות באמצעות מודל לזיהוי מוצרים.
המסוף
יוצרים בקשה לעיבוד קבוצת תמונות במסוף Google Cloud .
יצירת אפליקציה חדשה
פותחים את הכרטיסייה Applications (אפליקציות) במרכז הבקרה של Gemini Enterprise Agent Platform Vision.
לוחצים על הלחצן יצירה.
מזינים את שם האפליקציה ובוחרים את האזור.
לוחצים על Continue.
בוחרים אמצעי חיוב. מידע נוסף על תשלום לפי שימוש לעומת חיוב חודשי זמין בדף התמחור.
לוחצים על יצירה.
ציון קלט לעיבוד באצווה
בדף של הכלי ליצירת אפליקציות לגרפים, לוחצים על הצומת Universal input (קלט אוניברסלי).
בחלונית הצדדית Universal input (קלט אוניברסלי), לוחצים על Select input sources (בחירת מקורות קלט).
בדף בחירת מקורות קלט, בוחרים באפשרות חיזוי אצווה.
לוחצים על Continue.
בחלונית מקורות, לוחצים על Browse בשדה לבחירת מיקום כדי לציין איפה הקבצים נמצאים ב-Cloud Storage.
זה שינוי אופציונלי. כדי לציין עוד מקורות, לוחצים על הוספת פריט וחוזרים על השלב הקודם.
לוחצים על שליחה.
הוספת המודל
בדף של הכלי ליצירת אפליקציות גרפיות, לוחצים על הצומת של מודל זיהוי המוצרים בקטע מודלים ייעודיים.
בחלונית Product recognizer, לוחצים על Select model (בחירת מודל).
בוחרים באפשרות בחירת מודל קיים לזיהוי מוצרים.
אם צריך ליצור מודל או אינדקס חדשים, בוחרים באפשרות המתאימה כדי ליצור את המשאבים.
בוחרים את המודל מהרשימה.
לוחצים על בחירה.
זה שינוי אופציונלי. משנים את סף הביטחון.
לוחצים על הפעלת ההגדרות.
הוספת יעד פלט
בדף של הכלי ליצירת אפליקציות לתרשימים, לוחצים על צומת המודל Cloud Storage בקטע פלט.
בחלונית Cloud Storage, לוחצים על Browse כדי לבחור את יעד הפלט של התחזיות באצווה ב-Cloud Storage.
פריסת האפליקציה
- בדף של הכלי ליצירת אפליקציות לגרפים, לוחצים על פריסה.
REST ושורת הפקודה
כדי לשלוח את הבקשה לעיבוד קבוצת תמונות, צריך לבצע את השלבים הבאים.
יוצרים מודל לזיהוי מוצרים באמצעות השיטה
projects.locations.processors.create.הבקשה הזו כוללת הפניה למשאבי
Catalogו-ProductRecognitionIndex. מידע על יצירת משאביCatalogוProductRecognitionIndexזמין במדריך למודל לזיהוי מוצרים.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/processors?processor_id=product-recognition-model1 \ -d '{ "display_name": "DISPLAY_NAME", "model_type": PRODUCT_RECOGNIZER, "custom_processor_source_info": { "source_type": PRODUCT_RECOGNIZER, "product_recognizer_artifact": { "retail_product_recognition_index":"projects/PROJECT_ID/locations/LOCATION_ID/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes/INDEX_ID", } } }'יוצרים אפליקציה עם מודל חדש לזיהוי מוצרים. הבקשה הזו משתמשת בשיטה
projects.locations.applications.create.גוף הבקשה (
app.json):{ "applicationConfigs": { "nodes": [ { "displayName": "Universal Input", "name": "universal-input-0", "processor": "builtin:universal-input" }, { "displayName": "Product Recognition", "name": "product-recognition", "nodeConfig": { "product_recognizer_config": { "recognition_confidence_threshold": 0.75 } }, "parents": [ { "parentNode": "universal-input-0" } ], "processor": "projects/PROJECT_ID/locations/LOCATION_ID/processors/product-recognition-model1" }, { "displayName": "Storage output", "name": "gcs-output", "nodeConfig": { "gcs_output_config": { "gcs_path":"gs://product_recognizer_app_output" } }, "parents": [ { "parentNode": "product-recognition" } ], "processor": "builtin:gcs-output" } ] } }בקשה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @app.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications?application_id=product-recognition-app'יוצרים מופעים של האפליקציה באמצעות השיטה
projects.locations.applications.createApplicationInstances.גוף הבקשה (
instances.json):{ "applicationInstances": [ { "instance": { "instanceType": "BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://product_recognition_input" } ] }, "instanceId": "instance1" }, { "instance": { "instanceType":"BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://product_recognition_input2" } ] }, "instanceId": "instance2" } ] }בקשה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @instances.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app:createApplicationInstances'פורסים את האפליקציה.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app:deploy'קבלת מופעים של אפליקציות. המידע הזה מציין מתי מסתיים עיבוד הקבוצה.
בפרט, השדה
stateמציג את המועד שבו העיבוד הושלם:"state": "FINISHED". אחרי שהמופע מסתיים, אי אפשר לשנות אותו.אפשר להשתמש ב-method
projects.locations.applications.instances.listכדי לעקוב אחרי מופעים. באופן דומה, כדי להסיר מופעים מהרשימה הזו, משתמשים בשיטהprojects.locations.applications.deleteApplicationInstances.בקשה:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app/instances'תשובה לדוגמה:
{ "instances": [ { "name": "projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app/instances/instance1", "createTime": "2023-03-30T18:30:51.991004265Z", "inputResources": [ { "inputResource": "gs://product_recognition_input", "consumerNode": "universal-input-0", "dataType": "IMAGE" } ], "outputResources": [ { "outputResource": "gs://product_recognition_output/instance1", "producerNode": "product-recognition", "autogen": true } ], "updateTime": "2023-04-18T04:58:18.592092259Z", "state": "FINISHED", "instanceType": "BATCH_PREDICTION" } }
מודל לזיהוי תגים
אפשר להשתמש בדוגמאות האלה כדי לעבד תמונות בקבוצות באמצעות מודל לזיהוי תגים.
REST ושורת הפקודה
כדי לשלוח את הבקשה לעיבוד קבוצת תמונות, צריך לבצע את השלבים הבאים.
יוצרים מודל לזיהוי תגים באמצעות השיטה
projects.locations.processors.create.לשם כך, צריך לציין את שם המשאב של המודל המקורי שמתארח בפלטפורמת Vertex AI (
vertex_model).curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/processors?processor_id=tag-recognition-model1 \ -d '{ "display_name": "DISPLAY_NAME", "model_type": TAG_RECOGNIZER, "custom_processor_source_info": { "source_type": VERTEX_AUTOML, "vertex_model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID" } }'יוצרים אפליקציה עם מודל חדש של זיהוי תגים. בבקשה הזו נעשה שימוש ב-method
projects.locations.applications.create.גוף הבקשה (
app.json):{ "applicationConfigs": { "nodes": [ { "displayName": "Universal Input", "name": "universal-input-0", "processor": "builtin:universal-input" }, { "displayName": "Tag Recognition", "name": "tag-recognition", "nodeConfig": { "tag_recognizer_config": { "tag_parsing_config": { "entity_parsing_configs": [ { "entity_class": "price", "regex": "\\$\\d+\\.\\d{2}", "entity_matching_strategy": "MAX_OVERLAP_AREA" } ] }, "entity_detection_confidence_threshold": 0.0 } }, "parents": [ { "parentNode": "universal-input-0" } ], "processor": "projects/PROJECT_ID/locations/LOCATION_ID/processors/tag-recognition-model1" }, { "displayName": "Storage output", "name": "gcs-output", "nodeConfig": { "gcs_output_config": { "gcs_path": "gs://tag_recognizer_app_output" } }, "parents": [ { "parentNode": "tag-recognition" } ], "processor": "builtin:gcs-output" } ] } }בקשה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @app.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications?application_id=tag-recognition-app'יוצרים מופעים של האפליקציה באמצעות השיטה
projects.locations.applications.createApplicationInstances.גוף הבקשה (
instances.json):{ "applicationInstances": [ { "instance": { "instanceType": "BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://tag_recognition_input" } ] }, "instanceId": "instance1" }, { "instance": { "instanceType":"BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://tag_recognition_input2" } ] }, "instanceId": "instance2" } ] }בקשה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @instances.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app:createApplicationInstances'פורסים את האפליקציה.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app:deploy'קבלת מופעים של אפליקציות. המידע הזה מציין מתי מסתיים עיבוד הקבוצה.
בפרט, השדה
stateמציג את המועד שבו העיבוד הושלם:"state": "FINISHED". אחרי שהמופע מסתיים, אי אפשר לשנות אותו.אפשר להשתמש ב-method
projects.locations.applications.instances.listכדי לעקוב אחרי מופעים. באופן דומה, כדי להסיר מופעים מהרשימה הזו, משתמשים בשיטהprojects.locations.applications.deleteApplicationInstances.בקשה:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app/instances'תשובה לדוגמה:
{ "instances": [ { "name": "projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app/instances/instance1", "createTime": "2023-03-30T18:30:51.991004265Z", "inputResources": [ { "inputResource": "gs://tag_recognition_input", "consumerNode": "universal-input-0", "dataType": "IMAGE" } ], "outputResources": [ { "outputResource": "gs://tag_recognition_output/instance1", "producerNode": "tag-recognition", "autogen": true } ], "updateTime": "2023-04-18T04:58:18.592092259Z", "state": "FINISHED", "instanceType": "BATCH_PREDICTION" } }