מדריך לזיהוי מוצרים

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

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

תרחישים לדוגמה לשימוש ב-Tag Recognizer וב-Product Recognizer

המודלים Product Recognizer ו-Tag Recognizer יכולים לשמש כאבני הבניין העיקריות של AI לניתוח ולפרשנות של נתוני תמונות שקשורים למוצרים ולתגיות, שאולי צילמתם בחנויות קמעונאיות.

המודלים של כלי זיהוי המוצרים וכלי זיהוי התגים משלבים כמה יכולות ליבה של Google בתחום ה-AI, כולל בניית מודלים וניתוח נתונים, כדי לעזור לקמעונאים ו/או לשותפים טכניים לפתור בעיות מרכזיות בהבנת נתוני התמונות של המוצרים ותגי המחיר, כולל:

  • זיהוי, כלומר הבנה של המוצר שמופיע בתמונה.
  • זיהוי וניתוח של התג (לדוגמה, תג מחיר או כל תג אחר של תווית טקסט) בהתאם לסכימת חילוץ של ישות מסוג צמד מפתח/ערך שהוגדרה על ידי המשתמש.

בפרט, נכללים כמה מודלים ייחודיים של Google AI כדי לתמוך בפתרון בעיות בתרחישי השימוש האלה, כמו

  • מודל להטמעת תמונות ממוזערות של מוצרים, שהופך תמונה ממוזערת של מוצר לייצוג של מרחב תכונות מספרי.
  • מודל ה-OCR של Google, ששולף את כל הטקסטים שרואים בתמונה.
  • מודל לחילוץ ישויות של Google (שאפשר להתאים אישית), שהופך את הטקסטים הגולמיים לישויות בעלות שם של צמדי מפתח/ערך שהוגדרו על ידי המשתמש.

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

שתי התכונות העיקריות של ה-AI הן מודלים של זיהוי מוצרים וזיהוי תגים.

פונקציונליות של זיהוי מוצרים

המודל הזה מזהה את הזהות של מוצר בודד ברמת מספר הפריט המסחרי הגלובלי (GTIN) או ברמת קוד המוצר האוניברסלי (UPC). כדי לאפשר פתרון בעיות בתרחישי השימוש האלה, הכלי לזיהוי מוצרים כולל כמה מודלים של AI מבית Google עם יכולות שונות, כמו:

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

דוגמה לאובייקט JSON של פלט

{
  "imageUri": "gs://test_bucket/test_image.jpg",
  "productRecognitionAnnotations": [
    {
      "detectedText": "Bolthouse Farms Perfectly Protein Tea & Soy Beverage",
      "recognitionResults": [
        {
          "confidence": 0.9420832,
          "productMetadata": {
            "brand": "Bolthouse Farms",
            "gtins": [
              "00071464260804"
              ],
            "locale": "en-US",
            "title": "Bolthouse Farms Perfectly Protein Tea & Soy Beverage, Vanilla Chai Tea - 52 fl oz"
          },
        }
      ]
    }
  ]
}

מושגים שקשורים ל-API

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

תרשים של היררכיית המשאבים בשירות Product Recognition.

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

מוצר: מייצג מוצר שמוצע על ידי מוכר. ‫Product הוא משאב צאצא של Catalog.

ProductImage: תמונה שמציגה את המוצר. ProductImage הוא משאב צאצא של Product.

‫ProductSet: מאגר עם רמת פירוט גבוהה יותר לארגון וקיבוץ מוצרים באותו Catalog. ProductSet יכול להכיל Product אחד או יותר, אבל הוא לא 'בבעלותו' של הProduct שמכיל אותו, אלא הוא שומר על 'קישור' אליהם.

‫ProductRecognitionIndex: מכיל רשימה של הטמעות תמונות שמשמשות אלגוריתמים לזיהוי מוצרים. אפשר ליצור ProductRecognitionIndex מתוך Catalog שלם או מתוך ProductSet (קבוצת משנה של Product מתוך Catalog).

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

הגדרת הסביבה

בקטע הזה מוסבר איך ליצור אינטראקציה עם Store Vision AI RESTful API.

API_ENDPOINT=visionai.googleapis.com
PROJECT_ID=your project ID

בכל השיטות של create צריך לציין במפורש את השם או המזהה של המשאב שרוצים ליצור. אפשר להשתמש במזהה מחרוזת בעל משמעות, למשל 'product-ABC', או במזהה שנוצר באופן אקראי, למשל UUID.

כדי להעניק לאדם מסוים הרשאת עריכה לשימוש ב-Store Vision API, צריך להריץ את פקודת ה-IAM הבאה:

gcloud projects add-iam-policy-binding PROJECT_ID --member='user:USER_ACCOUNT' --role='roles/visionai.editor'

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

gcloud projects add-iam-policy-binding PROJECT_ID --member='serviceAccount:SERVICE_ACCOUNT' --role='roles/visionai.editor'

מידע נוסף על קישור ב-IAM

תהליך השימוש בתכונה 'זיהוי מוצרים'

  1. יוצרים קטלוג.
  2. מייבאים מוצרים ו (אופציונלית) ProductImages אל Catalog.
  3. אפשר להציג ולשנות את Product ואת ProductImages, ואם רוצים, אפשר ליצור ProductSet כדי לארגן את רשימת המוצרים ברמת פירוט גבוהה יותר.
  4. יוצרים Index, מכל Catalog או מProductSet.
  5. יוצרים Endpoint עם הגדרות רצויות לזיהוי מוצרים ומפרסמים בו Index.
  6. ביצוע BatchAnalyze באמצעות התכונה ProductRecognition. בצד השרת, המערכת תזהה מוצרים מכל תמונת קלט ותאחזר את K המוצרים הדומים ביותר מהאינדקס שצוין באמצעות אותות חזותיים וטקסט OCR.

ניהול משאבי API (קטלוג ו-Indexset)

קטלוג

יצירת קטלוג
  • ‫CATALOG_ID=מזהה הקטלוג שלכם.
curl -sS -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/us-central1/retailCatalogs?retail_catalog_id=CATALOG_ID

פלט לדוגמה

{
  "name": "projects/cloud-store-vision-test/locations/us-central1/operations/operation-1655157982362-5e15b7f95fa6f-d30364c6-dc3a3714",
  "done": false
}
משיכת הפעולה עד לסיום
  • ‫OPERATION_ID=Your output operation, for example, operation-1655157982362-5e15b7f95fa6f-d30364c6-dc3a3714
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID

פלט לדוגמה

{
  "name": "projects/cloud-store-vision-test/locations/us-central1/operations/operation-1655157982362-5e15b7f95fa6f-d30364c6-dc3a3714",
  "done": true
}
ImportProduct

יש שני פורמטים נתמכים לייבוא:

  • ‫TXT: כל שורה היא מספר GTIN של מוצר לייבוא
  • ‫JSONL: כל שורה היא פורמט JSON של RetailProductIoFormat, לדוגמה,
{"retailProduct":{"name":"00040094314034","gtins":["00040094314034"]},"retailProductImages":[{"name":"1","gcsUri":"gs://shelfchecking-integration-test-data/products-data/00040094314034/1.jpg"}]}
{"retailProduct": {"name":"00123", "thirdPartyIds": {"id": "test-id", "owner": "test-owner"}}}

פרטים נוספים על RetailProductIoFormat מופיעים במאמרי העזרה של ה-API. בשלב הזה, אנחנו תומכים בייבוא של עד 10,000 מוצרים בכל פעולת ImportProduct.

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

  • ‫IMPORT_FILE_URI=ה-URI של קובץ הייבוא ב-Cloud Storage, לדוגמה, gs://mybucket/my_import_file.jsonl
  • ‫IMPORT_FORMAT=פורמט קובץ הייבוא, FORMAT_JSONL או FORMAT_TXT
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID:importRetailProducts \
  -d '{
    "gcs_source": {
      "uris": "IMPORT_FILE_URI"
    },
    "format": "IMPORT_FORMAT"
  }'
List Catalog
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs
GetCatalog
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID
DeleteCatalog
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID

מוצר

CreateProduct with GTIN

אנחנו תומכים בפורמטים GTIN-8, ‏ GTIN-13, ‏ GTIN-14 ו-UPC(שנקרא גם GTIN-12). מידע נוסף על פורמט GTIN

  • ‫PRODUCT_ID=מזהה המוצר שלך
  • ‫GTIN=GTIN של המוצר, לדוגמה, 50735854797459, ‏ 00040094314034
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts?retail_product_id=PRODUCT_ID \
  -d '{"gtins": "GTIN"}'
יצירת מוצר עם מזהה של צד שלישי
  • ‫PRODUCT_ID=מזהה המוצר שלך
  • ‫THIRD_PARTY_ID=מזהה של צד שלישי
  • ‫OWNER=הישות שבבעלותה המזהה של הצד השלישי
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts?retail_product_id=PRODUCT_ID \
-d '
  {
    "third_party_ids": {
      "id": "THIRD_PARTY_ID",
      "owner": "OWNER",
    }
  }'
ListProducts
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts
GetProducts
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID
DeleteProduct
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID

ProductImage

CreateProductImage
  • ‫PRODUCT_IMAGE_ID=מזהה תמונת המוצר
  • ‫IMAGE_GCS_URI=ה-URI של התמונה ב-Cloud Storage, לדוגמה, gs://mybucket/my_img.jpg
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID/retailProductImages?retail_product_image_id=PRODUCT_IMAGE_ID \
  -d '{
    "source_type": "SOURCE_TYPE_HAND_HELD_CAMERA",
    "gcs_uri": "IMAGE_GCS_URI"
  }'
ListProductImages
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID/retailProductImages
GetProductImages
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID/retailProductImages/PRODUCT_IMAGE_ID
DeleteProductImage
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID/retailProductImages/PRODUCT_IMAGE_ID

ProductSet

CreateProductSet
  • ‫PRODUCT_SET_ID=מזהה קבוצת המוצרים שלך
curl -sS -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/us-central1/retailCatalogs/CATALOG_ID/retailProductSets?retail_product_set_id=PRODUCT_SET_ID
ListProductSet
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductSets
GetProductSet
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductSets/PRODUCT_SET_ID
AddProductsToProductSet
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductSets/PRODUCT_SET_ID:add \
  -d '{"product_ids": "PRODUCT_ID"}'
RemoveProductsFromProductSet
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductSets/PRODUCT_SET_ID:remove \
  -d '{"product_ids": "PRODUCT_ID"}'
DeleteProductSet
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductSets/PRODUCT_SET_ID

ProductRecognitionIndex

יצירת ProductRecognitionIndex

יש שתי דרכים ליצור ProductRecognitionIndex: מ-Catalog, שבו נעשה שימוש בכל מה שכלול בקטלוג הזה, או מ-ProductSet, שבו נעשה שימוש רק במוצרים ובתמונות המוצרים המשויכים.

  • ‫INDEX_ID=מזהה האינדקס שלך
  • ‫COVERAGE_CSV_OUTPUT_DIRECTORY=<Cloud Storage location of the directory where index coverage file will be written to
# Create from Catalog
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes?retail_product_recognition_index_id=INDEX_ID
# Create from Catalog and output index coverage CSV file to a Cloud Storage directory.
# This API method is especially useful when you want to understand the
# actual number of images used to construct the index per imported GTIN, and
# the image can be sourced from the Google Product database, your own importing,
# and other means (such as with the Google Data Labeling service.
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" "https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes?retail_product_recognition_index_id=INDEX_ID&coverage_output.output_uri_prefix=COVERAGE_CSV_OUTPUT_DIRECTORY"
# Create from ProductSet, by adding the following to the previous Curl command
-d '{"retail_product_set": "projects/PROJECT_ID/locations/us-central1/retailCatalogs/'CATALOG_ID'/retailProductSets/PRODUCT_SET_ID"}'
Get ProductRecognitionIndex
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes/INDEX_ID
List ProductRecognitionIndex
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes
מחיקת ProductRecognitionIndex
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes/INDEX_ID

נקודת קצה (endpoint)

יצירת נקודת קצה
  • ‫ENDPOINT_ID=מזהה נקודת הקצה
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailEndpoints?retail_endpoint_id=ENDPOINT_ID -d '{
  "productRecognitionConfig": {
    "recognitionConfidenceThreshold": 0.4
  }
}'
DeployProductRecognitionIndex

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

curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailEndpoints/ENDPOINT_ID:deployRetailProductRecognitionIndex \
  -d '{
    "retail_product_recognition_index": "projects/PROJECT_ID/locations/us-central1/retailCatalogs/'CATALOG_ID'/retailProductRecognitionIndexes/INDEX_ID"
  }'
GetEndpoint
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailEndpoints/ENDPOINT_ID
ListEndpoints
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailEndpoints
UndeployProductRecognitionIndex

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

curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailEndpoints/ENDPOINT_ID:undeployRetailProductRecognitionIndex
DeleteEndpoint
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailEndpoints/ENDPOINT_ID

ניתוח היסק ב-Batch (זיהוי מוצרים)

קובץ קלט לדוגמה בכתובת gs://my-bucket/input-file.csv:

gs://my-bucket/my-image1.jpg
gs://my-bucket/my-image2.jpg
gs://my-bucket/my-image3.jpg
  • ‫INPUT_FILE_URI=Cloud Storage uri of your input file> כל שורה בקובץ הקלט היא רק Cloud Storage uri של תמונה לעיבוד, לדוגמה, gs://my-bucket/my-image.jpg
  • ‫OUTPUT_URI_PREFIX=קידומת URI של Cloud Storage לקובץ תוצאות הפלט, לדוגמה, gs://my-bucket/my-output-dir
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailEndpoints/ENDPOINT_ID:batchAnalyze -d '{
  "gcsSource": {
    "uris": ["INPUT_FILE_URI"]
  },
  "features": [
    {
      "type": "TYPE_PRODUCT_RECOGNITION",
     }
  ],
  "outputGcsDestination": {
    "outputUriPrefix": "OUTPUT_URI_PREFIX"
  }
}'
"features": [
    {
      "type": "TYPE_PRODUCT_RECOGNITION",
      "productRecognitionConfig": {
        "recognitionConfidenceThreshold": 0.4
      }
    }
  ],

יש גם שדות נוספים שאפשר להגדיר ב-productRecognitionConfig, שהוא אובייקט RetailProductRecognitionConfig. פרטים נוספים מופיעים בתיאור המשאב במאמרי העזרה של ה-API.

מאמרי העזרה של ה-API

משאב: projects.locations.retailCatalogs

ייצוג ב-JSON

{
  "name": string,
  "displayName": string,
  "createTime": string,
  "updateTime": string,
  "resourceState": enum(RetailResourceState),
  "labels": {
    string: string,
    ...
  }
}

שדות


name

מחרוזת

פלט בלבד. שם המשאב של RetailCatalog

displayName

מחרוזת

אופציונלי. השם המוצג של RetailCatalog.

createTime

מחרוזת (פורמט חותמת זמן)

פלט בלבד. חותמת הזמן שבה נוצר קובץ RetailCatalog.

updateTime

מחרוזת (פורמט חותמת זמן)

פלט בלבד. חותמת הזמן של העדכון.

resourceState

enum

פלט בלבד. הסטטוס של RetailCatalog.

labels

map (key: string, value: string)

התוויות עם המטא-נתונים שהמשתמש הגדיר כדי לארגן את RetailCatalog.

המפתחות והערכים של התוויות יכולים להכיל עד 64 תווים (נקודות קוד של Unicode), שמורכבים רק מאותיות קטנות, ספרות, קווים תחתונים ומקפים. אפשר להשתמש בתווים בינלאומיים.

מידע נוסף על תוויות ודוגמאות לתוויות זמין בכתובת https://goo.gl/xmQnxf.

אובייקט שמכיל רשימה של צמדי מפתח: ערך. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Method: projects.locations.retailCatalogs.create

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/us-central1}/retailCatalogs

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

גוף הבקשה

גוף הבקשה מכיל מופע של RetailCatalog.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של RetailCatalog.

‫Method: projects.locations.retailCatalogs.get

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/us-central1/retailCatalogs/*}

פרמטרים של נתיב

name מחרוזת חובה. RetailCatalog מזהה.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של RetailCatalog.

‫Method: projects.locations.retailCatalogs.list

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/us-central1}/retailCatalogs

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

פרמטרים של שאילתה

מסנ מחרוזת זה שינוי אופציונלי. ביטוי לסינון התוצאות של הבקשה.
pageToken מחרוזת זה שינוי אופציונלי. אסימון שמזהה דף תוצאות שהשרת צריך להחזיר.
pageSize מספר שלם זה שינוי אופציונלי. גודל הדף המבוקש. יכול להיות שהשרת יחזיר פחות פריטים ממה שביקשתם. אם לא מציינים ערך, השרת יבחר ברירת מחדל מתאימה.
orderBy מחרוזת זה שינוי אופציונלי. רשימה מופרדת בפסיקים של שדות למיון בסדר עולה. אחרי שם השדה, כותבים desc כדי למיין בסדר יורד.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה מצליחה, גוף התגובה מכיל נתונים במבנה הבא: ייצוג JSON

{
  "retailCatalogs": [
    {
      object (RetailCatalog)
    }
  ],
  "nextPageToken": string
}

‫Method: projects.locations.retailCatalogs.delete

בקשת HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/us-central1/retailCatalogs/*}

פרמטרים של נתיב

name מחרוזת חובה. RetailCatalog מזהה.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של Operation.

‫Method: projects.locations.retailCatalogs.importRetailProducts

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/us-central1/retailCatalogs/*}:importRetailProducts

פרמטרים של נתיב

name מחרוזת חובה. RetailCatalog שם המשאב.

גוף הבקשה

ייצוג ב-JSON

{
  "gcsSource": { object(GcsSource) },
  "format": enum(Format)
}

שדות

gcsSource אובייקט חובה. המיקום ב-Cloud Storage של תוכן הקלט. אפשר לספק כמה מיקומי קלט. התוכן של כל מיקומי הקלט יובא באצווה אחת. סיומות קבצים נתמכות: 1. קובץ JSONL. כל שורה היא בפורמט JSON של RetailProductIoFormat.
‫2. קובץ TXT. כל שורה היא מספר GTIN של מוצר שרוצים לייבא.
פורמט enum חובה. פורמט הקובץ לייבוא.

פורמט ערכי ENUM

FORMAT_UNSPECIFIED אין להשתמש.
FORMAT_TXT בפורמט TXT.
FORMAT_JSONL פורמט JSONL.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של Operation.

משאב: projects.locations.retailProducts

ייצוג ב-JSON

{
  "name": string,
  "gtins": [string],
  "normalizedGtins": [string],
  "thirdPartyIds": [ { object(ThirdPartyId) }],
  "locale": string,
  "brand": string,
  "title": string,
  "productUri": string,
  "resourceState": enum(RetailResourceState),
   "labels": {
    string: string,
    ...
    }
   "createTime": string,
   "updateTime": string
}

שדות


name

מחרוזת

פלט בלבד. שם המשאב של RetailProductImage

displayName

מחרוזת

אופציונלי. השם המוצג של תמונת המוצר הקמעונאי.

sourceType

enum

אופציונלי. סוג המקור

gcsUri

string

אופציונלי. מיקום ב-Cloud Storage של RetailProductImage. צריך להגדיר את המאפיין הזה, אלא אם התמונה מסופקת על ידי Google, למשל, כשסוג המקור הוא SOURCE_TYPE_GOOGLE.

resourceState

enum

פלט בלבד. המצב של RetailProductImage.

labels

map (key: string, value: string)

התוויות עם המטא-נתונים שהוגדרו על ידי המשתמש כדי לארגן את RetailProductImage.

המפתחות והערכים של התוויות יכולים להכיל עד 64 תווים (נקודות קוד של Unicode), שמורכבים רק מאותיות קטנות, ספרות, קווים תחתונים ומקפים. אפשר להשתמש בתווים בינלאומיים.

מידע נוסף על תוויות ודוגמאות לתוויות זמין בכתובת https://goo.gl/xmQnxf.

אובייקט שמכיל רשימה של צמדי מפתח: ערך. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

createTime

string (פורמט Timestamp)

פלט בלבד. חותמת הזמן של היצירה.

updateTime

string (Timestamp format)

פלט בלבד. חותמת הזמן של העדכון.

RetailThirdPartyId מצגת JSON

{
  "id": string,
  "owner": string
}

שדות

id מחרוזת מזהה צד שלישי שבו משתמש הקמעונאי או היצרן (לדוגמה, מק"ט או קוד MPN).
בעלים מחרוזת הישות ש 'בבעלותה' המזהה של הצד השלישי, למשל היצרן או הקמעונאי שמוכר את המוצר הזה.

Method: projects.locations.retailCatalogs.retailProducts.create

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProducts

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

גוף הבקשה

גוף הבקשה מכיל מופע של RetailProduct.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של RetailProduct.

Method: projects.locations.retailCatalogs.retailProducts.get

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*

פרמטרים של נתיב

name מחרוזת חובה. RetailProduct מזהה.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של RetailProduct.

Method: projects.locations.retailCatalogs.retailProducts.list

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProducts

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

פרמטרים של שאילתה

מסנ מחרוזת זה שינוי אופציונלי. ביטוי לסינון התוצאות של הבקשה.
pageToken מחרוזת זה שינוי אופציונלי. אסימון שמזהה דף תוצאות שהשרת צריך להחזיר.
pageSize מספר שלם זה שינוי אופציונלי. גודל הדף המבוקש. יכול להיות שהשרת יחזיר פחות פריטים ממה שביקשתם. אם לא מציינים ערך, השרת יבחר ברירת מחדל מתאימה.
orderBy מחרוזת זה שינוי אופציונלי. רשימה מופרדת בפסיקים של שדות למיון בסדר עולה. אחרי שם השדה, כותבים desc כדי למיין בסדר יורד.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה מצליחה, גוף התגובה מכיל נתונים במבנה הבא: ייצוג JSON

{
  "retailProducts": [
    {
      object (RetailProducts)
    }
  ],
  "nextPageToken": string
}

Method: projects.locations.retailCatalogs.retailProducts.delete

בקשת HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*

פרמטרים של נתיב

name מחרוזת חובה. RetailProduct מזהה.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יהיה ריק.

משאב: projects.locations.retailProductImages

ייצוג ב-JSON

{
  "name": string,
  "displayName": string,
  "sourceType": enum(SourceType),
  "gcsUri": string,
  "resourceState": enum(RetailResourceState),
   "labels": {
    string: string,
    ...
    }
   "createTime": string,
   "updateTime": string
}

שדות


name

מחרוזת

פלט בלבד. שם המשאב של RetailProductImage

displayName

מחרוזת

אופציונלי. השם המוצג של תמונת המוצר הקמעונאי.

sourceType

enum

אופציונלי. סוג המקור

gcsUri

string

אופציונלי. מיקום ב-Cloud Storage של RetailProductImage. צריך להגדיר את המאפיין הזה, אלא אם התמונה מסופקת על ידי Google, למשל, כשסוג המקור הוא SOURCE_TYPE_GOOGLE.

resourceState

enum

פלט בלבד. המצב של RetailProductImage.

labels

map (key: string, value: string)

התוויות עם המטא-נתונים שהוגדרו על ידי המשתמש כדי לארגן את RetailProductImage.

המפתחות והערכים של התוויות יכולים להכיל עד 64 תווים (נקודות קוד של Unicode), שמורכבים רק מאותיות קטנות, ספרות, קווים תחתונים ומקפים. אפשר להשתמש בתווים בינלאומיים.

מידע נוסף על תוויות ודוגמאות לתוויות זמין בכתובת https://goo.gl/xmQnxf.

אובייקט שמכיל רשימה של צמדי מפתח: ערך. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

createTime

מחרוזת (פורמט חותמת זמן)

פלט בלבד. חותמת הזמן של היצירה.

updateTime

מחרוזת (פורמט חותמת זמן)

פלט בלבד. חותמת הזמן של העדכון.

ערכי הטיפוס בן המנייה (enum) SourceType

SOURCE_TYPE_UNSPECIFIED מקור נתונים לא ידוע. אין להשתמש.
SOURCE_TYPE_FIXED_CAMERA התמונה צולמה ממצלמה קבועה.
SOURCE_TYPE_HAND_HELD_CAMERA התמונה צולמה במצלמה ידנית.
SOURCE_TYPE_CRAWLED התמונה נסרקת מהאינטרנט.
SOURCE_TYPE_SYSTEM_GENERATED התמונה נחתכה מתמונה מקורית עם תיוג אנושי.

‫Method: projects.locations.retailCatalogs.retailProducts.retailProductImages.create

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*/retailProducts/*}/retailProductImages

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

גוף הבקשה

גוף הבקשה מכיל מופע של RetailProductImage.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של RetailProductImage.

Method: projects.locations.retailCatalogs.retailProducts.retailProductImages.get

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*/retailProductImages/*

פרמטרים של נתיב

name מחרוזת חובה. RetailProductImage מזהה.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של RetailProductImage.

‫Method: projects.locations.retailCatalogs.retailProducts.retailProductImages.list

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*/retailProducts/*}/retailProductImages

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

פרמטרים של שאילתה

מסנ מחרוזת זה שינוי אופציונלי. ביטוי לסינון התוצאות של הבקשה.
pageToken מחרוזת זה שינוי אופציונלי. אסימון שמזהה דף תוצאות שהשרת צריך להחזיר.
pageSize מספר שלם זה שינוי אופציונלי. גודל הדף המבוקש. יכול להיות שהשרת יחזיר פחות פריטים ממה שביקשתם. אם לא מציינים ערך, השרת יבחר ברירת מחדל מתאימה.
orderBy מחרוזת זה שינוי אופציונלי. רשימה מופרדת בפסיקים של שדות למיון בסדר עולה. אחרי שם השדה, כותבים desc כדי למיין בסדר יורד.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל נתונים במבנה הבא:

ייצוג ב-JSON

{
  "retailProductImages": [
    {
      object (RetailProductImages)
    }
  ],
  "nextPageToken": string
}

‫Method: projects.locations.retailCatalogs.retailProducts.retailProductImages.delete

בקשת HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*/retailProductImages/*

פרמטרים של נתיב

name מחרוזת חובה. RetailProductImage מזהה.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יהיה ריק.

משאב: projects.locations.retailCatalogs.retailProductSets

ייצוג ב-JSON

{
  "name": string,
  "displayName": string,
  "retailProductIds": [string],
  "resourceState": enum(RetailResourceState),
   "labels": {
    string: string,
    ...
    }
   "createTime": string,
   "updateTime": string
}

שדות


name

מחרוזת

פלט בלבד. שם המשאב של RetailProductSet

displayName

מחרוזת

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

retailProductIds []

מחרוזת

פלט בלבד. מזהי משאבים של מוצרים ששייכים ל-RetailProductSet הזה. המוצרים ב-RetailProductSet צריכים להיות באותו קטלוג.

resourceState

enum

פלט בלבד. המצב של RetailProductSet.

labels

map (key: string, value: string)

התוויות עם המטא-נתונים שהוגדרו על ידי המשתמש כדי לארגן את RetailProductSet.

המפתחות והערכים של התוויות יכולים להכיל עד 64 תווים (נקודות קוד של Unicode), שמורכבים רק מאותיות קטנות, ספרות, קווים תחתונים ומקפים. אפשר להשתמש בתווים בינלאומיים.

מידע נוסף על תוויות ודוגמאות לתוויות זמין בכתובת https://goo.gl/xmQnxf.

אובייקט שמכיל רשימה של צמדי מפתח: ערך. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

createTime

string (Timestamp format)

פלט בלבד. חותמת הזמן של היצירה.

updateTime

string (Timestamp format)

פלט בלבד. חותמת הזמן של העדכון.

Method: projects.locations.retailCatalogs.retailProductSets.create

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProductSets

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

גוף הבקשה

גוף הבקשה מכיל מופע של RetailProductSet.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של RetailProductSet.

Method: projects.locations.retailCatalogs.retailProductSets.get

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*

פרמטרים של נתיב

name מחרוזת חובה. מזהה של קבוצת מוצרים קמעונאיים.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה בהצלחה, גוף התגובה יכיל מופע של RetailProductSet.

Method: projects.locations.retailCatalogs.retailProductSets.list

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProductSets

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

פרמטרים של שאילתה

מסנ מחרוזת זה שינוי אופציונלי. ביטוי לסינון התוצאות של הבקשה.
pageToken מחרוזת זה שינוי אופציונלי. אסימון שמזהה דף תוצאות שהשרת צריך להחזיר.
pageSize מספר שלם זה שינוי אופציונלי. גודל הדף המבוקש. יכול להיות שהשרת יחזיר פחות פריטים ממה שביקשתם. אם לא מציינים ערך, השרת יבחר ברירת מחדל מתאימה.
orderBy מחרוזת זה שינוי אופציונלי. רשימה מופרדת בפסיקים של שדות למיון בסדר עולה. אחרי שם השדה, כותבים desc כדי למיין בסדר יורד.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל נתונים במבנה הבא:

ייצוג ב-JSON

{
  "retailProductSets": [
    {
      object (RetailProductSets)
    }
  ],
  "nextPageToken": string
}

Method: projects.locations.retailCatalogs.retailProductSets.delete

בקשת HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*

פרמטרים של נתיב

name מחרוזת חובה. מזהה של קבוצת מוצרים קמעונאיים.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יהיה ריק.

‫Method: projects.locations.retailCatalogs.retailProductSets.add

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*}:remove

פרמטרים של נתיב

name מחרוזת חובה. שם המשאב RetailProductSet.

גוף הבקשה

ייצוג ב-JSON

{
  "productIds": [string],
  "productFilter": string
}

שדות


productIds[ ]

string

מזהה המשאב של RetailProducts שרוצים להוסיף. כולם צריכים להיות שייכים לאותו RetailCatalog כמו RetailProductSet היעד שצוין. אפשר לציין עד 200 מזהים של מוצרים קמעונאיים בבקשה אחת. אי אפשר להשתמש בו יחד עם productFilter.

productFilter

string

מסנן רגיל שיוחל על כל RetailProducts ב-RetailCatalog של ההורה, בחירת פריטים שעומדים בתנאי המסנן והוספתם ל-RetailProductSet. אי אפשר להשתמש בו יחד עם product_ids. מסננים נתמכים: https://google.aip.dev/160

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של Operation.

Method: projects.locations.retailCatalogs.retailProductSets.remove

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*}:add

פרמטרים של נתיב

name מחרוזת חובה. שם המשאב RetailProductSet.

גוף הבקשה

ייצוג ב-JSON

{
  "productIds": [string],
  "productFilter": string
}

שדות


productIds[ ]

string

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

productFilter

string

מסנן רגיל שיוחל על כל RetailProducts ב-RetailProductSet שצוין, יבחר פריטים שעומדים בתנאי הסינון ויסיר אותם מ-RetailProductSet. אי אפשר להשתמש בו יחד עם product_ids. מסננים נתמכים:https://google.aip.dev/160

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של Operation.

משאב: projects.locations.retailCatalogs.retailProductRecognitionIndexes

ייצוג ב-JSON

{
  "name": string,
  "displayName": string,
  "description": string,
  "retailProductSet": [string],
   "resourceState": enum(RetailResourceState),
   "labels": {
    string: string,
    ...
    }
   "createTime": string,
   "updateTime": string
}

שדות


name

מחרוזת

פלט בלבד. שם המשאב של משאב RetailProductRecognitionIndex.

displayName

מחרוזת

אופציונלי. השם המוצג של RetailProductRecognitionIndex.

תיאור

מחרוזת

אופציונלי. תיאור של RetailProductRecognitionIndex.

retailProductSet[]

string

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

resourceState

enum

פלט בלבד. המצב של RetailProductRecognitionIndex.

labels

map (key: string, value: string)

התוויות עם המטא-נתונים שהוגדרו על ידי המשתמש כדי לארגן את RetailProductRecognitionIndex.

המפתחות והערכים של התוויות יכולים להכיל עד 64 תווים (נקודות קוד של Unicode), שמורכבים רק מאותיות קטנות, ספרות, קווים תחתונים ומקפים. אפשר להשתמש בתווים בינלאומיים.

מידע נוסף על תוויות ודוגמאות לתוויות זמין בכתובת https://goo.gl/xmQnxf.

אובייקט שמכיל רשימה של צמדי מפתח: ערך. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

createTime

מחרוזת (פורמט חותמת זמן)

פלט בלבד. חותמת הזמן של היצירה.

updateTime

מחרוזת (פורמט חותמת זמן)

פלט בלבד. חותמת הזמן של העדכון.

‫Method: projects.locations.retailCatalogs.retailProductRecognitionIndexes.create

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProductRecognitionIndexes

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

גוף הבקשה

גוף הבקשה מכיל מופע של RetailProductRecognitionIndex.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של RetailProductRecognitionIndex.

‫Method: projects.locations.retailCatalogs.retailProductRecognitionIndexes.get

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductRecognitionIndexes/*

פרמטרים של נתיב

name מחרוזת חובה. RetailProductRecognitionIndex מזהה.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של RetailProductRecognitionIndex.

‫Method: projects.locations.retailCatalogs.retailProductRecognitionIndexes.list

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProductRecognitionIndexes

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

פרמטרים של שאילתה

מסנ מחרוזת זה שינוי אופציונלי. ביטוי לסינון התוצאות של הבקשה.
pageToken מחרוזת זה שינוי אופציונלי. אסימון שמזהה דף תוצאות שהשרת צריך להחזיר.
pageSize מספר שלם זה שינוי אופציונלי. גודל הדף המבוקש. יכול להיות שהשרת יחזיר פחות פריטים ממה שביקשתם. אם לא מציינים ערך, השרת יבחר ברירת מחדל מתאימה.
orderBy מחרוזת זה שינוי אופציונלי. רשימה מופרדת בפסיקים של שדות למיון בסדר עולה. אחרי שם השדה, כותבים desc כדי למיין בסדר יורד.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל נתונים במבנה הבא:

ייצוג ב-JSON

{
  "retailProductRecognitionIndexes": [
    {
      object (RetailProductRecognitionIndex)
    }
  ],
  "nextPageToken": string
}

‫Method: projects.locations.retailCatalogs.retailProductRecognitionIndexes.delete

בקשת HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductRecognitionIndexes/*

פרמטרים של נתיב

name מחרוזת חובה. מזהה של ProductRecognitionIndex.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של Operation.

משאב: projects.locations.retailEndpoints

ייצוג ב-JSON

{
  "name": string,
  "displayName": string,
  "description": string,
  "deployedProductRecognitionIndex": string,
  "resourceState": enum(RetailResourceState),
  "productRecognitionConfig": { object(RetailProductRecognitionConfig) },
  "tagRecognitionConfig": { object(RetailTagRecognitionConfig) },
  "labels": {
    string: string,
    ...
   }
  "createTime": string,
  "updateTime": string
}

שדות


name

מחרוזת

פלט בלבד. שם המשאב של משאב RetailEndpoint.

displayName

מחרוזת

אופציונלי. השם המוצג של RetailEndpoint.

תיאור

מחרוזת

אופציונלי. התיאור של RetailEndpoint.

deployedProductRecognitionIndex

מחרוזת

פלט בלבד. שם המשאב של ProductRecognitionIndex שנפרס ב-RetailEndpoint הזה.

productRecognitionConfig

object

אופציונלי. הגדרות לזיהוי מוצרים.

tagRecognitionConfig

object

אופציונלי. הגדרות לזיהוי תגים.

resourceState

enum

פלט בלבד. המצב של RetailProductRecognitionIndex.

labels

map (key: string, value: string)

התוויות עם המטא-נתונים שהוגדרו על ידי המשתמש כדי לארגן את RetailProductRecognitionIndex.

המפתחות והערכים של התוויות יכולים להכיל עד 64 תווים (נקודות קוד של Unicode), שמורכבים רק מאותיות קטנות, ספרות, קווים תחתונים ומקפים. אפשר להשתמש בתווים בינלאומיים.

מידע נוסף על תוויות ודוגמאות לתוויות זמין בכתובת https://goo.gl/xmQnxf.

אובייקט שמכיל רשימה של צמדי מפתח: ערך. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

createTime

מחרוזת (פורמט חותמת זמן)

פלט בלבד. חותמת הזמן של היצירה.

updateTime

מחרוזת (פורמט חותמת זמן)

פלט בלבד. חותמת הזמן של העדכון.

RetailProductRecognitionConfig

ייצוג ב-JSON

{
  "productDetectionModel": string,
  "detectionConfidenceThreshold": float,
  "recognitionConfidenceThreshold": float,
  "additionalConfig": { object }
}

שדות

|

productDetectionModel מחרוזת חובה. המודל שבו יש להשתמש כדי לזהות מוצרים בתמונות קלט. הערכים הנתמכים: ‎builtin/stable (ברירת המחדל) או שם משאב של מודל Vertex AI.
detectionConfidenceThreshold מספר ממשי (float) זה שינוי אופציונלי. סף המהימנות לסינון תוצאות הזיהוי. אם לא מגדירים את המדיניות, המערכת תשתמש בערך ברירת מחדל.
recognitionConfidenceThreshold מספר ממשי (float) זה שינוי אופציונלי. סף המהימנות לסינון תוצאות הזיהוי. אם לא מגדירים את המדיניות, המערכת תשתמש בערך ברירת מחדל.
additionalConfig אובייקט (פורמט Struct) זה שינוי אופציונלי. הגדרות נוספות לזיהוי מוצרים.

RetailTagRecognitionConfig

ייצוג ב-JSON

{
  "tagDetectionModel": string,
  "tagParsingModel": string,
  "detectionConfidenceThreshold": float,
  "parsingConfidenceThreshold": float,
  "additionalConfig": { object }
}

שדות

tagDetectionModel מחרוזת חובה. מודל שישמש לזיהוי תגים בתמונות קלט. ערכים נתמכים: משאב מודל של Vertex AI.
tagParsingModel מחרוזת חובה. מודל לניתוח טקסט בתגים שזוהו. ערכים נתמכים: משאב מודל של Vertex AI.
detectionConfidenceThreshold מספר ממשי (float) זה שינוי אופציונלי. סף המהימנות לסינון תוצאות הזיהוי. אם לא מגדירים את המדיניות, המערכת תשתמש בערך ברירת מחדל.
parsingConfidenceThreshold מספר ממשי (float) זה שינוי אופציונלי. סף המהימנות לסינון תוצאות של ניתוח טקסט. אם לא מגדירים את המדיניות, המערכת תשתמש בערך ברירת מחדל.
additionalConfig אובייקט (פורמט Struct) זה שינוי אופציונלי. הגדרות נוספות לזיהוי תגים.

‫Method: projects.locations.retailEndpoints.create

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*}/retailEndpoints

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

גוף הבקשה

גוף הבקשה מכיל מופע של RetailEndpoint.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של RetailEndpoint.

Method: projects.locations.retailEndpoints.get

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailEndpoints/*}

פרמטרים של נתיב

name מחרוזת חובה. RetailEndpoint מזהה.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של RetailEndpoint.

‫Method: projects.locations.retailEndpoints.list

בקשת HTTP

GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*}/retailEndpoints

פרמטרים של נתיב

הורה מחרוזת חובה. מזהה ההורה.

פרמטרים של שאילתה

מסנ מחרוזת זה שינוי אופציונלי. ביטוי לסינון התוצאות של הבקשה.
pageToken מחרוזת זה שינוי אופציונלי. אסימון שמזהה דף תוצאות שהשרת צריך להחזיר.
pageSize מספר שלם זה שינוי אופציונלי. גודל הדף המבוקש. יכול להיות שהשרת יחזיר פחות פריטים ממה שביקשתם. אם לא מציינים ערך, השרת יבחר ברירת מחדל מתאימה.
orderBy מחרוזת זה שינוי אופציונלי. רשימה מופרדת בפסיקים של שדות למיון בסדר עולה. אחרי שם השדה, כותבים desc כדי למיין בסדר יורד.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל נתונים במבנה הבא:

ייצוג ב-JSON

{
  "retailEndpoints": [
    {
      object (RetailEndpoint)
    }
  ],
  "nextPageToken": string
}

Method: projects.locations.retailEndpoints.delete

בקשת HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailEndpoints/*

פרמטרים של נתיב

name מחרוזת חובה. RetailEndpoint מזהה.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יהיה ריק.

‫Method: projects.locations.retailEndpoints.deployRetailProductRecognitionIndex

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{retailEndpoint=projects/*/locations/*/retailEndpoints/*}:deployRetailProductRecognitionIndex

פרמטרים של נתיב

retailEndpoint מחרוזת חובה. שם המשאב של משאב RetailEndpoint שאליו נפרס RetailProductRecognitionIndex.

גוף הבקשה

ייצוג ב-JSON

{
  "retailProductRecognitionIndex": string,
}

שדות

retailProductRecognitionIndex מחרוזת חובה. שם המשאב של RetailProductRecognitionIndex לפריסה.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של Operation.

‫Method: projects.locations.retailEndpoints.undeployRetailProductRecognitionIndex

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{retailEndpoint=projects/*/locations/*/retailEndpoints/*}:undeployRetailProductRecognitionIndex

פרמטרים של נתיב

retailEndpoint מחרוזת חובה. שם המשאב של RetailEndpoint המשאב שעליו תתבצע ביטול הפריסה.

גוף הבקשה

גוף הבקשה צריך להיות ריק.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של Operation.

Method: projects.locations.retailEndpoints.batchAnalyze

בקשת HTTP

POST https://visionai.googleapis.com/v1alpha1/{retailEndpoint=projects/*/locations/*/retailEndpoints/*}:batchAnalyze

פרמטרים של נתיב

retailEndpoint מחרוזת חובה. שם המשאב של RetailEndpoint שמשמש להצגת בקשת ההסקה.

גוף הבקשה

ייצוג ב-JSON

{
  "gcsSource": string,
  "features": { object(Feature) },
  // Union field output can be only one of the following:
  "outputGcsDestination": string,
  "corpus": string,
  // End of list of possible types for union field output.
  "bigqueryTable": string
}

שדות

gcsSource מחרוזת חובה. המיקום ב-Cloud Storage של תוכן הקלט. אפשר לספק כמה מיקומי קלט. התוכן של כל מיקומי הקלט יעובד באצווה אחת. תוכן נתמך: קובץ TXT, שכל שורה בו היא הנתיב המלא לתמונה. אפשר לתמוך בעד 50,000 תמונות בבקשה אחת.
outputGcsDestination מחרוזת זה שינוי אופציונלי. המיקום ב-Cloud Storage של הספרייה שאליה ייכתב הפלט.
קורפוס מחרוזת זה שינוי אופציונלי. שם המשאב של מאגר התמונות. עדיין אין תמיכה.
bigqueryTable מחרוזת זה שינוי אופציונלי. שם המשאב של טבלת BigQuery לייצוא הערות. בפורמט 'projects/*/datasets/*/tables/*‎'. אם תגדירו את האפשרות הזו, גם הערות שנוצרו מהסקת מסקנות של ML ייוצאו לטבלת BigQuery שצוינה. עדיין אין תמיכה.
features[] אובייקט חובה. סוג ההסקה של למידת המכונה שרוצים לבצע.

תכונה

ייצוג ב-JSON

{
  "type": enum(Type),
  "productRecognitionConfig": object(RetailProductRecognitionConfig),
  "tagRecognitionConfig": object(RetailTagRecognitionConfig)
}

שדות

סוג enum חובה. סוג התכונה.
productRecognitionConfig אובייקט זה שינוי אופציונלי. שינויים שחלים על כל בקשה בנפרד בתכונה לזיהוי מוצרים. הוא יעיל רק אם הסוג מוגדר כ-TYPE_PRODUCT_RECOGNITION.
tagRecognitionConfig אובייקט זה שינוי אופציונלי. לכל בקשה שינויים בתכונה של זיהוי תגים. היא יעילה רק אם הסוג מוגדר כ-TYPE_TAG_RECOGNITION.

גוף התגובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של Operation.

סוגים

GcsSource

ייצוג ב-JSON

{
  "uris": [string]
}

שדות

uris[] מחרוזת חובה. הפניות לנתיבים ב-Cloud Storage.

סוג

ערכים של טיפוסים בני מנייה (enum)

TYPE_UNSPECIFIED ערך ברירת המחדל. אין להשתמש.
TYPE_PRODUCT_RECOGNITION זיהוי מוצרים. חובה להשתמש ב-RetailEndpoint עם RetailProductRecognitionIndex שהוטמעו.
TYPE_TAG_RECOGNITION זיהוי וניתוח של תגים. חובה להשתמש ב-RetailEndpoint עם RetailTagRecognitionConfig.

RetailProductIoFormat

ייצוג ב-JSON

{
  "retailProduct": { object(RetailProduct) },
  "retailProductImages": [ { object(RetailProductImage) }]
}

שדות

retailProduct אובייקט חובה. RetailProduct לייבא
retailProductImages[ ] אובייקט אופציונלי. RetailProductImages of the given RetailProduct to be imported.

RetailResourceState

ערכים של טיפוסים בני מנייה (enum)

RETAIL_RESOURCE_STATE_UNSPECIFIED ערך ברירת המחדל. אין להשתמש.
RETAIL_RESOURCE_STATE_CREATING המצב הוא 'יצירה'.
RETAIL_RESOURCE_STATE_CREATED המדינה נוצרה.
RETAIL_RESOURCE_STATE_UPDATING מתבצע עדכון של המצב.
RETAIL_RESOURCE_STATE_DELETED המצב הוא 'נמחקה'.
RETAIL_RESOURCE_STATE_ERROR שגיאת מצב.