פתרון בעיות בתכונות של Knowledge Assist

גישה למידע מפורט לגבי כשלים, התנהגות השימוש בתכונות וזמן טעינה גם עבור 'Knowledge Assist גנרטיבית' (GKA) וגם עבור 'Knowledge Assist גנרטיבית פרואקטיבית' (PGKA). כדי לראות את פרטי פתרון הבעיות האלה באובייקט knowledge_assist_debug_info, מפעילים את האפשרות enable_response_debug_info.

הגדרת פרופיל שיחה לפתרון בעיות

כדי לגשת למידע על פתרון בעיות ב-GKA וב-PGKA, צריך להפעיל את השדה enable_response_debug_info בפרופיל השיחה. אם השדה הזה מושבת, חיפוש מידע יציג לכם שגיאה NotFound כששאילתה לא מניבה תוצאות, ו-Knowledge Assist יציג לכם הודעה ריקה. מפעילים את האפשרות enable_response_debug_info כדי לקבל תשובה של OK עם פרטים על היעדר תוצאות. השינוי הזה משפיע על ה-API ועל שילובים קיימים.

Knowledge Assist גנרטיבי (GKA)

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

parent:"projects/PROJECT_ID/locations/LOCATION-ID"
conversation_profile {
  display_name: "DISPLAY-NAME"
  human_agent_assistant_config {
    human_agent_suggestion_config {
      feature_configs {
        suggestion_feature {
          type: KNOWLEDGE_SEARCH
        }
        query_config {
          dialogflow_query_source {
            human_agent_side_config {
              agent: "projects/PROJECT_ID/locations/LOCATION-NAME/agents/AGENT-ID"
            }
          }
        }
        enable_response_debug_info: true
      }
    }
  }
}

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

פתרון בעיות ב-PGKA גרסה 2

כשהאפשרות enable_response_debug_info field מופעלת, האובייקט KnowledgeAssistDebugInfo כולל כמה שדות חדשים שספציפיים ל-PGKA V2. כדי לגשת לזה, צריך להגדיר את baseline_model_version ואת enable_response_debug_info ל-2.0. הנה דוגמה להגדרה של גישה למידע על פתרון בעיות ב-PGKA V2:

  "name": "projects/PROJECT_ID/locations/LOCATION/conversationProfiles/PROFILE_ID",
  "human_agent_assistant_config": {
    "human_agent_suggestion_config": {
      "feature_configs": [
        {
          "suggestion_feature": {
            "type": "KNOWLEDGE_ASSIST"
          },
          "query_config": {
            "dialogflow_query_source": {
              "agent": "projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID"
            }
          },
          "conversation_model_config": {
            "baseline_model_version": "2.0"
          },
          "disable_query_search_context": true,
          "enable_response_debug_info": true,
            "suggestion_trigger_event": "END_OF_UTTERANCE",
        }
      ]
    }
  }

פרטים על פתרון בעיות

האובייקט search_knowledge_debug_info מכיל כמה פרטי מפתח שיעזרו לכם לפתור בעיות ולהבין את תהליך החיפוש ב-GKA.

החיפוש נכשל או שהתשובה לא מועילה

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

הערכים האפשריים כוללים:

  • NONE: הבקשה עובדה ללא בעיות ספציפיות לדיווח.
  • SEARCH_OUT_OF_QUOTA: פעולת החיפוש נחסמה בגלל חריגה ממכסת השימוש.
  • SEARCH_EMPTY_RESULTS: החיפוש לא החזיר מסמכים ממאגר הנתונים.
  • ANSWER_GENERATION_GEN_AI_DISABLED: התכונות מבוססות-AI גנרטיבי מושבתות בפרויקט.
  • ANSWER_GENERATION_OUT_OF_QUOTA: יצירת התשובה נחסמה בגלל חריגה ממכסת השימוש.
  • ANSWER_GENERATION_ERROR: אירעה שגיאה פנימית במהלך יצירת התשובה.
  • ANSWER_GENERATION_NOT_ENOUGH_INFO: המסמכים שאוחזרו לא הכילו מספיק מידע כדי ליצור תשובה.
  • ANSWER_GENERATION_RAI_FAILED: התשובה שנוצרה נחסמה על ידי מסננים של אתיקה של בינה מלאכותית (RAI).
  • ANSWER_GENERATION_NOT_GROUNDED: בשלב האימות של ההצמדה לקרקע נקבע שהתשובה שנוצרה לא נתמכת עובדתית על ידי מסמכי המקור, ולכן היא נפסלה.

התנהגויות פעילות

אובייקט search_knowledge_behavior מציין אילו התנהגויות ספציפיות היו פעילות במהלך הבקשה ל-GKA.

  • answer_generation_rewriter_on: ערך של true מציין שהמערכת כתבה מחדש את השאילתה של המשתמש כדי שהחיפוש במאגר הנתונים יהיה יעיל יותר. ערך של false מציין שהגנרטור לא כתב מחדש את השאילתה.
  • end_user_metadata_included: ערך של true מציין שend_user_metadata הועבר בקריאה לסוכן של מאגר הנתונים. ערך של false מציין ש-end_user_metadata לא הועבר לסוכן של מאגר הנתונים.

מידע לפתרון בעיות מההקשר שנבלע

בשדה ingested_context_reference_debug_info מופיע מידע לפתרון בעיות שקשורות להקשר שנקלט כדי לעזור בחיפוש.

  • project_not_allowlisted: ערך true מציין שהפרויקט לא נמצא ברשימת ההיתרים לשימוש בתכונה של הפניה להקשר שנטען. ערך של false מציין שהפרויקט נמצא ברשימת ההיתרים.
  • context_reference_retrieved: מציין אם ההפניה להקשר אוחזרה בהצלחה ממסד הנתונים.
  • ingested_parameters_debug_info: רשימה של פרמטרים שנקלטים מההפניה להקשר והסטטוס שלהם. לכל פרמטר מוצג שם הפרמטר ואחד מסטטוסי ההעברה הבאים.
    • INGESTION_STATUS_SUCCEEDED: הפרמטר נקלט בהצלחה.
    • INGESTION_STATUS_CONTEXT_NOT_AVAILABLE: הפרמטר לא היה זמין להעברה.
    • INGESTION_STATUS_PARSE_FAILED: המערכת לא הצליחה לנתח את התוכן של הפרמטר.
    • INGESTION_STATUS_INVALID_ENTRY: להפניה להקשר היה מספר לא צפוי של רשומות תוכן (צריכה להיות רק אחת).
    • INGESTION_STATUS_INVALID_FORMAT: תוכן ההקשר לא היה בפורמט הצפוי (למשל, JSON).
    • INGESTION_STATUS_LANGUAGE_MISMATCH: השפה של ההפניה להקשר לא תואמת לשפת השיחה.

זמן אחזור

  • אובייקט service_latency מפרט את הזמן שחלף בשירותים פנימיים שונים, ועוזר לכם לזהות צווארי בקבוק בביצועים.

  • internal_service_latencies: רשימה שמכילה פרטים על זמן האחזור של כל שלב פנימי בתהליך. כל רשומה כוללת שם (step), משך הזמן במילישניות (latency_ms) ושעת ההתחלה (start_time) ושעת הסיום (complete_time). אלה השמות האפשריים של שלב בתהליך פנימי:

    • total_data_store_agent: מדד שבודק את משך הזמן הכולל שנדרש לעיבוד הבקשה כולה של GKA, מרגע קבלת השאילתה ועד להחזרת תשובה סופית. הוא משמש כטיימר כללי לכל שלבי החיפוש במאגר הנתונים של הסוכנים.
    • query_rewrite: הזמן שנדרש כדי לשכתב את השאילתה הראשונית של המשתמש כדי שהחיפוש במסמכי הידע יהיה יעיל יותר.
    • search_query: הזמן שלקח לסוכן של מאגר הנתונים לבצע את החיפוש במאגרי הנתונים שהגדרתם, באמצעות השאילתה (שעשויה להיכתב מחדש).
    • summarization: הזמן שנדרש ליצירת תשובה תמציתית בשפה טבעית מתוצאות החיפוש שאוחזרו מ-Datastore (שלב ReAct).
    • grounding: הזמן שחלף בתהליך האימות של ההארקה. בשלב הזה, שחשוב מאוד, המערכת בודקת אם התשובה שנוצרה נתמכת עובדתית על ידי מסמכי המקור לפני שהיא מוחזרת.
    • query_generation: הזמן שמושקע בניתוח השיחה המתמשכת וביצירה יזומה של שאילתת חיפוש רלוונטית.
    • generated_query_rai: הזמן שלוקח לבצע בדיקת בטיחות של אתיקה של בינה מלאכותית (RAI) בשאילתה שנוצרה באופן יזום לפני שהיא משמשת לחיפוש.
    • query_categorization: הזמן שחלף עד לסיווג השאילתה שנוצרה באמצעות חיפוש מבוסס סוכנים, אם התכונה הזו מוגדרת.

דוגמה לתגובה עם מידע לפתרון בעיות

בדוגמה המקיפה הבאה אפשר לראות איך אובייקט search_knowledge_debug_info עשוי להיראות בתגובת JSON.

{
  "search_knowledge_debug_info": {
    "datastore_response_reason": "ANSWER_GENERATION_NOT_ENOUGH_INFO",
    "search_knowledge_behavior": {
      "answer_generation_rewriter_on": true,
      "end_user_metadata_included": true
    },
    "ingested_context_reference_debug_info": {
      "project_not_allowlisted": false,
      "context_reference_retrieved": true,
      "ingested_parameters_debug_info": [
        {
          "parameter": "order_id",
          "ingestion_status": "INGESTION_STATUS_SUCCEEDED"
        },
        {
          "parameter": "user_profile",
          "ingestion_status": "INGESTION_STATUS_INVALID_FORMAT"
        },
        {
          "parameter": "product_sku",
          "ingestion_status": "INGESTION_STATUS_CONTEXT_NOT_AVAILABLE"
        }
      ]
    },
    "service_latency": {
      "internal_service_latencies": [
        {
          "step": "total_data_store_agent",
          "latency_ms": 4125.781,
          "start_time": {
            "seconds": 1750969252,
            "nanos": 550649603
          },
          "complete_time": {
            "seconds": 1750969256,
            "nanos": 676430603
          }
        },
        {
          "step": "query_rewrite",
          "latency_ms": 412.0,
          "start_time": {
            "seconds": 1750969252,
            "nanos": 780119421
          },
          "complete_time": {
            "seconds": 1750969253,
            "nanos": 192119421
          }
        },
        {
          "step": "search_query",
          "latency_ms": 950.0,
          "start_time": {
            "seconds": 1750969253,
            "nanos": 192119421
          },
          "complete_time": {
            "seconds": 1750969254,
            "nanos": 142119421
          }
        },
        {
          "step": "summarization",
          "latency_ms": 721.0,
          "start_time": {
            "seconds": 1750969254,
            "nanos": 142119421
          },
          "complete_time": {
            "seconds": 1750969254,
            "nanos": 863119421
          }
        },
        {
            "step": "grounding",
            "latency_ms": 155.0,
            "start_time": {
              "seconds": 1750969254,
              "nanos": 863119421
            },
            "complete_time": {
              "seconds": 1750969255,
              "nanos": 18119421
            }
        }
      ]
    }
  }
}

עזרה פרואקטיבית באמצעות ידע גנרטיבי (PGKA)

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

כשיוצרים או מעדכנים פרופיל שיחה, מגדירים את enable_response_debug_info השדה ל-true עבור התכונה KNOWLEDGE_ASSIST, באופן הבא.

parent: "projects/PROJECT_ID/locations/LOCATION-ID"
conversation_profile {
  display_name: "DISPLAY-NAME"
  human_agent_assistant_config {
    human_agent_suggestion_config {
      feature_configs {
        suggestion_feature {
          type: KNOWLEDGE_ASSIST
        }
        query_config {
          dialogflow_query_source {
            agent: "projects/PROJECT_ID/locations/LOCATION-ID/agents/DATASTORE-AGENT-ID"
          }
        }
        enable_response_debug_info: true
      }
    }
  }
}

פרטים על פתרון בעיות

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

יצירת השאילתה נכשלה

בשדה query_generation_failure_reason מוסבר למה יכול להיות שלא נוצרה שאילתת חיפוש יזומה בשיחה.

  • QUERY_GENERATION_FAILED: אירעה שגיאה פנימית במהלך יצירת השאילתה.
  • QUERY_GENERATION_NO_QUERY_GENERATED: הגנרטור החליט לא ליצור שאילתה. בדרך כלל זה קורה אם נושא השיחה לא השתנה או אם הוצעה לאחרונה שאילתה דומה.
  • QUERY_GENERATION_RAI_FAILED: מסנני אתיקה של בינה מלאכותית (RAI) חסמו שאילתה פוטנציאלית מטעמי בטיחות.
  • NOT_IN_ALLOWLIST: כללי סינון בפרופיל השיחה או ברמת הסוכן חסמו את יצירת השאילתה.
  • QUERY_GENERATION_QUERY_REDACTED: הגנרטור חסם את השאילתה שנוצרה כי היא הכילה מידע רגיש שצונזר.
  • QUERY_GENERATION_AGENT_LANGUAGE_MISMATCH: יצירת השאילתה נכשלה כי השפה של הסוכן לא תואמת לשפה של הלקוח.
  • QUERY_GENERATION_TRANSLATION_LANGUAGE_MISMATCH: יצירת השאילתה נכשלה כי השפה של ההודעה המתורגמת לא תואמת לשפה של פרופיל השיחה.
  • QUERY_GENERATION_TRANSLATED_MESSAGE_NOT_FOUND: הגנרטור ציפה להודעה מתורגמת ליצירת שאילתה, אבל לא מצא כזו.
  • QUERY_GENERATION_EMPTY_CONVERSATION: אין הודעות בשיחה. האפשרות הזו זמינה רק ב-PGKA V2.
  • QUERY_GENERATION_EMPTY_LAST_MESSAGE: ההודעה האחרונה הייתה ריקה או כללה רווחים לבנים. האפשרות הזו זמינה רק ב-PGKA V2.
  • QUERY_GENERATION_TRIGGERING_EVENT_CONDITION_NOT_MET: הגדרת אירוע הטריגר (למשל, AGENT_MESSAGE) לא תאמה לתפקיד של השולח האחרון של ההודעה. האפשרות הזו זמינה רק ב-PGKA V2.
  • QUERY_GENERATION_LLM_RESPONSE_PARSE_FAILED: המערכת לא הצליחה לנתח את פלט ה-JSON המובנה מהמודל. האפשרות הזו זמינה רק ב-PGKA V2.

סיווג השאילתה נכשל

בשדה query_categorization_failure_reason מוסבר למה יכול להיות שסיווג השאילתה נכשל.

  • QUERY_CATEGORIZATION_INVALID_CONFIG: ההגדרה של חיפוש מבוסס סוכנים שסופקה לצורך סיווג לא תקינה, למשל מנוע החיפוש ריק.
  • QUERY_CATEGORIZATION_RESULT_NOT_FOUND: התוצאה מחיפוש מבוסס סוכנים לא כללה תוצאת סיווג.
  • QUERY_CATEGORIZATION_FAILED: הקריאה לחיפוש סוכנים לצורך סיווג נכשלה.

סטטוס החיפוש ב-Datastore

השדה datastore_response_reason מספק את סטטוס החיפוש מול מאגר הנתונים אחרי יצירת שאילתה.

  • NONE: מערכת Datastore עיבדה את הבקשה בלי בעיות ספציפיות לדיווח.
  • SEARCH_OUT_OF_QUOTA: Agent Assist חסם את פעולת החיפוש בגלל חריגה ממכסת השימוש.
  • SEARCH_EMPTY_RESULTS: החיפוש לא החזיר מסמכים ממאגר הנתונים.
  • ANSWER_GENERATION_GEN_AI_DISABLED: התכונות מבוססות-AI גנרטיבי מושבתות בפרויקט.
  • ANSWER_GENERATION_OUT_OF_QUOTA: Agent Assist חסם יצירת תשובות בגלל חריגה ממכסת השימוש.
  • ANSWER_GENERATION_ERROR: אירעה שגיאה פנימית במהלך יצירת התשובה.
  • ANSWER_GENERATION_NOT_ENOUGH_INFO: המסמכים שאוחזרו לא הכילו מספיק מידע כדי ליצור תשובה.
  • ANSWER_GENERATION_RAI_FAILED: מסנני ה-RAI חסמו את התשובה שנוצרה.
  • ANSWER_GENERATION_NOT_GROUNDED: בשלב האימות של ההצמדה לקרקע נקבע שהמסמכים לא תומכים עובדתית בתשובה שנוצרה, ולכן התשובה נפסלה.

הגדרות פעילות

אובייקט knowledge_assist_behavior מציין אילו הגדרות ספציפיות היו פעילות בבקשה.

  • answer_generation_rewriter_on: true אם הגנרטור כתב מחדש את השאילתה כדי לשפר את תוצאות החיפוש, ו-false אם לא.
  • end_user_metadata_included: true אם הגנרטור העביר את end_user_metadata אל Datastore ו-false אם הוא לא העביר.
  • return_query_only: true אם הפרופיל מוגדר להחזיר רק את שאילתת החיפוש שנוצרה, ו-false אם הפרופיל מחזיר את התשובה המלאה.
  • use_pubsub_delivery: true אם הגנרטור מוגדר להעברת תוצאות באמצעות Pub/Sub ו-false אם לא.
  • disable_sync_delivery: true אם השבתתם את המסירה הסינכרונית של התגובה ו-false אם הפעלתם את המסירה הסינכרונית של התגובה.
  • previous_queries_included: true אם הגנרטור לקח בחשבון שאילתות שהוצעו קודם במהלך תהליך יצירת השאילתה, ו-false אם לא.
  • use_translated_message: true אם נעשה שימוש בהודעה מתורגמת ליצירת שאילתה, ו-false אם לא.
  • use_custom_safety_filter_level: true אם הוחלה רמה מותאמת אישית של מסנן בטיחות. false אם הגנרטור השתמש רק ברמות ברירת המחדל של מסנן הבטיחות.
  • multiple_queries_generated: ערך של true מציין שהמודל הפיק יותר משאילתה אחת. האפשרות הזו זמינה ב-PGKA V2.
  • query_contained_search_context: ערך של true מציין שהשאילתה שנוצרה כללה הקשר חיפוש. האפשרות הזו זמינה ב-PGKA V2.
  • appended_search_context_count: מציין את מספר פריטי ההקשר (למשל, 'מוצר', 'מערכת הפעלה') שהשימוש בהם בחיפוש הצליח. האפשרות הזו זמינה ב-PGKA V2.

מידע מהקשר שהוזן

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

  • project_not_allowlisted: ערך true מציין שהפרויקט לא נמצא ברשימת ההיתרים לשימוש בתכונה של הפניה להקשר שנטען. ערך של false מציין שהפרויקט נמצא ברשימת ההיתרים.
  • context_reference_retrieved: מציין אם ההפניה להקשר אוחזרה בהצלחה ממסד הנתונים.
  • ingested_parameters_debug_info: רשימה של פרמטרים שנקלטים מההפניה להקשר והסטטוס שלהם. לכל פרמטר מוצג שם הפרמטר ואחד מסטטוסי ההטמעה האפשריים הבאים.
    • INGESTION_STATUS_SUCCEEDED: הפרמטר נקלט בהצלחה.
    • INGESTION_STATUS_CONTEXT_NOT_AVAILABLE: הפרמטר לא היה זמין להעברה.
    • INGESTION_STATUS_PARSE_FAILED: המערכת לא הצליחה לנתח את התוכן של הפרמטר.
    • INGESTION_STATUS_INVALID_ENTRY: להפניה להקשר היה מספר לא צפוי של רשומות תוכן (צריכה להיות רק אחת).
    • INGESTION_STATUS_INVALID_FORMAT: תוכן ההקשר לא היה בפורמט הצפוי.
    • INGESTION_STATUS_LANGUAGE_MISMATCH: השפה של ההפניה להקשר לא תואמת לשפת השיחה.

דוגמה לתגובה לפתרון בעיות ב-PGKA V1

בדוגמה המקיפה הבאה אפשר לראות איך אובייקט knowledge_assist_debug_info עשוי להיראות בתגובה.

{
  "knowledge_assist_debug_info": {
    "query_generation_failure_reason": "QUERY_GENERATION_NO_QUERY_GENERATED",
    "query_categorization_failure_reason": "QUERY_CATEGORIZATION_FAILURE_REASON_UNSPECIFIED",
    "datastore_response_reason": "SEARCH_EMPTY_RESULTS",
    "knowledge_assist_behavior": {
      "answer_generation_rewriter_on": true,
      "end_user_metadata_included": false,
      "return_query_only": false,
      "use_pubsub_delivery": true,
      "disable_sync_delivery": true,
      "previous_queries_included": true,
      "use_translated_message": false,
      "use_custom_safety_filter_level": false
    },
    "ingested_context_reference_debug_info": {
      "project_not_allowlisted": false,
      "context_reference_retrieved": true,
      "ingested_parameters_debug_info": [
        {
          "parameter": "session_id",
          "ingestion_status": "INGESTION_STATUS_SUCCEEDED"
        }
      ]
    },
    "service_latency": {
      "internal_service_latencies": [
        {
          "step": "query_generation",
          "latency_ms": 680.5,
          "start_time": {
            "seconds": 1753123456,
            "nanos": 110220330
          },
          "complete_time": {
            "seconds": 1753123456,
            "nanos": 790720330
          }
        },
        {
          "step": "search_query",
          "latency_ms": 1050.1,
          "start_time": {
            "seconds": 1753123456,
            "nanos": 790720330
          },
          "complete_time": {
            "seconds": 1753123457,
            "nanos": 840820330
          }
        }
      ]
    }
  }
}

דוגמה לתשובה לפתרון בעיות ב-PGKA V2

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

דוגמה 1: הצעה מוצלחת עם דגלים של התנהגות

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

  • multiple_queries_generated: מציין שהמודל הפיק יותר מנושא רלוונטי אחד.
  • query_contained_search_context: מאשר שהשאילתה הראשית הועשרה בנתונים מובְנים.
  • appended_search_context_count: המספר המדויק של צמדי מפתח/ערך (למשל, שם האפליקציה, מערכת ההפעלה) ששימשו לחידוד החיפוש.
{
  "message": {
    "name": "projects/PROJECT_ID/locations/LOCATION/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "content": "My DesignApp is crashing on Mac. Also, how do I resolve the storage limit error?",
    "participant_role": "END_USER"
  },
  "human_agent_suggestion_results": [
    {
      "suggest_knowledge_assist_response": {
        "knowledge_assist_answer": {
          "suggested_query": {
            "query_text": "Troubleshoot application crashing",
            "search_contexts": [
              { "key": "application name", "value": "DesignApp" },
              { "key": "operating system", "value": "Mac" }
            ]
          },
          "suggested_query_answer": {
            "answer_text": "To troubleshoot the crash on Mac, ensure..."
          },
          "answer_record": "projects/PROJECT_ID/locations/LOCATION/answerRecords/ANSWER_RECORD_ID",
          "knowledge_assist_debug_info": {
            "knowledge_assist_behavior": {
              "multiple_queries_generated": true,
              "query_contained_search_context": true,
              "appended_search_context_count": 2
            }
          }
        },
        "latest_message": "projects/PROJECT_ID/locations/LOCATION/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
        "context_size": 20,
        "additional_suggested_query_results": [
          {
            "suggested_query": {
              "query_text": "Resolve storage limit exceeded error",
              "search_contexts": [
                { "key": "storage plan", "value": "1TB" }
              ]
            }
          }
        ]
      }
    }
  ]
}

דוגמה 2: הצעה שדילגתם עליה עם סיבת הכישלון

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

{
  "message": {
    "name": "projects/PROJECT_ID/locations/LOCATION/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "content": "I am having trouble with my account.",
    "participant_role": "END_USER"
  },
  "human_agent_suggestion_results": [
    {
      "suggest_knowledge_assist_response": {
        "knowledge_assist_answer": {
          "knowledge_assist_debug_info": {
            "query_generation_failure_reason": "QUERY_GENERATION_TRIGGERING_EVENT_CONDITION_NOT_MET"
          }
        },
        "latest_message": "projects/PROJECT_ID/locations/LOCATION/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
        "context_size": 20
      }
    }
  ]
}

סיבות נפוצות נוספות לכישלון:

  • QUERY_GENERATION_EMPTY_CONVERSATION: לא נמצאו הודעות בשיחה.
  • QUERY_GENERATION_EMPTY_LAST_MESSAGE: ההודעה האחרונה הייתה ריקה או כללה רק רווחים.
  • QUERY_GENERATION_LLM_RESPONSE_PARSE_FAILED: המערכת לא הצליחה לנתח את הפלט המובנה מ-LLM.