Memahami sumber daya untuk membangun model pemahaman bahasa percakapan

Selesai

Untuk menggunakan layanan Luis Bahasa untuk mengembangkan solusi NLP, Anda harus membuat sumber daya Bahasa di Azure. Sumber daya tersebut akan digunakan untuk membuat model Anda dan memproses permintaan prediksi dari aplikasi klien.

Tip

Lab modul ini mencakup pembuatan model untuk pemahaman bahasa percakapan. Untuk modul yang lebih terfokus pada klasifikasi teks kustom dan pengenalan entitas bernama kustom, lihat modul solusi kustom di jalur pembelajaran Mengembangkan solusi bahasa alami.

Membangun model Anda

Untuk fitur yang memerlukan model untuk prediksi, Anda harus membangun, melatih, dan menyebarkan model tersebut sebelum menggunakannya untuk membuat prediksi. Bangunan dan pelatihan ini akan mengajarkan layanan Bahasa Azure AI apa yang harus dicari.

Pertama, Anda harus membuat sumber daya Bahasa Azure AI di portal Azure. lalu:

  1. Cari layanan Azure AI.
  2. Temukan dan pilih Layanan Bahasa.
  3. Pilih Buat di bawah Layanan Bahasa.
  4. Isi detail yang diperlukan, pilih wilayah yang paling dekat dengan Anda secara geografis (untuk performa terbaik) dan beri nama yang unik.

Setelah sumber daya tersebut dibuat, Anda memerlukan kunci dan titik akhir. Anda dapat menemukannya di sisi kiri di bawah Tombol dan Titik Akhir dari halaman ringkasan sumber daya.

Menggunakan Language Studio

Untuk metode pembangunan, pelatihan, dan penyebaran model yang lebih visual, Anda dapat menggunakan Language Studio untuk menyelesaikan setiap langkah ini. Di halaman utama, Anda dapat memilih untuk membuat proyek pemahaman bahasa Percakapan. Setelah proyek dibuat, lakukan proses yang sama seperti di atas untuk membangun, melatih, dan menyebarkan model Anda.

Screenshot of the Language Studio home page.

Lab dalam modul ini akan membahas penggunaan Language Studio untuk membuat model Anda. Jika Anda ingin mempelajari lebih lanjut, lihat panduan memulai Language Studio

Menggunakan REST API

Salah satu cara untuk membangun model Anda adalah melalui REST API. Polanya adalah membuat proyek Anda, mengimpor data, melatih, menyebarkan, lalu menggunakan model Anda.

Tugas-tugas ini dilakukan secara asinkron; Anda harus mengirimkan permintaan ke URI yang sesuai untuk setiap langkah, lalu mengirim permintaan lain untuk mendapatkan status pekerjaan tersebut.

Misalnya, jika ingin menyebarkan model untuk proyek pemahaman bahasa percakapan, Anda harus mengirimkan tugas penyebaran, lalu memeriksa status tugas penyebaran.

Autentikasi

Untuk setiap panggilan ke sumber daya Azure AI Language, Anda mengautentikasi permintaan dengan menyediakan header berikut.

Tombol Nilai
Ocp-Apim-Subscription-Key Kunci sumber daya Anda

Permintaan penyebaran

Kirim permintaan POST ke titik akhir berikut.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Placeholder Nilai Contoh
{ENDPOINT} Titik akhir sumber daya Bahasa Azure AI Anda https://<your-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nama untuk proyek Anda. Nilai ini peka huruf besar/kecil myProject
{DEPLOYMENT-NAME} Nama penyebaran Anda. Nilai ini peka huruf besar/kecil staging
{API-VERSION} Versi API yang Anda panggil 2022-05-01

Sertakan body berikut dengan permintaan Anda.

{
  "trainedModelLabel": "{MODEL-NAME}",
}
Placeholder Nilai
{MODEL-NAME} Nama model yang akan ditetapkan ke penyebaran Anda. Nilai ini peka huruf besar/kecil.

Jika berhasil mengirimkan permintaan, Anda akan menerima respons 202, dengan header respons operation-location. Header ini akan memiliki URL untuk meminta status, dengan format seperti ini:

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

Mendapatkan status penyebaran

Kirim permintaan GET ke URL dari header respons di atas. Nilai sudah akan diisi berdasarkan permintaan penyebaran awal.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Placeholder Nilai
{ENDPOINT} Titik akhir untuk mengautentikasi permintaan API Anda
{PROJECT-NAME} Nama untuk proyek Anda (peka huruf besar/kecil)
{DEPLOYMENT-NAME} Nama untuk penyebaran Anda (peka huruf besar/kecil)
{JOB-ID} ID untuk menemukan status pelatihan model Anda, ditemukan di nilai header yang dirinci di atas dalam permintaan penyebaran
{API-VERSION} Versi API yang Anda panggil

Isi respons akan memberikan detail status penyebaran. Bidang status akan memiliki nilai berhasil saat penyebaran selesai.

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

Untuk panduan lengkap setiap langkah dengan contoh permintaan, lihat panduan memulai pemahaman percakapan.

Tanya model Anda

Untuk mengkueri model Anda untuk prediksi, Anda dapat menggunakan SDK di C# atau Python, atau menggunakan REST API.

Kueri menggunakan SDK

Untuk mengkueri model Anda menggunakan SDK, Anda harus terlebih dahulu membuat klien Anda. Setelah memiliki klien, Anda kemudian menggunakannya untuk memanggil titik akhir yang sesuai.

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]

Fitur bahasa lain, seperti pemahaman bahasa percakapan, mengharuskan permintaan dibuat dan dikirim secara berbeda.

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
        }
    }
)

Kueri menggunakan REST API

Untuk mengkueri model Anda menggunakan REST, buat permintaan POST ke URL yang sesuai dengan isi yang sesuai yang ditentukan. Untuk fitur bawaan seperti deteksi bahasa atau analisis sentimen, Anda akan mengkueri titik akhir analyze-text.

Tip

Ingat setiap permintaan perlu diautentikasi dengan kunci sumber daya Bahasa Azure AI Anda di Ocp-Apim-Subscription-Key header

{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Placeholder Nilai
{ENDPOINT} Titik akhir untuk mengautentikasi permintaan API Anda
{API-VERSION} Versi API yang Anda panggil

Di dalam isi permintaan tersebut, Anda harus menentukan parameter kind, yang memberi tahu layanan jenis pemahaman bahasa apa yang Anda minta.

Jika Anda ingin mendeteksi bahasa, misalnya, isi JSON akan terlihat seperti berikut ini.

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

Fitur bahasa lain, seperti pemahaman bahasa percakapan, mengharuskan permintaan dirutekan ke titik akhir yang berbeda. Misalnya, permintaan pemahaman bahasa percakapan akan dikirim ke berikut ini.

{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Placeholder Nilai
{ENDPOINT} Titik akhir untuk mengautentikasi permintaan API Anda
{API-VERSION} Versi API yang Anda panggil

Permintaan tersebut akan menyertakan isi JSON yang mirip dengan berikut ini.

{
  "kind": "Conversation",
  "analysisInput": {
    "conversationItem": {
      "id": "1",
      "participantId": "1",
      "text": "Sample text"
    }
  },
  "parameters": {
    "projectName": "{PROJECT-NAME}",
    "deploymentName": "{DEPLOYMENT-NAME}",
    "stringIndexType": "TextElement_V8"
  }
}
Placeholder Nilai
{PROJECT-NAME} Nama proyek tempat Anda membuat model
{DEPLOYMENT-NAME} Nama penyebaran Anda

Respon sampel

Respons kueri dari SDK akan di objek yang dikembalikan, yang bervariasi tergantung pada fitur (seperti di response.key_phrases atau response.Value). REST API akan mengembalikan JSON yang akan mirip dengan yang berikut ini.

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

Untuk model lain seperti pemahaman bahasa percakapan, contoh respons terhadap kueri Anda akan mirip dengan yang berikut ini.

{
  "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 untuk Python dan C# mengembalikan JSON yang sangat mirip dengan respons REST.

Untuk dokumentasi lengkap tentang fitur, termasuk contoh dan panduan cara penggunaan, lihat halaman dokumentasi dokumentasi Bahasa Azure AI.