編寫 API

自訂問題解答製作 API 可用來自動化一般工作,例如新增問答配對,以及建立、發佈和維護專案。

注意

您可以透過 REST API 和 Authoring SDK (預覽版) 來使用撰寫功能。 本文提供搭配 cURL 使用 REST API 的範例。 如需所有可用參數和功能的完整文件,請參閱 REST API 參考內容

必要條件

  • 最新版的 cURL。 本文會使用數個命令列參數,其記載於 cURL 文件中。
  • 本文中的命令是專為在 Bash 殼層中執行所設計。 這些命令如未經修改,可能無法在 Windows 命令提示字元或 PowerShell 中運作。 如果您未在本機安裝 Bash 殼層,您可以使用 Azure Cloud Shell 的 Bash 環境

建立專案

若要以程式設計方式建立專案:

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果先前的範例是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
NEW-PROJECT-NAME 新的自訂問題解答專案名稱。

您也可以調整其他值,例如專案語言、無法找到符合或超過信賴等級閾值的答案時所提供的預設答案,以及此語言資源是否支援多種語言。

範例查詢

curl -X PATCH -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '{
      "description": "proj1 is a test project.",
      "language": "en",
      "settings": {
        "defaultAnswer": "No good match found for your question in the project."
      },
      "multilingualResource": true
    }
  }'  'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{NEW-PROJECT-NAME}?api-version=2021-10-01'

範例回應

{
 "200": {
      "headers": {},
      "body": {
        "projectName": "proj1",
        "description": "proj1 is a test project.",
        "language": "en",
        "settings": {
          "defaultAnswer": "No good match found for your question in the project."
        },
        "multilingualResource": true,
        "createdDateTime": "2021-05-01T15:13:22Z",
        "lastModifiedDateTime": "2021-05-01T15:13:22Z",
        "lastDeployedDateTime": "2021-05-01T15:13:22Z"
      }
 }
}

刪除專案

若要以程式設計方式刪除專案:

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果先前的範例是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要刪除的專案名稱。

範例查詢

curl -X DELETE -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}?api-version=2021-10-01'

成功呼叫刪除專案會導致傳回 Operation-Location 標頭,此標頭可用來檢查刪除專案作業的狀態。 在大多數範例中,我們不需要查看回應標頭,因此不會顯示這些標頭。 若要擷取回應標頭,我們的 cURL 命令會使用 -i。 如果在端點位址之前沒有這個參數,則對此命令的回應會顯示為空白,如同未發生任何回應。

範例回應

HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/deletion-jobs/{JOB-ID-GUID}
x-envoy-upstream-service-time: 324
apim-request-id:
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Tue, 23 Nov 2021 20:56:18 GMT

如果已刪除或找不到專案,您會收到類似如下的訊息:

{
  "error": {
    "code": "ProjectNotFound",
    "message": "The specified project was not found.",
    "details": [
      {
        "code": "ProjectNotFound",
        "message": "{GUID}"
      }
    ]
  }
}

取得專案刪除狀態

若要檢查刪除專案要求的狀態:

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要檢查其部署狀態的專案名稱。
JOB-ID 當以程式設計方式刪除專案時,JOB-ID 會作為刪除要求的 operation-location 回應標頭一部分產生。 JOB-IDoperation-location 結尾的 GUID。 例如:operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/deletion-jobs/{THIS GUID IS YOUR JOB ID}

範例查詢

curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/deletion-jobs/{JOB-ID}?api-version=2021-10-01'

範例回應

{
  "createdDateTime": "2021-11-23T20:56:18+00:00",
  "expirationDateTime": "2021-11-24T02:56:18+00:00",
  "jobId": "GUID",
  "lastUpdatedDateTime": "2021-11-23T20:56:18+00:00",
  "status": "succeeded"
}

取得專案設定

若要擷取指定專案的資訊,請更新以下查詢中的下列值:

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要擷取其資訊的專案名稱。

範例查詢


curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}?api-version=2021-10-01'

範例回應

 {
    "200": {
      "headers": {},
      "body": {
        "projectName": "proj1",
        "description": "proj1 is a test project.",
        "language": "en",
        "settings": {
          "defaultAnswer": "No good match found for your question in the project."
        },
        "createdDateTime": "2021-05-01T15:13:22Z",
        "lastModifiedDateTime": "2021-05-01T15:13:22Z",
        "lastDeployedDateTime": "2021-05-01T15:13:22Z"
      }
    }
  }

取得問答配對

若要擷取指定專案的問答配對和相關資訊,請更新以下查詢中的下列值:

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要擷取其所有問答配對的專案名稱。

範例查詢

curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/qnas?api-version=2021-10-01'

範例回應

{
    "200": {
      "headers": {},
      "body": {
        "value": [
          {
            "id": 1,
            "answer": "ans1",
            "source": "source1",
            "questions": [
              "question 1.1",
              "question 1.2"
            ],
            "metadata": {
              "k1": "v1",
              "k2": "v2"
            },
            "dialog": {
              "isContextOnly": false,
              "prompts": [
                {
                  "displayOrder": 1,
                  "qnaId": 11,
                  "displayText": "prompt 1.1"
                },
                {
                  "displayOrder": 2,
                  "qnaId": 21,
                  "displayText": "prompt 1.2"
                }
              ]
            },
            "lastUpdatedDateTime": "2021-05-01T17:21:14Z"
          },
          {
            "id": 2,
            "answer": "ans2",
            "source": "source2",
            "questions": [
              "question 2.1",
              "question 2.2"
            ],
            "lastUpdatedDateTime": "2021-05-01T17:21:14Z"
          }
        ]
      }
    }
  }

取得來源

若要擷取指定專案的來源和相關資訊,請更新以下查詢中的下列值:

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要擷取其所有來源資訊的專案名稱。

範例查詢

curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT_NAME}/sources?api-version=2021-10-01'

範例回應

{
    "200": {
      "headers": {},
      "body": {
        "value": [
          {
            "displayName": "source1",
            "sourceUri": "https://video2.skills-academy.com/azure/ai-services/qnamaker/overview/overview",
            "sourceKind": "url",
            "lastUpdatedDateTime": "2021-05-01T15:13:22Z"
          },
          {
            "displayName": "source2",
            "sourceUri": "https://download.microsoft.com/download/2/9/B/29B20383-302C-4517-A006-B0186F04BE28/surface-pro-4-user-guide-EN.pdf",
            "sourceKind": "file",
            "contentStructureKind": "unstructured",
            "lastUpdatedDateTime": "2021-05-01T15:13:22Z"
          }
        ]
      }
    }
  }

取得同義字

若要擷取指定專案的同義字和相關資訊,請更新以下查詢中的下列值:

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要擷取其同義字資訊的專案名稱。

範例查詢


curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/synonyms?api-version=2021-10-01'

範例回應

 {
    "200": {
      "headers": {},
      "body": {
        "value": [
          {
            "alterations": [
              "qnamaker",
              "qna maker"
            ]
          },
          {
            "alterations": [
              "botframework",
              "bot framework"
            ]
          }
        ]
      }
    }
  }

部署專案

若要將專案部署到生產,請更新以下查詢中的下列值:

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要部署到生產的專案名稱。

範例查詢

curl -X PUT -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/deployments/production?api-version=2021-10-01'  

成功呼叫部署專案會導致傳回 Operation-Location 標頭,此標頭可用來檢查部署作業的狀態。 在大多數範例中,我們不需要查看回應標頭,因此不會顯示這些標頭。 若要擷取回應標頭,我們的 cURL 命令會使用 -i。 如果在端點位址之前沒有這個參數,則對此命令的回應會顯示為空白,如同未發生任何回應。

範例回應

0HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/deployments/production/jobs/{JOB-ID-GUID}
x-envoy-upstream-service-time: 31
apim-request-id:
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Tue, 23 Nov 2021 20:35:00 GMT

取得專案部署狀態

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要檢查其部署狀態的專案名稱。
JOB-ID 當以程式設計方式部署專案時,JOB-ID 會作為部署要求的 operation-location 回應標頭一部分產生。 JOB-IDoperation-location 結尾的 GUID。 例如:operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/deployments/production/jobs/{THIS GUID IS YOUR JOB ID}

範例查詢

curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/deployments/production/jobs/{JOB-ID}?api-version=2021-10-01' 

範例回應

    {
    "200": {
      "headers": {},
      "body": {
        "errors": [],
        "createdDateTime": "2021-05-01T17:21:14Z",
        "expirationDateTime": "2021-05-01T17:21:14Z",
        "jobId": "{JOB-ID-GUID}",
        "lastUpdatedDateTime": "2021-05-01T17:21:14Z",
        "status": "succeeded"
      }
    }
  }

匯出專案中繼資料和資產

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要匯出的專案名稱。

範例查詢

curl -X POST -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '{exportAssetTypes": ["qnas","synonyms"]}' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/:export?api-version=2021-10-01&format=tsv'

範例回應

HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/Sample-project/export/jobs/{JOB-ID_GUID}
x-envoy-upstream-service-time: 214
apim-request-id:
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Tue, 23 Nov 2021 21:24:03 GMT

檢查匯出狀態

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要檢查其匯出狀態的專案名稱。
JOB-ID 當以程式設計方式匯出專案時,JOB-ID 會作為匯出要求的 operation-location 回應標頭一部分產生。 JOB-IDoperation-location 結尾的 GUID。 例如:operation-location: https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/sample-proj1/export/jobs/{THIS GUID IS YOUR JOB ID}

範例查詢

curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID}?api-version=2021-10-01' 

範例回應

{
  "createdDateTime": "2021-11-23T21:24:03+00:00",
  "expirationDateTime": "2021-11-24T03:24:03+00:00",
  "jobId": "JOB-ID-GUID",
  "lastUpdatedDateTime": "2021-11-23T21:24:08+00:00",
  "status": "succeeded",
  "resultUrl": "https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result"
}

如果您嘗試直接存取 resultUrl,您會收到 404 錯誤。 您必須將 ?api-version=2021-10-01 附加至路徑,使其可供經驗證的要求存取:https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result?api-version=2021-10-01

匯入專案

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要作為匯入目的地的專案名稱。
FILE-URI-PATH 當以程式設計方式匯出專案,然後檢查匯出狀態時,resultUrl 會作為回應的一部分產生。 例如:"resultUrl": "https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result"您可以使用 resultUrl 搭配附加為來源檔案的 API 版本,從下列位置匯入專案:https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result?api-version=2021-10-01

範例查詢

curl -X POST -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '{
      "fileUri": "FILE-URI-PATH"
  }' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/:import?api-version=2021-10-01&format=tsv'

成功呼叫匯入專案會導致傳回 Operation-Location 標頭,此標頭可用來檢查匯入作業的狀態。 在許多範例中,我們不需要查看回應標頭,因此不會顯示這些標頭。 若要擷取回應標頭,我們的 cURL 命令會使用 -i。 如果在端點位址之前沒有這個額外的參數,則對此命令的回應會顯示為空白,如同未發生任何回應。

範例回應

HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/import/jobs/{JOB-ID-GUID}
x-envoy-upstream-service-time: 417
apim-request-id: 
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Wed, 24 Nov 2021 00:35:11 GMT

檢查匯入狀態

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要作為匯入目的地的專案名稱。
JOB-ID 當以程式設計方式匯入專案時,JOB-ID 會作為匯出要求的 operation-location 回應標頭一部分產生。 JOB-IDoperation-location 結尾的 GUID。 例如:operation-location: https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/sample-proj1/import/jobs/{THIS GUID IS YOUR JOB ID}

範例查詢

curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME/import/jobs/{JOB-ID-GUID}?api-version=2021-10-01' 

範例查詢回應

{
  "errors": [],
  "createdDateTime": "2021-05-01T17:21:14Z",
  "expirationDateTime": "2021-05-01T17:21:14Z",
  "jobId": "JOB-ID-GUID",
  "lastUpdatedDateTime": "2021-05-01T17:21:14Z",
  "status": "succeeded"
}

列出部署

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要產生其部署清單的專案名稱。

範例查詢

curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/deployments?api-version=2021-10-01' 

範例回應

[
  {
    "deploymentName": "production",
    "lastDeployedDateTime": "2021-10-26T15:12:02Z"
  }
]

列出專案

擷取您帳戶有權存取的所有問題解答專案清單。

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。

範例查詢

curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects?api-version=2021-10-01' 

範例回應

{
  "value": [
    {
      "projectName": "Sample-project",
      "description": "My first question answering project",
      "language": "en",
      "multilingualResource": false,
      "createdDateTime": "2021-10-07T04:51:15Z",
      "lastModifiedDateTime": "2021-10-27T00:42:01Z",
      "lastDeployedDateTime": "2021-11-24T01:34:18Z",
      "settings": {
        "defaultAnswer": "No good match found in KB"
      }
    }
  ]
}

更新來源

在此範例中,我們將為現有的專案新增來源。 您也可以使用此命令來取代和刪除現有的來源,視您作為查詢主體一部分傳遞的作業類型而定。

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要更新來源的專案名稱。
METHOD 修補檔

範例查詢

curl -X PATCH -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '[
  {
    "op": "add",
    "value": {
      "displayName": "source5",
      "sourceKind": "url",
      "sourceUri": "https://download.microsoft.com/download/7/B/1/7B10C82E-F520-4080-8516-5CF0D803EEE0/surface-book-user-guide-EN.pdf",
      "sourceContentStructureKind": "semistructured"
    }
  }
]'  -i '{LanguageServiceName}.cognitiveservices.azure.com//language/query-knowledgebases/projects/{projectName}/sources?api-version=2021-10-01'

成功呼叫更新來源會導致傳回 Operation-Location 標頭,此標頭可用來檢查匯入作業的狀態。 在許多範例中,我們不需要查看回應標頭,因此一律不會顯示這些標頭。 若要擷取回應標頭,我們的 cURL 命令會使用 -i。 如果在端點位址之前沒有這個參數,則對此命令的回應會顯示為空白,如同未發生任何回應。

範例回應

HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/Sample-project/sources/jobs/{JOB_ID_GUID}
x-envoy-upstream-service-time: 412
apim-request-id: dda23d2b-f110-4645-8bce-1a6f8d504b33
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Wed, 24 Nov 2021 02:47:53 GMT

取得更新來源狀態

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要作為匯入目的地的專案名稱。
JOB-ID 當以程式設計方式更新來源時,JOB-ID 會作為更新來源要求的 operation-location 回應標頭一部分產生。 JOB-IDoperation-location 結尾的 GUID。 例如:operation-location: https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/sample-proj1/sources/jobs/{THIS GUID IS YOUR JOB ID}

範例查詢

curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/sources/jobs/{JOB-ID}?api-version=2021-10-01' 

範例回應

{
  "createdDateTime": "2021-11-24T02:47:53+00:00",
  "expirationDateTime": "2021-11-24T08:47:53+00:00",
  "jobId": "{JOB-ID-GUID}",
  "lastUpdatedDateTime": "2021-11-24T02:47:56+00:00",
  "status": "succeeded",
  "resultUrl": "/knowledgebases/Sample-project"
}

更新問答配對

在此範例中,我們會將問答配對新增至現有的來源。 您也可以使用此查詢來修改或刪除現有的問答配對,視您在查詢主體中傳遞的作業而定。 如果您沒有名為 source5 的來源,此範例查詢將會失敗。 您可以將查詢主體中的來源值調整為目標專案的現有來源。

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要作為匯入目的地的專案名稱。
curl -X PATCH -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '[
    {
        "op": "add",
        "value":{
            "id": 1,
            "answer": "The latest question answering docs are on https://video2.skills-academy.com",
            "source": "source5",
            "questions": [
                "Where do I find docs for question answering?"
            ],
            "metadata": {},
            "dialog": {
                "isContextOnly": false,
                "prompts": []
            }
        }
    }
]'  -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/qnas?api-version=2021-10-01'

成功呼叫更新問答配對會導致傳回 Operation-Location 標頭,此標頭可用來檢查更新作業的狀態。 在許多範例中,我們不需要查看回應標頭,因此一律不會顯示這些標頭。 若要擷取回應標頭,我們的 cURL 命令會使用 -i。 如果在端點位址之前沒有這個參數,則對此命令的回應會顯示為空白,如同未發生任何回應。

範例回應

HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/Sample-project/qnas/jobs/{JOB-ID-GUID}
x-envoy-upstream-service-time: 507
apim-request-id: 
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Wed, 24 Nov 2021 03:16:01 GMT

取得更新問答配對狀態

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要作為問答配對更新目的地的專案名稱。
JOB-ID 當以程式設計方式更新問答配對時,JOB-ID 會作為更新要求的 operation-location 回應標頭一部分產生。 JOB-IDoperation-location 結尾的 GUID。 例如:operation-location: https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/sample-proj1/qnas/jobs/{THIS GUID IS YOUR JOB ID}

範例查詢

curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/qnas/jobs/{JOB-ID}?api-version=2021-10-01' 

範例回應

  "createdDateTime": "2021-11-24T03:16:01+00:00",
  "expirationDateTime": "2021-11-24T09:16:01+00:00",
  "jobId": "{JOB-ID-GUID}",
  "lastUpdatedDateTime": "2021-11-24T03:16:06+00:00",
  "status": "succeeded",
  "resultUrl": "/knowledgebases/Sample-project"

更新同義字

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您要新增同義字的專案名稱。

範例查詢

curl -X PUT -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '{
"value": [
    {
      "alterations": [
        "qnamaker",
        "qna maker"
      ]
    },
    {
      "alterations": [
        "botframework",
        "bot framework"
      ]
    }
  ]
}' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/synonyms?api-version=2021-10-01'

範例回應

0HTTP/2 200
content-length: 17
content-type: application/json; charset=utf-8
x-envoy-upstream-service-time: 39
apim-request-id: 5deb2692-dac8-43a8-82fe-36476e407ef6
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Wed, 24 Nov 2021 03:59:09 GMT

{
  "value": []
}

更新主動式學習意見反應

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 範例端點為:https://southcentralus.api.cognitive.microsoft.com/。 如果這是您在以下程式碼範例中的端點,您只需要新增 southcentral 的區域特定部分,因為端點路徑的其餘部分已經存在。
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 Key1 或 Key2。 永遠擁有兩個有效金鑰有助於進行安全的金鑰輪替,而不需要停機。 或者,您可以在 [Language Studio]>[問題解答]>[部署專案]>[取得預測 URL] 中找到此值。 金鑰值是範例要求的一部分。
PROJECT-NAME 您希望作為主動學習意見反應更新之目的地的專案名稱。

範例查詢

curl -X POST -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '{
records": [
    {
      "userId": "user1",
      "userQuestion": "hi",
      "qnaId": 1
    },
    {
      "userId": "user1",
      "userQuestion": "hello",
      "qnaId": 2
    }
  ]
}' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/feedback?api-version=2021-10-01' 

範例回應

HTTP/2 204
x-envoy-upstream-service-time: 37
apim-request-id: 92225e03-e83f-4c7f-b35a-223b1b0f29dd
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Wed, 24 Nov 2021 04:02:56 GMT