אימון מודל מותאם אישית של הצעות ידע

‫Agent Assist מספק שתי אפשרויות של מודלים להצעת ידע: מודל בסיסי (ברירת מחדל) ומודל מותאם אישית. במדריך הזה מוסבר איך לאמן מודל בהתאמה אישית באמצעות מערך נתונים, ואז לפרוס את המודל ולבדוק את הביצועים שלו.

סקירה כללית

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

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

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

  1. מפעילים את Dialog Flow API בפרויקטGoogle Cloud .

יצירת מאגר ידע ואימון של מודל בהתאמה אישית

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

השלבים הבאים מתארים את הפעולות האלה באמצעות קריאות ישירות ל-API, תוך שימוש בתכונה 'הצעות למאמרים' כדוגמה. אם אתם מעדיפים, אתם יכולים ליצור מאגר מידע ומסמכים באמצעות מסוף Agent Assist.

יצירת מאגר ידע

לפני שמתחילים להעלות מסמכים, צריך ליצור מאגר ידע שאליו יועלו המסמכים. כדי ליצור מאגר ידע, צריך לבצע קריאה ל-method‏ create בסוג KnowledgeBase.

REST

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

  • PROJECT_ID: מזהה הפרויקט ב-GCP
  • KNOWLEDGE_BASE_DISPLAY_NAME: השם הרצוי של מאגר הידע

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

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/knowledgeBases

תוכן בקשת JSON:

{
  "displayName": "KNOWLEDGE_BASE_DISPLAY_NAME"
}

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

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

{
  "name": "projects/PROJECT_ID/knowledgeBases/NDA4MTM4NzE2MjMwNDUxMjAwMA",
  "displayName": "KNOWLEDGE_BASE_DISPLAY_NAME"
}

פלח הנתיב אחרי knowledgeBases מכיל את המזהה החדש של מאגר הידע.

Python

כדי לבצע אימות ב-Agent Assist, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

def create_knowledge_base(project_id, display_name):
    """Creates a Knowledge base.

    Args:
        project_id: The GCP project linked with the agent.
        display_name: The display name of the Knowledge base."""
    from google.cloud import dialogflow_v2beta1 as dialogflow

    client = dialogflow.KnowledgeBasesClient()
    project_path = client.common_project_path(project_id)

    knowledge_base = dialogflow.KnowledgeBase(display_name=display_name)

    response = client.create_knowledge_base(
        parent=project_path, knowledge_base=knowledge_base
    )

    print("Knowledge Base created:\n")
    print("Display Name: {}\n".format(response.display_name))
    print("Name: {}\n".format(response.name))

יצירת מסמך ידע

עכשיו אפשר להוסיף מסמכים למאגר הידע. כדי ליצור מסמך במאגר הידע, מבצעים קריאה ל-method‏ create בסוג Document. מגדירים את KnowledgeType לערך ARTICLE_SUGGESTION. בדוגמה הזו נעשה שימוש בקובץ HTML עם פרטי הזמנה להחזרה שהועלה לקטגוריית Cloud Storage ששותפה עם הציבור. כשמגדירים את התכונה 'הצעות למאמרים' במערכת שלכם, המסמכים צריכים להיות באחד מהפורמטים הבאים. מידע נוסף על שיטות מומלצות ליצירת מסמכים זמין במאמרי העזרה בנושא מסמכי ידע.

פורמטים של מסמכי ידע:

  • קובץ שמאוחסן בקטגוריה של Cloud Storage. אפשר לציין את הנתיב כשמפעילים את ה-API.
  • תוכן הטקסט של מסמך, שאפשר לשלוח בבקשת API.
  • כתובת URL ציבורית.

REST

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

  • PROJECT_ID: מזהה הפרויקט ב-GCP
  • KNOWLEDGE_BASE_ID: מזהה מאגר הידע שהוחזר מהבקשה הקודמת
  • DOCUMENT_DISPLAY_NAME: השם הרצוי של מסמך הידע

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

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID/documents

תוכן בקשת JSON:

{
  "displayName": "DOCUMENT_DISPLAY_NAME",
  "mimeType": "text/html",
  "knowledgeTypes": "ARTICLE_SUGGESTION",
  "contentUri": "gs://agent-assist-public-examples/public_article_suggestion_example_returns.html"
}

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

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

{
  "name": "projects/PROJECT_ID/operations/ks-add_document-MzA5NTY2MTc5Mzg2Mzc5NDY4OA"
}

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

Python

כדי לבצע אימות ב-Agent Assist, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

def create_document(
    project_id, knowledge_base_id, display_name, mime_type, knowledge_type, content_uri
):
    """Creates a Document.

    Args:
        project_id: The GCP project linked with the agent.
        knowledge_base_id: Id of the Knowledge base.
        display_name: The display name of the Document.
        mime_type: The mime_type of the Document. e.g. text/csv, text/html,
            text/plain, text/pdf etc.
        knowledge_type: The Knowledge type of the Document. e.g. FAQ,
            EXTRACTIVE_QA.
        content_uri: Uri of the document, e.g. gs://path/mydoc.csv,
            http://mypage.com/faq.html."""
    from google.cloud import dialogflow_v2beta1 as dialogflow

    client = dialogflow.DocumentsClient()
    knowledge_base_path = dialogflow.KnowledgeBasesClient.knowledge_base_path(
        project_id, knowledge_base_id
    )

    document = dialogflow.Document(
        display_name=display_name, mime_type=mime_type, content_uri=content_uri
    )

    document.knowledge_types.append(
        getattr(dialogflow.Document.KnowledgeType, knowledge_type)
    )

    response = client.create_document(parent=knowledge_base_path, document=document)
    print("Waiting for results...")
    document = response.result(timeout=120)
    print("Created Document:")
    print(" - Display Name: {}".format(document.display_name))
    print(" - Knowledge ID: {}".format(document.name))
    print(" - MIME Type: {}".format(document.mime_type))
    print(" - Knowledge Types:")
    for knowledge_type in document.knowledge_types:
        print("    - {}".format(KNOWLEDGE_TYPES[knowledge_type]))
    print(" - Source: {}\n".format(document.content_uri))

יצירה ופריסה של מודל חדש בהתאמה אישית

  1. עוברים אל ממשק המשתמש של Agent Assist ולוחצים על אפשרות התפריט Models (מודלים) בשוליים הימניים של הדף.

  2. בתפריט Models (מודלים) מוצגים כל המודלים שלכם. כדי ליצור מודל חדש, לוחצים על הלחצן +יצירת מודל חדש בפינה השמאלית העליונה.

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

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

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

  5. המודל החדש יופיע עכשיו ברשימת המודלים בדף Models (מודלים). הסטטוס של המודל החדש יופיע כ-Pending (בהמתנה) ואז כ-Creating (במהלך יצירה) עד שהמודל יאומן. האימון נמשך יום או יותר, בהתאם למשאבי המחשוב שלכם. כדי לפרוס את המודל שאומן, לוחצים על הסמל שמורכב מ-3 נקודות אנכיות שמשויך למודל בקצה השמאלי של הדף, ואז לוחצים על Deploy (פריסה).

בדיקת מודל Knowledge Assist מותאם אישית באמצעות סימולטור Agent Assist

סימולטור Agent Assist מאפשר לכם לראות תצוגה מקדימה של ביצועי המודל לפני שאתם מטמיעים אותו. אפשר להשתמש בסימולטור עם כל תכונה של Agent Assist. בשלבים הבאים מוסבר איך לבדוק את מודל ה-Knowledge Assist המותאם אישית באמצעות הסימולטור.

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

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

  2. תוצג רשימה של פרופילי השיחות הקיימים. אם רוצים להשתמש בפרופיל קיים, אפשר לדלג לשלב 4 בהמשך. אחרת, יוצרים פרופיל שיחה חדש על ידי לחיצה על הלחצן +יצירת פרופיל חדש בצד שמאל של הדף.

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

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

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

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

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