אחרי יצירת קבוצת המוצרים ואינדוקס של קבוצת המוצרים, אפשר לשלוח שאילתה לקבוצת המוצרים באמצעות Cloud Vision API.
חיפוש מוצרים תואמים
כדי למצוא מוצרים דומים לתמונה מסוימת, מעבירים את URI של Cloud Storage של התמונה, את כתובת ה-URL של התמונה באינטרנט או מחרוזת מקודדת של Base64 אל Vision API Google Product Search. במאמר מגבלות שימוש מופיע מידע על גודל הבקשה המקסימלי ועל המכסות.
בנושא הסבר על תשובות לחיפושים וזיהוי של כמה מוצרים יש דוגמה לזיהוי של מוצר אחד ולזיהוי של כמה מוצרים בתמונה.
חיפוש באמצעות תמונה מקומית
בדוגמאות הבאות קוראים קובץ מקומי ושולחים שאילתה ל-API על ידי הכללת הבייטים הגולמיים של התמונה (תמונה מקודדת ב-Base64) בבקשה.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- BASE64_ENCODED_IMAGE: ייצוג base64 (מחרוזת ASCII) של נתוני התמונה הבינאריים. המחרוזת הזו צריכה להיראות כמו המחרוזת הבאה:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- LOCATION_ID: מזהה מיקום תקין. מזהי מיקום תקינים:
us-west1,us-east1,europe-west1ו-asia-east1. - PRODUCT_SET_ID: המזהה של קבוצת המוצרים שרוצים להריץ עליה את הפעולה.
שיקולים ספציפיים לשדה:
-
features.maxResults– המספר המקסימלי של התוצאות שיוחזרו. -
imageContext.productCategories– קטגוריית המוצרים שבה רוצים לחפש. בשלב הזה אפשר לציין רק קטגוריית מוצרים אחת (מוצרים לבית, ביגוד, צעצועים, מוצרים ארוזים וכללי). -
imageContext.filter– (אופציונלי) ביטוי סינון של מפתח/ערך (או כמה ביטויים) לתווית מוצר. פורמט: "key=value". סינון: אפשר לקשר בין זוגות של מפתח-ערך באמצעות הביטויים AND או OR: "color=blueANDstyle=mens" או "color=blueORcolor=black". אם משתמשים בביטוי OR, כל המפתחות בביטוי צריכים להיות זהים.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://vision.googleapis.com/v1/images:annotate
גוף בקשת JSON:
{
"requests": [
{
"image": {
"content": base64-encoded-image
},
"features": [
{
"type": "PRODUCT_SEARCH",
"maxResults": 5
}
],
"imageContext": {
"productSearchParams": {
"productSet": "projects/project-id/locations/location-id/productSets/product-set-id",
"productCategories": [
"apparel"
],
"filter": "style = womens"
}
}
}
]
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content
אם הבקשה תתבצע בהצלחה, השרת יחזיר קוד סטטוס 200 OK של HTTP ואת התשובה בפורמט JSON.
קובץ ה-JSON של התגובה כולל את שני סוגי התוצאות הבאים:
-
productSearchResults– מכיל רשימה של מוצרים תואמים לכל התמונה. בדוגמה לתשובה, המוצרים התואמים הם: product_id65, product_id35, product_id34, product_id62, product_id32. -
productGroupedResults– מכיל קואורדינטות של תיבת תוחמת ופריטים תואמים לכל מוצר שזוהה בתמונה. בתגובה הבאה יש רק מוצר אחד שזוהה, ואחריו מוצרים תואמים במדגם המוצרים: product_id65, product_id35, product_id34, product_id93, product_id62.
שימו לב שיש חפיפה בין שני סוגי התוצאות, אבל יכול להיות שיהיו גם הבדלים (למשל, product_id32 ו-product_id93 בתגובה).
Go
מידע על התקנת ספריית הלקוח של Vision API Google Product Search ושימוש בה מופיע במאמר ספריות הלקוח של Vision API Google Product Search. מידע נוסף מופיע במאמרי העזרה של Vision API Google Product Search Go API.
כדי לבצע אימות ב-Google Product Search של Vision API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Vision API Google Product Search ושימוש בה מופיע במאמר ספריות הלקוח של Vision API Google Product Search. מידע נוסף מופיע במאמרי העזרה של Vision API Google Product Search Java API.
כדי לבצע אימות ב-Google Product Search של Vision API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Vision API Google Product Search ושימוש בה מופיע במאמר ספריות הלקוח של Vision API Google Product Search. מידע נוסף מופיע במאמרי העזרה של Vision API Google Product Search Node.js API.
כדי לבצע אימות ב-Google Product Search של Vision API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Vision API Google Product Search ושימוש בה מופיע במאמר ספריות הלקוח של Vision API Google Product Search. מידע נוסף מופיע במאמרי העזרה של Vision API Google Product Search Python API.
כדי לבצע אימות ב-Google Product Search של Vision API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
שפות נוספות
C#: צריך לפעול לפי הוראות ההגדרה של C# בדף של ספריות הלקוח ואז לעבור אל מאמרי העזרה בנושא Google Product Search ב-Vision API עבור .NET.
PHP: עליכם לפעול לפי הוראות ההגדרה של PHP בדף של ספריות הלקוח ואז לעבור אל מסמכי העזר של Google Product Search ב-Vision API ל-PHP.
Ruby: צריך לפעול לפי ההוראות להגדרת Ruby בדף של ספריות הלקוח ולעיין במסמכי העזר של Vision API Google Product Search ל-Ruby.
חיפוש באמצעות תמונה מרחוק
יש לכם גם אפשרות למצוא מוצרים דומים לתמונה מסוימת על ידי ציון ה-URI של Cloud Storage לתמונה.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- CLOUD_STORAGE_IMAGE_URI: הנתיב לקובץ תמונה תקין בקטגוריה של Cloud Storage. צריכות להיות לכם לפחות הרשאות קריאה לקובץ.
דוגמה:
gs://storage-bucket/filename.jpg
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- LOCATION_ID: מזהה מיקום תקין. מזהי מיקום תקינים:
us-west1,us-east1,europe-west1ו-asia-east1. - PRODUCT_SET_ID: המזהה של קבוצת המוצרים שרוצים להריץ עליה את הפעולה.
שיקולים ספציפיים לשדה:
-
features.maxResults– המספר המקסימלי של התוצאות שיוחזרו. -
imageContext.productCategories– קטגוריית המוצרים שבה רוצים לחפש. בשלב הזה אפשר לציין רק קטגוריית מוצרים אחת (מוצרים לבית, ביגוד, צעצועים, מוצרים ארוזים וכללי). -
imageContext.filter– (אופציונלי) ביטוי סינון של מפתח/ערך (או כמה ביטויים) לתווית מוצר. פורמט: "key=value". סינון: אפשר לקשר בין זוגות של מפתח-ערך באמצעות הביטויים AND או OR: "color=blueANDstyle=mens" או "color=blueORcolor=black". אם משתמשים בביטוי OR, כל המפתחות בביטוי צריכים להיות זהים.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://vision.googleapis.com/v1/images:annotate
גוף בקשת JSON:
{
"requests": [
{
"image": {
"source": {
"gcsImageUri": "cloud-storage-image-uri"
}
},
"features": [
{
"type": "PRODUCT_SEARCH",
"maxResults": 5
}
],
"imageContext": {
"productSearchParams": {
"productSet": "projects/project-id/locations/location-id/productSets/product-set-id",
"productCategories": [
"apparel"
],
"filter": "style = womens"
}
}
}
]
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content
אם הבקשה תתבצע בהצלחה, השרת יחזיר קוד סטטוס 200 OK של HTTP ואת התשובה בפורמט JSON.
קובץ ה-JSON של התגובה כולל את שני סוגי התוצאות הבאים:
-
productSearchResults– מכיל רשימה של מוצרים תואמים לכל התמונה. בדוגמה לתשובה, המוצרים התואמים הם: product_id65, product_id35, product_id34, product_id62, product_id32. -
productGroupedResults– מכיל קואורדינטות של תיבת תוחמת ופריטים תואמים לכל מוצר שזוהה בתמונה. בתגובה הבאה יש רק מוצר אחד שזוהה, ואחריו מוצרים תואמים במדגם המוצרים: product_id65, product_id35, product_id34, product_id93, product_id62.
שימו לב שיש חפיפה בין שני סוגי התוצאות, אבל יכול להיות שיהיו גם הבדלים (למשל, product_id32 ו-product_id93 בתגובה).
Go
מידע על התקנת ספריית הלקוח של Vision API Google Product Search ושימוש בה מופיע במאמר ספריות הלקוח של Vision API Google Product Search. מידע נוסף מופיע במאמרי העזרה של Vision API Google Product Search Go API.
כדי לבצע אימות ב-Google Product Search של Vision API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Vision API Google Product Search ושימוש בה מופיע במאמר ספריות הלקוח של Vision API Google Product Search. מידע נוסף מופיע במאמרי העזרה של Vision API Google Product Search Java API.
כדי לבצע אימות ב-Google Product Search של Vision API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Vision API Google Product Search ושימוש בה מופיע במאמר ספריות הלקוח של Vision API Google Product Search. מידע נוסף מופיע במאמרי העזרה של Vision API Google Product Search Node.js API.
כדי לבצע אימות ב-Google Product Search של Vision API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Vision API Google Product Search ושימוש בה מופיע במאמר ספריות הלקוח של Vision API Google Product Search. מידע נוסף מופיע במאמרי העזרה של Vision API Google Product Search Python API.
כדי לבצע אימות ב-Google Product Search של Vision API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
שפות נוספות
C#: צריך לפעול לפי הוראות ההגדרה של C# בדף של ספריות הלקוח ואז לעבור אל מאמרי העזרה בנושא Google Product Search ב-Vision API עבור .NET.
PHP: עליכם לפעול לפי הוראות ההגדרה של PHP בדף של ספריות הלקוח ואז לעבור אל מסמכי העזר של Google Product Search ב-Vision API ל-PHP.
Ruby: צריך לפעול לפי ההוראות להגדרת Ruby בדף של ספריות הלקוח ולעיין במסמכי העזר של Vision API Google Product Search ל-Ruby.