ייבוא בסטרימינג

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

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

במאמר Vertex AI Feature Store (Legacy) שבקטע Quotas and limits מוסבר מהי חותמת הזמן הכי ישנה של ערך מאפיין שאפשר לייבא. אי אפשר לייבא ערכי מאפיינים שחותמות הזמן שלהם מציינות תאריכים או שעות עתידיים.

תרחיש שימוש לדוגמה

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

השימוש בצומת של אחסון אונליין

כתיבת ערכי מאפיינים לחנות וירטואלית משתמשת במשאבי ה-CPU של מאגר התכונות (צמתים של אחסון אונליין). עוקבים אחרי השימוש במעבד כדי לוודא שהביקוש לא עולה על ההיצע, כי זה עלול להוביל לשגיאות בהצגת המודעות. כדי להימנע מהשגיאות האלה, מומלץ להשתמש ב-70% מהנפח או פחות. אם אתם חורגים מהערך הזה באופן קבוע, אתם יכולים לעדכן את מאגר הפיצ'רים כדי להגדיל את מספר הצמתים או להשתמש בהתאמה אוטומטית לעומס. מידע נוסף זמין במאמר בנושא ניהול מאגרי תכונות.

ייבוא בסטרימינג

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

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

אפשר לייבא ערכי תכונות רק לישות אחת בכל פעולת כתיבה. בכל פרויקט ובכל אזור ספציפיים, אפשר לכתוב בו-זמנית ערכי מאפיינים של כמה ישויות, עד עשרה סוגים שונים של ישויות. המגבלה הזו כוללת בקשות לייבוא נתונים לכל מאגרי התכונות בפרויקט ובאזור נתונים מסוימים. אם חורגים מהמגבלה הזו, יכול להיות ש-Vertex AI Feature Store (Legacy) לא יכתוב את כל הנתונים למאגר הנתונים הלא מקוון. אם זה קורה, Vertex AI Feature Store (Legacy) מתעד את השגיאה ב-Logs Explorer. מידע נוסף זמין במאמר בנושא מעקב אחרי שגיאות בכתיבה לאחסון אופליין לצורך ייבוא בסטרימינג.

REST

כדי לייבא ערכי מאפיינים למאפיינים קיימים, שולחים בקשת POST באמצעות השיטה featurestores.entityTypes.writeFeatureValues. אם השמות של עמודות נתוני המקור ומזהי התכונות של היעד שונים, צריך לכלול את הפרמטר sourceField. שימו לב: באמצעות featurestores.entityTypes.writeFeatureValues אפשר לייבא ערכי תכונות רק לישות אחת בכל פעם.

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

  • ‫LOCATION: האזור שבו מאגר התכונות נוצר. לדוגמה, us-central1.
  • ‫PROJECT: מזהה הפרויקט.
  • ‫FEATURESTORE_ID: מזהה מאגר התכונות.
  • ‫ENTITY_TYPE_ID: מזהה סוג הישות.
  • ‫FEATURE_ID: מזהה של תכונה קיימת במאגר התכונות שרוצים לכתוב לה ערכים.
  • ‫VALUE_TYPE: סוג הערך של התכונה.
  • ‫VALUE: הערך של התכונה.
  • ‫TIME_STAMP (אופציונלי): השעה שבה התכונה נוצרה. חותמת הזמן צריכה להיות בפורמט UTC של RFC3339.

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

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues

גוף בקשת JSON:

{
  "payloads": [
    {
      "entityId": "ENTITY_ID",
      "featureValues": {
        "FEATURE_ID": {
          "VALUE_TYPE": VALUE,
          "metadata": {"generate_time": "TIME_STAMP"}
        }
      }
    }
  ]
}

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

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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues"

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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues" | Select-Object -Expand Content

אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.

Python

במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.

from google.cloud import aiplatform


def write_feature_values_sample(
    project: str, location: str, entity_type_id: str, featurestore_id: str
):

    aiplatform.init(project=project, location=location)

    my_entity_type = aiplatform.featurestore.EntityType(
        entity_type_name=entity_type_id, featurestore_id=featurestore_id
    )

    my_data = {
        "movie_01": {
            "title": "The Shawshank Redemption",
            "average_rating": 4.7,
            "genre": "Drama",
        },
    }

    my_entity_type.write_feature_values(instances=my_data)

שפות נוספות

אפשר להתקין את ספריות הלקוח הבאות של Vertex AI ולהשתמש בהן כדי לקרוא ל-Vertex AI API. ספריות לקוח ב-Cloud מספקות חוויית פיתוח אופטימלית באמצעות שימוש במוסכמות ובסגנונות הטבעיים של כל שפה נתמכת.

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