הבנת משאבים לבניית מודל הבנת שפה דיבורית

הושלם

כדי להשתמש בשירות Language Understanding כדי לפתח פתרון NLP, יהיה עליך ליצור משאב שפה ב- Azure. משאב זה ישמש הן לעריכה של המודל שלך והן לעיבוד בקשות חיזוי מיישומי לקוח.

תשר

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

בניית הדגם שלך

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

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

  1. חפש שירותי בינה מלאכותית של Azure.
  2. חפש ובחר שירות שפה.
  3. בחר צור תחת שירות השפה.
  4. מלא את הפרטים הדרושים, בחירת האזור הקרוב ביותר אליך מבחינה גיאוגרפית (לקבלת ביצועים מיטביים) ותן לו שם ייחודי.

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

השתמש ב- Language Studio

לקבלת שיטה חזותית יותר לבנייה, הדרכה ופריסה של המודל שלך, באפשרותך להשתמש ב- Language Studio כדי להשיג כל אחד מפעולות אלה. בדף הראשי, באפשרותך לבחור ליצור פרוייקט להבנת שפה דיבורית . לאחר יצירת הפרוייקט, בצע את אותו תהליך כמו לעיל כדי לבנות, לתרגל ולפרוס את המודל שלך.

צילום מסך של דף הבית של Language Studio.

המעבדה במודול זה תנחה אותך להשתמש ב- Language Studio כדי לבנות את הדגם שלך. אם ברצונך לקבל מידע נוסף, ראה התחלה מהירה של Language Studio

שימוש ב- REST API

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

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

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

אימות

עבור כל שיחה למשאב Azure AI Language, עליך לאמת את הבקשה על-ידי מתן הכותרת הבאה.

מפתח ערך
Ocp-Apim-Subscription-Key המפתח למשאב שלך

פריסת בקשה

שלח בקשת POST אל נקודת הקצה הבאה.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
מציין מיקום ערך דוגמה
{ENDPOINT} נקודת הקצה של משאב שפת הבינה המלאכותית של Azure https://<your-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} השם עבור הפרוייקט שלך. ערך זה תלוי רישיות myProject
{DEPLOYMENT-NAME} השם עבור הפריסה שלך. ערך זה תלוי רישיות staging
{API-VERSION} גירסת ה- API שאתה מתקשר אליו 2022-05-01

כלול את הפריטים הבאים body בבקשה שלך.

{
  "trainedModelLabel": "{MODEL-NAME}",
}
מציין מיקום ערך
{MODEL-NAME} שם המודל שיוקצו לפריסה שלך. ערך זה תלוי רישיות.

שליחת הבקשה שלך הצליחה תקבל תגובה 202 , עם כותרת תגובה של operation-location. כותרת זו תכלול כתובת URL שבה יש לבקש את המצב, המעוצב כך:

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

קבל מצב פריסה

שלח בקשת GET אל כתובת ה- URL מכותרת התגובה לעיל. הערכים ימולאו כבר בהתבסס על בקשת הפריסה הראשונית.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
מציין מיקום ערך
{ENDPOINT} נקודת הקצה לאימות בקשת ה- API שלך
{PROJECT-NAME} שם הפרוייקט (תלוי רישיות)
{DEPLOYMENT-NAME} שם הפריסה (תלוי רישיות)
{JOB-ID} המזהה של איתור מצב ההדרכה של המודל שלך, שנמצא בערך הכותרת המפורט לעיל בבקשה לפריסה
{API-VERSION} גירסת ה- API שאתה מתקשר אליו

גוף התגובה יספק את פרטי מצב הפריסה. הערך status של השדה יצליח כאשר הפריסה תושלם.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"String",
    "lastUpdatedDateTime":"String",
    "expirationDateTime":"String",
    "status":"running"
}

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

ביצוע שאילתה במודל שלך

כדי לבצע שאילתה במודל שלך לחיזוי, באפשרותך להשתמש בערכת SDK ב- C# או ב- Python, או להשתמש ב- REST API.

שאילתה המשתמשת ב- SDK

כדי לבצע שאילתה במודל באמצעות SDK, תחילה עליך ליצור את הלקוח שלך. לאחר שהלקוח נמצא ברשותך, השתמש בו כדי להתקשר אל נקודת הקצה המתאימה.

var languageClient = new TextAnalyticsClient(endpoint, credentials);
var response = languageClient.ExtractKeyPhrases(document);
language_client = TextAnalyticsClient(
            endpoint=endpoint, 
            credential=credentials)
response = language_client.extract_key_phrases(documents = documents)[0]

תכונות שפה אחרות, כגון הבנת שפה דיבורית, דורשות את ההבנה והשליחה של הבקשה באופן שונה.

var data = new
{
    analysisInput = new
    {
        conversationItem = new
        {
            text = userText,
            id = "1",
            participantId = "1",
        }
    },
    parameters = new
    {
        projectName,
        deploymentName,
        // Use Utf16CodeUnit for strings in .NET.
        stringIndexType = "Utf16CodeUnit",
    },
    kind = "Conversation",
};
Response response = await client.AnalyzeConversationAsync(RequestContent.Create(data));
result = client.analyze_conversation(
    task={
        "kind": "Conversation",
        "analysisInput": {
            "conversationItem": {
                "participantId": "1",
                "id": "1",
                "modality": "text",
                "language": "en",
                "text": query
            },
            "isLoggingEnabled": False
        },
        "parameters": {
            "projectName": cls_project,
            "deploymentName": deployment_slot,
            "verbose": True
        }
    }
)

ביצוע שאילתה באמצעות REST API

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

תשר

זכור שיש לאמת כל בקשה באמצעות מפתח המשאבים של שפת הבינה המלאכותית של Azure בכותרת Ocp-Apim-Subscription-Key העליונה

{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
מציין מיקום ערך
{ENDPOINT} נקודת הקצה לאימות בקשת ה- API שלך
{API-VERSION} גירסת ה- API שאתה מתקשר אליו

בגוף של בקשה זו, עליך kind לציין את הפרמטר, אשר מורה לשירות איזה סוג של שפה אתה מבקש.

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

{
    "kind": "LanguageDetection",
    "parameters": {
        "modelVersion": "latest"
    },
    "analysisInput":{
        "documents":[
            {
                "id":"1",
                "text": "This is a document written in English."
            }
        ]
    }
}

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

{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
מציין מיקום ערך
{ENDPOINT} נקודת הקצה לאימות בקשת ה- API שלך
{API-VERSION} גירסת ה- API שאתה מתקשר אליו

בקשה זו תכלול גוף JSON דומה לזה של הבקשה הבאה.

{
  "kind": "Conversation",
  "analysisInput": {
    "conversationItem": {
      "id": "1",
      "participantId": "1",
      "text": "Sample text"
    }
  },
  "parameters": {
    "projectName": "{PROJECT-NAME}",
    "deploymentName": "{DEPLOYMENT-NAME}",
    "stringIndexType": "TextElement_V8"
  }
}
מציין מיקום ערך
{PROJECT-NAME} שם הפרוייקט שבו בנית את המודל שלך
{DEPLOYMENT-NAME} שם הפריסה

תגובה לדוגמה

תגובת השאילתה מערכת SDK תוחזר באובייקט המוחזר, אשר משתנה בהתאם לתכונה (כגון in או response.key_phrasesresponse.Value). ממשק ה- REST API יחזיר JSON שיהיה דומה לממשק ה- API הבא.

{
    "kind": "KeyPhraseExtractionResults",
    "results": {
        "documents": [{
            "id": "1",
            "keyPhrases": ["modern medical office", "Dr. Smith", "great staff"],
            "warnings": []
        }],
        "errors": [],
        "modelVersion": "{VERSION}"
    }
}

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

{
  "kind": "ConversationResult",
  "result": {
    "query": "String",
    "prediction": {
      "topIntent": "intent1",
      "projectKind": "Conversation",
      "intents": [
        {
          "category": "intent1",
          "confidenceScore": 1
        },
        {
          "category": "intent2",
          "confidenceScore": 0
        }
      ],
      "entities": [
        {
          "category": "entity1",
          "text": "text",
          "offset": 7,
          "length": 4,
          "confidenceScore": 1
        }
      ]
    }
  }
}

קובצי ה- SDK של Python ו- C# מחזירים JSON דומה מאוד לתשובת REST.

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