ניהול אינדקסים

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

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

יצירת אינדקס של מחסן נתונים

REST

כדי ליצור משאב אינדקס, שולחים בקשת POST באמצעות השיטה projects.locations.corpora.indexes.create.

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

  • REGIONALIZED_ENDPOINT: נקודת הקצה עשויה לכלול תחילית שתואמת ל-LOCATION_ID, כמו europe-west4-. מידע נוסף על נקודות קצה אזוריות
  • PROJECT_NUMBER: מספר הפרויקט ב- Google Cloud.
  • LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI Vision. לדוגמה: us-central1, ‏ europe-west4. אזורים זמינים
  • CORPUS_ID: המזהה של מאגר הידע היעד.
  • INDEX_ID: (אופציונלי) ערך שסופק על ידי המשתמש למזהה האינדקס. בבקשה הזו, הערך מוסף לכתובת ה-URL של הבקשה בפורמט:
    • https://REGIONALIZED_ENDPOINT/v1/[...]/corpora/CORPUS_ID/indexes?index_id=INDEX_ID

ה-method של ה-HTTP וכתובת ה-URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes

גוף בקשת JSON:

{
  "display_name": "DISPLAY_NAME",
  "description": "INDEX_DESCRIPTION",
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.CreateIndexMetadata"
  }
}

עדכון אינדקס של מחסן נתונים

ה-API‏ UpdateIndex מאפשר לעדכן את שדות המטא-נתונים של האינדקס, כמו display_name ו-description, וגם את תוכן האינדקס הבסיסי (assets וה-annotations שלהם).

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

REST

כדי לעדכן משאב אינדקס, שולחים בקשת PATCH באמצעות השיטה projects.locations.corpora.indexes.patch.

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

  • REGIONALIZED_ENDPOINT: נקודת הקצה עשויה לכלול תחילית שתואמת ל-LOCATION_ID, כמו europe-west4-. מידע נוסף על נקודות קצה אזוריות
  • PROJECT_NUMBER: מספר הפרויקט ב- Google Cloud.
  • LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI Vision. לדוגמה: us-central1, ‏ europe-west4. אזורים זמינים
  • CORPUS_ID: המזהה של מאגר הידע היעד.
  • INDEX_ID: המזהה של אינדקס היעד.
  • ?update_mask=fieldToUpdate: רשימה של השדות הזמינים שרוצים להחיל עליהם update_mask. מציינים את הערכים המתאימים לשדות החדשים בגוף הבקשה. הערך החדש הזה מחליף את הערך הקיים בשדה. אפשר לציין כמה שדות כערכים מופרדים בפסיקים. השדות הזמינים:
    • השם המוצג: ?update_mask=display_name
    • תיאור: ?update_mask=description
    • עדכון נתוני המדד הבסיסיים: ?update_mask=entire_corpus
    • עדכון כל השדות: ?update_mask=*

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID?update_mask=display_name,entire_corpus

גוף בקשת JSON:

{
  "display_name": "DISPLAY_NAME",
  "entire_corpus": true
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID?update_mask=display_name,entire_corpus"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID?update_mask=display_name,entire_corpus" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.UpdateIndexMetadata"
  }
}

עדכונים של אינדקסים בסטרימינג

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

הצגת רשימת האינדקסים במחסן נתונים

REST

כדי לפרט את האינדקסים בקורפוס, שולחים בקשת GET באמצעות השיטה projects.locations.corpora.indexes.list.

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

ה-method של ה-HTTP וכתובת ה-URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes

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

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "indexes": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID_1",
      "display_name": "DISPLAY_NAME_1",
      "description": "DESCRIPTION_1",
      "entireCorpus": true,
      "state": "CREATED"
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID_2",
      "display_name": "DISPLAY_NAME_2",
      "description": "DESCRIPTION_2",
      "entireCorpus": true,
      "state": "CREATED"
    }
  ]
}

קבלת אינדקס

REST

כדי לקבל פרטים על אינדקס, שולחים בקשת GET באמצעות השיטה projects.locations.corpora.indexes.get.

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

ה-method של ה-HTTP וכתובת ה-URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID

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

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
  "display_name": "DISPLAY_NAME",
  "description": "DESCRIPTION",
  "entireCorpus": true,
  "state": "CREATED"
}

הצגת נכסים באינדקס

REST

כדי לקבל פרטים על הנכסים שקיימים באינדקס, שולחים בקשת GET באמצעות השיטה projects.locations.corpora.indexes.viewAssets.

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

  • REGIONALIZED_ENDPOINT: נקודת הקצה עשויה לכלול תחילית שתואמת ל-LOCATION_ID, כמו europe-west4-. מידע נוסף על נקודות קצה אזוריות
  • PROJECT_NUMBER: מספר הפרויקט ב- Google Cloud.
  • LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI Vision. לדוגמה: us-central1, ‏ europe-west4. אזורים זמינים
  • CORPUS_ID: המזהה של מאגר הידע היעד.
  • INDEX_ID: המזהה של אינדקס היעד.
  • PAGE_SIZE: (אופציונלי) מספר התוצאות שיוחזרו.
  • PAGE_TOKEN: (אופציונלי) הערך nextPageToken שסופק בתגובה של הקריאה הקודמת. אפשר להשתמש בו כדי לקבל את דף התוצאות הבא.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN

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

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "indexedAssets": [
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1"
    },
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2"
    }
  ],
  "nextPageToken": "NEXT_PAGE_TOKEN"
}

הצגת נכסים שעברו אינדוקס באמצעות מסנן

אפשר לספק רשימה של מזהי נכסים מופרדים בפסיקים באמצעות השדה filter בשיטה projects.locations.corpora.indexes.viewAssets כדי לסנן את כל הנכסים באינדקס ולהציג רק את הנכסים שסופקו.

REST

כדי להציג ולסנן נכסים שקיימים באינדקס, שולחים בקשת GET באמצעות השיטה projects.locations.corpora.indexes.viewAssets.

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

  • REGIONALIZED_ENDPOINT: נקודת הקצה עשויה לכלול תחילית שתואמת ל-LOCATION_ID, כמו europe-west4-. מידע נוסף על נקודות קצה אזוריות
  • PROJECT_NUMBER: מספר הפרויקט ב- Google Cloud.
  • LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI Vision. לדוגמה: us-central1, ‏ europe-west4. אזורים זמינים
  • CORPUS_ID: המזהה של מאגר הידע היעד.
  • INDEX_ID: המזהה של אינדקס היעד.
  • PAGE_SIZE: (אופציונלי) מספר התוצאות שיוחזרו.
  • PAGE_TOKEN: (אופציונלי) הערך nextPageToken שסופק בתגובה של הקריאה הקודמת. אפשר להשתמש בו כדי לקבל את דף התוצאות הבא.
  • ASSET_ID_FILTER: (אופציונלי) רשימה מופרדת בפסיקים של מזהי נכסים שרוצים לסנן ברשימה שמוחזרת. לדוגמה:
    • ?filter=ASSET_ID_1"
    • ?filter=ASSET_ID_1,ASSET_ID_2"

ה-method של ה-HTTP וכתובת ה-URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER

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

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "indexedAssets": [
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1"
    },
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2"
    }
  ],
  "nextPageToken": "NEXT_PAGE_TOKEN"
}

מחיקת אינדקס

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

REST

כדי למחוק משאב אינדקס, שולחים בקשת DELETE באמצעות השיטה projects.locations.corpora.indexes.delete.

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

ה-method של ה-HTTP וכתובת ה-URL:

DELETE https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID

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

curl

מריצים את הפקודה הבאה:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
}