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

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

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

תרחישים לדוגמה לשימוש בכלי לזיהוי תגים ובכלי לזיהוי מוצרים

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

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

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

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

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

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

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

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

המודל הזה מזהה את הזהות של מוצר בודד ברמת מספר הפריט המסחרי הגלובלי (GTIN) או ברמת קוד המוצר האוניברסלי (UPC). כדי לאפשר פתרון בעיות בתרחישי השימוש האלה, שולבו ב-Product Recognizer כמה מודלים של 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 שזמינים כדי לעזור לכם לבנות קטלוג מוצרים, לנהל מערכי נתונים של מוצרים, לבנות אינדקס ולבצע פריסה של שירות זיהוי מוצרים. הם מוסברים כך:

תרשים של מושג API

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

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

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

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

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

נקודת קצה (endpoint): מיקום שכולל את כל ההגדרות הנדרשות כדי לבצע הסקה של זיהוי מוצרים או זיהוי תגים. כדי להשתמש בזיהוי מוצרים, צריך לפרוס 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=פעולת הפלט שלכם, לדוגמה, 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"
  }'
הצגת רשימה של קטלוגים
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"}'
‫CreateProduct with Third-party ID
  • 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"}'
קבלת 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

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

קובץ קלט לדוגמה ב-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> כל שורה בקובץ הקלט היא רק URI של Cloud Storage של תמונה לעיבוד, לדוגמה, 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

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

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

updateTime

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

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

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)

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

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

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

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

createTime

string (פורמט Timestamp)

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

updateTime

string (פורמט Timestamp)

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

RetailThirdPartyId מצגת JSON

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

שדות

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

שיטה: projects.locations.retailCatalogs.retailProducts.create

בקשת HTTP

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

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

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

גוף הבקשה

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

גוף התשובה

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

שיטה: 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)

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

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

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

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

createTime

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

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

updateTime

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

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

ערכי ה-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

מחרוזת

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

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)

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

updateTime

string (פורמט Timestamp)

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

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 מחרוזת חובה. מזהה של קבוצת מוצרים קמעונאיים.

גוף הבקשה

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

גוף התשובה

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

שיטה: 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

מסנן רגיל שיחול על כל מוצרי הקמעונאות בקטלוג הקמעונאי הראשי, בוחר פריטים שעומדים בתנאי המסנן ומוסיף אותם ל-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

מסנן רגיל שיחול על כל RetailProduct ב-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

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

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

updateTime

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

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

‫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

אובייקט

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

tagRecognitionConfig

אובייקט

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

resourceState

enum

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

labels

map (key: string, value: string)

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

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

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

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

createTime

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

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

updateTime

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

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

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 של RetailProduct שרוצים לייבא.

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 שגיאת מצב.