הצגת תכונות מהחנות הווירטואלית

‫Vertex AI Feature Store מאפשר לכם להציג אונליין ערכי תכונות בזמן אמת מתצוגת תכונות בחנות אונליין. לדוגמה, אתם יכולים להציג ערכי תכונות מתצוגת תכונות לחיזויים אונליין. צריך לסנכרן תצוגת תכונות לפחות פעם אחת לפני שאפשר להציג תכונות אונליין מהתכונה הזו.

אם תצוגת התכונות מוגדרת על סמך קבוצות תכונות ותכונות, Vertex AI Feature Store מאחזר את ערכי התכונות העדכניים ביותר שמתאימים למזהה ישות ספציפי. אם יש כמה רשומות עם אותו ערך בעמודה ID, ‏ Vertex AI Feature Store מאחזר את הערכים האחרונים של המאפיינים שאינם null, על סמך העמודה feature_timestamp.

אם תצוגת התכונות משויכת ישירות למקור נתונים ב-BigQuery בלי לשייך קבוצות של תכונות ותכונות, Vertex AI Feature Store מאחזר את כל ערכי התכונות ממקור הנתונים. במקרה הזה, כל שורה במקור הנתונים צריכה להכיל מזהה ייחודי.

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

לפני שמתחילים

מאמתים את Gemini Enterprise Agent Platform, אלא אם כבר עשיתם זאת.

צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

Python

כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

  1. התקינו את ה-CLI של Google Cloud.

  2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

    gcloud auth application-default login

    אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.

    אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

REST

כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

    התקינו את ה-CLI של Google Cloud.

    אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

אחזור ערכי תכונות באמצעות Bigtable online serving

אתם יכולים להשתמש ב-Bigtable online serving כדי:

שליפת ערכי תכונות של ישות אחת

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

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

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

REST

כדי לאחזר את כל הערכים העדכניים של תכונה עבור מזהה ישות ספציפי ממופע של FeatureView, שולחים בקשת POST באמצעות השיטה featureViews.fetchFeatureValues.

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

  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.
  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫FEATUREONLINESTORE_NAME: השם של החנות אונליין שמכילה את תצוגת התכונות.
  • ‫FEATUREVIEW_NAME: השם של תצוגת התכונות שממנה רוצים להציג ערכי תכונות.
  • ‫ENTITY_ID: הערך של עמודת המזהה ברשומה של התכונה שממנה רוצים להציג את הערכים האחרונים של התכונה.
  • ‫FORMAT: אופציונלי: הפורמט שבו רוצים לאחזר את ערכי התכונות. הפורמטים הבאים נתמכים:
    • KEY_VALUE
    • PROTO_STRUCT

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

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues

גוף בקשת JSON:

{
  data_key: { key: "ENTITY_ID" },
  data_format: "FORMAT"
}

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

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://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"

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://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content

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

key_values {
  features {
    value {
      int64_value: 258348
    }
    name: "feature_0"
  }
  features {
    value {
      double_value: 0.96300036744534068
    }
    name: "feature_1"
  }
  features {
    value {
      double_value: 0.42787383695351083
    }
    name: "feature_2"
  }
  features {
    value {
      double_value: 0.12219888824743128
    }
    name: "feature_3"
  }
  features {
    value {
      double_value: 0.037523154697944622
    }
    name: "feature_4"
  }
  features {
    value {
      double_value: 0.1766952509448767
    }
    name: "feature_5"
  }
}

Python

אפשר להשתמש בדוגמה הבאה כדי לאחזר ערכי תכונות על סמך מזהה ישות ספציפי באמצעות Bigtable online serving.

from google.cloud import aiplatform
from vertexai.resources.preview.feature_store import FeatureOnlineStore, FeatureView

aiplatform.init(project="PROJECT_ID", location="LOCATION_ID")
fos = FeatureOnlineStore("FEATUREONLINESTORE_NAME")
fv = FeatureView("FEATUREVIEW_NAME", feature_online_store_id=fos.name)
fv.read("ENTITY_ID")

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

  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.

  • ‫PROJECT_ID: מזהה הפרויקט.

  • ‫FEATUREONLINESTORE_NAME: השם של החנות אונליין שמכילה את תצוגת התכונות.

  • ‫FEATUREVIEW_NAME: השם של תצוגת התכונות שממנה רוצים להציג ערכי תכונות.

  • ‫ENTITY_ID: הערך של עמודת המזהה שעבורו רוצים להכניס לשימוש בסביבת הייצור את הערכים העדכניים ביותר של התכונות.

  • ‫FORMAT: אופציונלי: הפורמט שבו רוצים לאחזר את ערכי התכונות. הפורמטים הנתמכים כוללים פורמטים של זוגות JSON KEY_VALUE ו-proto PROTO_STRUCT.

שליפת ערכי מאפיינים מתצוגת מאפיינים עם כמה עמודות של מזהי ישויות

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

REST

כדי לאחזר את כל הערכים העדכניים של תכונה עבור מזהה ישות ספציפי ממופע של FeatureView, שולחים בקשת POST באמצעות השיטה featureViews.fetchFeatureValues.

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

  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.
  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫FEATUREONLINESTORE_NAME: השם של החנות אונליין שמכילה את תצוגת התכונות.
  • ‫FEATUREVIEW_NAME: השם של תצוגת התכונות שממנה רוצים להציג ערכי תכונות.
  • ‫ENTITY_ID_PART_1, ‏ENTITY_ID_PART_2 ו-ENTITY_ID_PART_3: החלקים של מזהה היישות בעמודות של מזהה היישות שהוגדרו בתצוגת התכונות. החלקים האלה מרכיבים את מזהה הישות הייחודי של רשומת התכונה.
  • ‫FORMAT: אופציונלי: הפורמט שבו רוצים לאחזר את ערכי התכונות. הפורמטים הבאים נתמכים:
    • KEY_VALUE
    • PROTO_STRUCT

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

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues

גוף בקשת JSON:

{
  data_key: { composite_key: { parts: ["ENTITY_ID_PART_1", "ENTITY_ID_PART_2", "ENTITY_ID_PART_3"] } },
  data_format: "FORMAT"
}

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

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://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"

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://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content

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

key_values {
  features {
    value {
      int64_value: 258348
    }
    name: "feature_0"
  }
  features {
    value {
      double_value: 0.96300036744534068
    }
    name: "feature_1"
  }
  features {
    value {
      double_value: 0.42787383695351083
    }
    name: "feature_2"
  }
  features {
    value {
      double_value: 0.12219888824743128
    }
    name: "feature_3"
  }
  features {
    value {
      double_value: 0.037523154697944622
    }
    name: "feature_4"
  }
  features {
    value {
      double_value: 0.1766952509448767
    }
    name: "feature_5"
  }
}

Python

אפשר להשתמש בדוגמה הבאה כדי לאחזר ערכי תכונות על סמך מזהה ישות ספציפי באמצעות Bigtable online serving.

from google.cloud import aiplatform
from vertexai.resources.preview.feature_store import FeatureOnlineStore, FeatureView

aiplatform.init(project="PROJECT_ID", location="LOCATION_ID")
fos = FeatureOnlineStore("FEATUREONLINESTORE_NAME")
fv = FeatureView("FEATUREVIEW_NAME", feature_online_store_id=fos.name)
fv.read(["ENTITY_ID_PART_1", "ENTITY_ID_PART_2", "ENTITY_ID_PART_3"])

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

  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.

  • ‫PROJECT_ID: מזהה הפרויקט.

  • ‫FEATUREONLINESTORE_NAME: השם של החנות אונליין שמכילה את תצוגת התכונות.

  • ‫FEATUREVIEW_NAME: השם של תצוגת התכונות שממנה רוצים להציג ערכי תכונות.

  • ‫ENTITY_ID_PART_1,‏ ENTITY_ID_PART_2 ו-ENTITY_ID_PART_3: החלקים של מזהה היישות בעמודות של מזהה היישות שהוגדרו לתצוגת המאפיינים. החלקים האלה מרכיבים את מזהה הישות הייחודי של רשומת התכונה.

  • ‫FORMAT: אופציונלי: הפורמט שבו רוצים לאחזר את ערכי התכונות. הפורמטים הנתמכים כוללים פורמטים של זוגות JSON KEY_VALUE ו-proto PROTO_STRUCT.

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

אפשר להשתמש בדוגמה הבאה כדי לאחזר ערכי תכונות על ידי ציון קבוצה של מזהים מכמה עמודות של מזהי ישויות באמצעות Bigtable online serving.

REST

כדי לאחזר את כל הערכים העדכניים של תכונה מסוימת עבור מזהה ישות ספציפי ממופע של FeatureView, שולחים בקשת POST באמצעות השיטה featureViews.streamingFetchFeatureValues.

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

  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.
  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫FEATUREONLINESTORE_NAME: השם של החנות אונליין שמכילה את תצוגת התכונות.
  • ‫FEATUREVIEW_NAME: השם של תצוגת התכונות שממנה רוצים להציג ערכי תכונות.
  • ‫ENTITY_ID_1, ENTITY_ID_2, ENTITY_ID_3 ו-ENTITY_ID_4: קבוצת הערכים מעמודות המזהים ברשומות של התכונות שמהן רוצים להכניס לשימוש בסביבת הייצור את הערכים האחרונים של התכונות. שימו לב: קיבוץ של מזהי הישויות בכמה רשימות מקוננות בבקשה יכול לעזור להפחית את זמן האחזור, כי Vertex AI Feature Store מבצע פעולת קריאה נפרדת לכל רשימה מקוננת של מזהים.

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

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:streamingFetchFeatureValues

גוף בקשת JSON:

[
  {
    data_keys: [{key: "ENTITY_ID_1"}, {key: "ENTITY_ID_2"}],
    feature_view: "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"
  },
  {
    data_keys: [{key: "ENTITY_ID_3"}, {key: "ENTITY_ID_4"}],
    feature_view: "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"
  }
]

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

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://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:streamingFetchFeatureValues"

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://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:streamingFetchFeatureValues" | Select-Object -Expand Content

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

[data {
  key_values {
    features {
      name: "movies"
      value {
        string_value: "movie_04"
      }
    }
    features {
      name: "feature_timestamp"
      value {
        int64_value: 1631694494000000
      }
    }
  }
  data_key {
    key: "eve"
  }
}
, data {
  key_values {
    features {
      name: "movies"
      value {
        string_value: "movie_03"
      }
    }
    features {
      name: "feature_timestamp"
      value {
        int64_value: 1631612115000000
      }
    }
  }
  data_key {
    key: "alice"
  }
}
data {
  key_values {
    features {
      name: "movies"
      value {
        string_value: "movie_02"
      }
    }
    features {
      name: "feature_timestamp"
      value {
        int64_value: 1631694494000000
      }
    }
  }
  data_key {
    key: "bob"
  }
}
]

Python

אפשר להשתמש בדוגמה הבאה כדי לאחזר ערכי תכונות מכמה עמודות של מזהי ישויות באמצעות Bigtable online serving.

from google.cloud.aiplatform_v1beta1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1beta1.types import feature_online_store_service as feature_online_store_service_pb2

data_client = FeatureOnlineStoreServiceClient(
  client_options={"api_endpoint": f"LOCATION_ID-aiplatform.googleapis.com"}
)

feature_view = "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"

keys_list=[
    ["ENTITY_ID_1","ENTITY_ID_2"],
    ["ENTITY_ID_3","ENTITY_ID_4"]
  ]

requests = []

for keys in keys_list:
  requests.append(
    feature_online_store_service_pb2.StreamingFetchFeatureValuesRequest(
      feature_view=feature_view,
      data_keys=[
          feature_online_store_service_pb2.FeatureViewDataKey(key=key)
          for key in keys
      ]
    )
  )

responses = data_client.streaming_fetch_feature_values(
    requests=iter(requests)
)
responses = [response for response in responses]

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

  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.

  • ‫PROJECT_ID: מזהה הפרויקט.

  • ‫FEATUREONLINESTORE_NAME: השם של החנות אונליין שמכילה את תצוגת התכונות.

  • ‫FEATUREVIEW_NAME: השם של תצוגת התכונות שממנה רוצים להציג ערכי תכונות.

  • ‫ENTITY_ID_1, ENTITY_ID_2, ENTITY_ID_3 ו-ENTITY_ID_4: מזהי הישויות שמהן רוצים להציג את הערכים האחרונים של התכונות. שימו לב: קיבוץ של מזהי הישויות בכמה רשימות מקוננות בבקשה יכול לעזור להפחית את זמן האחזור, כי מאגר התכונות של Vertex AI מבצע פעולת קריאה נפרדת לכל רשימה מקוננת של מזהים.

שליפת ערכי תכונות באמצעות מילוי בקשה באופן מיידי ממוטב מנקודת קצה ציבורית

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

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

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

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

כשיוצרים ומגדירים מופע של חנות אונליין לשימוש במילוי בקשה באופן מיידי בצורה אופטימלית עם נקודת קצה ציבורית, Vertex AI Feature Store יוצר את שם הדומיין של נקודת הקצה הציבורית של החנות האונליין. כדי להתחיל להציג ערכי תכונות מתצוגת תכונות בחנות אונליין, צריך לאחזר את שם הדומיין של נקודת הקצה הציבורית מפרטי החנות האונליין.

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

REST

כדי לאחזר את הפרטים של משאב FeatureOnlineStore בפרויקט, שולחים בקשת GET באמצעות השיטה featureOnlineStores.get.

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

  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.
  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫FEATUREONLINESTORE_NAME: השם של מופע החנות באינטרנט.

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

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME

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

curl

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

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"

PowerShell

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

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

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

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1",
  "createTime": "2023-09-06T23:25:04.256314Z",
  "updateTime": "2023-09-06T23:25:04.256314Z",
  "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=",
  "state": "STABLE",
  "dedicatedServingEndpoint": {
    "publicEndpointDomainName": "PUBLIC_ENDPOINT_DOMAIN_NAME"
  },
  "optimized": {}
}

תצטרכו את הערך PUBLIC_ENDPOINT_DOMAIN_NAME מהתגובה כדי לאחזר את ערכי התכונות בשלב הבא.

שליפת ערכי תכונות ממזהה ישות

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

REST

כדי לאחזר את כל הערכים העדכניים של תכונות עבור מזהה ישות ספציפי ממופע של FeatureView, שולחים בקשת POST באמצעות השיטה featureViews.fetchFeatureValues.

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

  • ‫PUBLIC_ENDPOINT_DOMAIN_NAME: שם הדומיין של נקודת הקצה הציבורית של מופע החנות אונליין שאוחזר באמצעות ה-method featureOnlineStores.get.
  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.
  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫FEATUREONLINESTORE_NAME: השם של החנות אונליין שמכילה את תצוגת התכונות.
  • ‫FEATUREVIEW_NAME: השם של תצוגת התכונות שממנה רוצים להציג ערכי תכונות.
  • ‫ENTITY_ID: הערך של עמודת המזהה ברשומה של התכונה שממנה רוצים להציג את הערכים האחרונים של התכונה.
  • ‫FORMAT: אופציונלי: הפורמט שמשמש לאחזור ערכי התכונות. הפורמטים הבאים נתמכים:
    • KEY_VALUE
    • PROTO_STRUCT

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

POST https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues

גוף בקשת JSON:

{
  data_key: { key: "ENTITY_ID" },
  data_format: "FORMAT"
}

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

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://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"

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://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content

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

key_values {
  features {
    value {
      int64_value: 258348
    }
    name: "feature_0"
  }
  features {
    value {
      double_value: 0.96300036744534068
    }
    name: "feature_1"
  }
  features {
    value {
      double_value: 0.42787383695351083
    }
    name: "feature_2"
  }
  features {
    value {
      double_value: 0.12219888824743128
    }
    name: "feature_3"
  }
  features {
    value {
      double_value: 0.037523154697944622
    }
    name: "feature_4"
  }
  features {
    value {
      double_value: 0.1766952509448767
    }
    name: "feature_5"
  }
}

Python

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

from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.types import feature_online_store_service as feature_online_store_service_pb2

data_client = FeatureOnlineStoreServiceClient(
  client_options={"api_endpoint": f"PUBLIC_ENDPOINT_DOMAIN_NAME"}
)
data_client.fetch_feature_values(
  request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
    feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
    data_key=feature_online_store_service_pb2.FeatureViewDataKey(key=f"ENTITY_ID"),
    data_format=feature_online_store_service_pb2.FeatureViewDataFormat.FORMAT,
  )
)

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

  • ‫PUBLIC_ENDPOINT_DOMAIN_NAME: שם הדומיין של נקודת הקצה הציבורית של מופע החנות אונליין שאוחזר באמצעות ה-method featureOnlineStores.get.

  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.

  • ‫PROJECT_ID: מזהה הפרויקט.

  • ‫FEATUREONLINESTORE_NAME: השם של החנות אונליין שמכילה את תצוגת התכונות.

  • ‫FEATUREVIEW_NAME: השם של תצוגת התכונות שממנה רוצים להציג ערכי תכונות.

  • ‫ENTITY_ID: הערך של עמודת המזהה ברשומה של התכונה שממנה רוצים להציג את הערכים האחרונים של התכונה.

  • ‫FORMAT: אופציונלי: הפורמט שבו רוצים לאחזר את ערכי התכונות. הפורמטים הנתמכים כוללים פורמטים של זוגות JSON KEY_VALUE ו-proto PROTO_STRUCT.

אחזור ערכי תכונות באמצעות אופטימיזציה של הצגת מודלים אונליין מנקודת קצה של Private Service Connect

אם הגדרתם את מופע החנות הווירטואלית כך שיציג ערכי תכונות באמצעות Optimized online serving (הצגה אונליין אופטימלית) מנקודת קצה של Private Service Connect, תצטרכו לבצע את השלבים הבאים כדי לאחזר ערכי תכונות מתצוגת תכונות בחנות הווירטואלית:

  1. מאחזרים את ההגדרה של Private Service Connect עבור מכונת FeatureOnlineStore.

  2. מוסיפים נקודת קצה ל-Private Service Connect להגדרת הרשת.

  3. מתחברים לנקודת הקצה של Private Service Connect דרך gRPC.

  4. שליפת ערכי תכונות ממזהה ישות.

אחזור מחרוזת צירוף השירות לחנות אונליין

כשיוצרים ומגדירים מכונה של חנות אונליין למילוי בקשה באופן מיידי בצורה אופטימלית עם נקודת קצה (endpoint) של Private Service Connect, ‏ Vertex AI Feature Store יוצר מחרוזת של צירוף שירות שאפשר להשתמש בה כדי להגדיר את נקודת הקצה (endpoint) של Private Service Connect. אפשר לאחזר את המחרוזת של קובץ השירות מהפרטים של חנות אונליין.

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

REST

כדי לאחזר את הפרטים של משאב FeatureOnlineStore בפרויקט, שולחים בקשת GET באמצעות השיטה featureOnlineStores.get.

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

  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.
  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫FEATUREONLINESTORE_NAME: השם של מופע החנות באינטרנט.

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

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME

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

curl

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

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"

PowerShell

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

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

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

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1",
  "createTime": "2023-09-06T23:25:04.256314Z",
  "updateTime": "2023-09-06T23:25:04.256314Z",
  "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=",
  "state": "STABLE",
  "dedicatedServingEndpoint": {
    "privateServiceConnectConfig": {
      "enablePrivateServiceConnect": "true",
      "projectAllowlist": [
        "PROJECT_NAME"
      ]
    },
    serviceAttachment: "SERVICE_ATTACHMENT_STRING"
  },
  "optimized": {}
}

תצטרכו את הערך SERVICE_ATTACHMENT_STRING מהתגובה כדי לאחזר את ערכי התכונות בשלב הבא.

הוספת נקודת קצה ל-Private Service Connect

כדי להוסיף נקודת קצה של Private Service Connect להצגת מודעות אונליין אופטימלית להגדרת הרשת, מבצעים את השלבים הבאים:

  1. במסוף Google Cloud , בוחרים את הפרויקט שמכיל את המופע של חנות אונליין.

  2. כדי ליצור נקודת קצה ל-Private Service Connect, צריך לציין את SERVICE_ATTACHMENT_STRING כשירות היעד. במאמר יצירת נקודת קצה מוסבר איך ליצור נקודת קצה ל-Private Service Connect.

אחרי שיוצרים את נקודת הקצה, היא מופיעה בכרטיסייה Connected endpoints בדף Private Service Connect. כתובת ה-IP של נקודת הקצה מופיעה בעמודה IP addresses.

מעבר לכרטיסייה Connected endpoints

בשלב הבא תצטרכו להשתמש בכתובת ה-IP הזו כדי להתחבר לנקודת הקצה של מופע החנות האונליין שלכם לנקודת הקצה של Private Service Connect באמצעות gRPC.

התחברות לנקודת הקצה של Private Service Connect דרך gRPC

אפשר להשתמש בדוגמת הקוד הבאה כדי להתחבר לנקודת הקצה (endpoint) של Private Service Connect שנוצרה לחנות שלכם אונליין באמצעות gRPC.

Python

from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.services.feature_online_store_service.transports.grpc import FeatureOnlineStoreServiceGrpcTransport
import grpc

data_client = FeatureOnlineStoreServiceClient(
  transport = FeatureOnlineStoreServiceGrpcTransport(
    # Add the IP address of the Endpoint you just created.
    channel = grpc.insecure_channel("ENDPOINT_IP:10002")
  )
)

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

  • ‫ENDPOINT_IP: כתובת ה-IP של נקודת הקצה בעמודה כתובות IP בדף Private Service Connect.

שליפת ערכי תכונות ממזהה ישות

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

Python

data_client.fetch_feature_values(
  request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
  feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
  data_key=feature_online_store_service_pb2.FeatureViewDataKey(ENTITY_ID),
  data_format=feature_online_store_service_pb2.FeatureViewDataFormat.PROTO_STRUCT,
  )
)

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

  • ‫LOCATION_ID: האזור שבו נמצאת חנות האונליין, למשל us-central1.

  • ‫PROJECT_ID: מזהה הפרויקט.

  • ‫FEATUREONLINESTORE_NAME: השם של החנות אונליין שמכילה את תצוגת התכונות.

  • ‫FEATUREVIEW_NAME: השם של תצוגת התכונות שממנה רוצים להציג ערכי תכונות.

  • ‫ENTITY_ID: הערך של עמודת המזהה ברשומה של התכונה שממנה רוצים להציג את הערכים האחרונים של התכונה.

  • ‫FORMAT: אופציונלי: הפורמט שבו רוצים לאחזר את ערכי התכונות. הפורמטים הנתמכים כוללים צמד מפתח-ערך ב-JSON ופורמטים של פרוטו Struct. שימו לב: פורמט הפרוטו Struct לא תומך בסוג הערך של התכונה bytes. אם רוצים לאחזר ערכי תכונות בפורמט של בייטים, צריך להשתמש ב-JSON כפורמט התגובה.

המאמרים הבאים