חלוקת תנועה (בדיקת A/B)

פיצול תנועת הגולשים מאפשר לכם לחלק את השיחות עם המשתמשים בין גרסאות שונות של אפליקציית הסוכן שלכם ב-CX Agent Studio, במסגרת ערוץ פריסה יחיד. אתם יכולים להשתמש בפיצול תנועה כדי לבצע בדיקות A/B או כדי לפרוס עדכונים בשלבים בצורה בטוחה, על ידי ניתוב אחוז מסוים של תנועה לכל גרסה.

במדריך הזה מוסבר איך להגדיר חלוקת התנועה באמצעות מסוף CX Agent Studio או CX Agent Studio API בארכיטקטורת REST, ואיך לנתח את ביצועי הגרסה באמצעות יומנים של BigQuery אחרי שהניסוי יקבל תעבורת נתונים של לקוחות פעילים.

סקירה כללית של תהליך העבודה

  1. יצירת גרסאות של האפליקציה: יצירת תמונות מצב בלתי משתנות (גרסאות) של אפליקציית הסוכן לצורך השוואה.
  2. הגדרת פיצול תעבורת נתונים בערוץ פריסה: הקצאת אחוזים של תעבורת נתונים למספר גרסאות של אפליקציה באמצעות המסוף או API בארכיטקטורת REST.
  3. ניתוח הביצועים ב-BigQuery: אחרי שהניסוי פועל ועיבד מספיק תנועת לקוחות, אפשר להריץ שאילתות ביומני השיחות המיוצאים ב-BigQuery כדי להעריך את המדדים בין הגרסאות.

הגדרת פיצול תנועת הגולשים

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

שימוש במסוף

כדי להגדיר פיצול תנועה במסוף ליצירת סוכנים:

  1. פותחים את מסוף CX Agent Studio ובוחרים את אפליקציית הסוכן.
  2. לוחצים על הכרטיסייה פריסה בחלק העליון של הדף.
  3. בוחרים ערוץ פריסה קיים או לוחצים על ערוץ חדש כדי ליצור ערוץ חדש (לדוגמה, גישת API).
  4. בקטע גרסת הסוכן, לוחצים על הוספת גרסה ובוחרים את גרסאות האפליקציה של הסוכן שרוצים לכלול בניסוי.
  5. מזינים את אחוז התנועה לכל גרסה (לדוגמה, 90% לגרסה א' ו-10% לגרסה ב'). מוודאים שסכום האחוזים הוא 100%.
  6. לוחצים על יצירת ערוץ כדי להחיל את ההגדרה.

שימוש ב-API בארכיטקטורת REST

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

לפני שמתקשרים אל ה-API, צריך לוודא שיש לכם את המזהים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • LOCATION_ID: האזור של אפליקציית הסוכן (לדוגמה, us-east1).
  • APP_ID: המזהה של אפליקציית הסוכן.
  • DEPLOYMENT_ID: המזהה של ערוץ הפריסה.
  • VERSION_A_UUID / VERSION_B_UUID: המזהים הייחודיים של גרסאות האפליקציה.

שולחים בקשת PATCH לעדכון הגדרות הפריסה:

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://ces.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/deployments/DEPLOYMENT_ID?updateMask=experimentConfig" \
  -d '{
    "experimentConfig": {
      "versionRelease": {
        "trafficAllocations": [
          {
            "appVersion": "projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/versions/VERSION_A_UUID",
            "trafficPercentage": 90
          },
          {
            "appVersion": "projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/versions/VERSION_B_UUID",
            "trafficPercentage": 10
          }
        ]
      }
    }
  }'

אימות הגדרות הפריסה

כדי לוודא שהקצאות התנועה פעילות:

שימוש במסוף

  1. פותחים את הדף Deploy במסוף של CX Agent Studio.
  2. מחפשים את הערוץ ברשימת הפריסות.
  3. בודקים שבעמודה Version מוצג הפיצול שהוגדר (לדוגמה, Version A (90%), Version B (10%)).

שימוש ב-API בארכיטקטורת REST

שולחים בקשת GET לאחזור פרטי משאב הפריסה:

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://ces.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/deployments/DEPLOYMENT_ID"

קובץ ה-JSON של התגובה כולל את experimentConfig הפעיל, שמאשר את אחוזי התנועה שהוקצו לכל גרסה ומציג את "state": "RUNNING" בתוך versionRelease.

ניתוח הביצועים של הגרסה ב-BigQuery

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

לפני שמנתחים יומנים, צריך לוודא שהפעלתם את BigQuery Export לאפליקציה. כדי לעשות זאת, עוברים במסוף CX Agent Studio אל Build (פיתוח) > Settings (הגדרות) > Advanced (מתקדם) ומפעילים את האפשרות Export logs to BigQuery (ייצוא יומנים ל-BigQuery). כשהייצוא מופעל, רשומות האינטראקציה – כולל app_version_id ספציפיות שמטופלות בכל תור – נרשמות במערך הנתונים שלכם ב-BigQuery.

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

  1. במסוף Google Cloud , עוברים אל BigQuery.
  2. מריצים את השאילתה לדוגמה מול טבלת יומני האינטראקציות, ומחליפים את פרטי הפרויקט ואת חלון ההערכה (START_TIME ו-END_TIME):

    SELECT
      app_version_id,
      tool_call.name AS tool_name,
      tool_call.output AS tool_result_message,
      COUNT(1) AS count
    FROM
      `PROJECT_ID.conversational_agents_logs.v1beta_logs`,
      UNNEST(json_payload.query_result.generations) AS generation,
      UNNEST(generation.tool_calls) AS tool_call
    WHERE
      json_payload.resource = 'projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID'
      AND timestamp >= TIMESTAMP('START_TIME_YYYY-MM-DD HH:MM:SS', 'TIMEZONE')
      AND timestamp <= TIMESTAMP('END_TIME_YYYY-MM-DD HH:MM:SS', 'TIMEZONE')
    GROUP BY
      app_version_id, tool_name, tool_result_message
    ORDER BY
      app_version_id, count DESC
    
  3. הערכת מדדים:

    • זיהוי גרסאות: מיפוי השורות בתוצאות ל-UUID של הגרסה הספציפית או להפעלות של הכלי (לדוגמה, השוואה בין תגובות מגרסה א' לגרסה ב').
    • חישוב שיעור ההצלחה: משווים בין היחס של התוצאות לבין השגיאות או התגובות המיושנות בשתי הגרסאות כדי להחליט אם לקדם את גרסת המועמד ל-100% מהתנועה.