无法将LUIS订阅密钥分配给App-API V2.0

时间:2017-12-14 06:34:53

标签: rest api azure luis azure-cognitive-services

我必须将订阅密钥分配给我在azure上创建的luis app。

我正在使用LUIS Api V2.0 将订阅密钥分配给应用

我已经使用更新应用程序版本外部密钥端点。     https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/ {APPID} /版本/ {VERSIONID} / externalKeys

(API示例网址)https://westus.dev.cognitive.microsoft.com/docs/services/5890b47c39e2bb17b84a55ff/operations/5890b47c39e2bb052c5b9c43/console

我已经从azure创建了新的LUIS订阅密钥。但是,我无法将订阅密钥分配给我的应用。

以下是我的身体要求

{
    "type": "LanguageUnderstanding",
    "value": "ee29*******************717"
}

下面是我得到的回复。

{
  "error": {
    "code": "BadArgument",
    "message": "Invalid external key type"
  }
}

我已经在我的请求体中修改了类型变量,例如Cognitive Service

  • CognitiveService
  • 认知服务
  • 认知服务语言
  • 了解智能服务
  • LanguageUnderstandingIntelligentService
  • LanguageUnderstanding
  • 语言理解

但是,他们似乎都不适合我。我每次都得到相同的错误响应。

此外,我已经google了一下,发现这可以通过LUIS Api V1.0实现。因此,我尝试使用分配订阅密钥到应用

(API示例网址)https://westus.dev.cognitive.microsoft.com/docs/services/56d95961e597ed0f04b76e58/operations/580c6eea39e2bb161819981d/console

以下是我的端点https://westus.api.cognitive.microsoft.com/luis/v1.0/prog/apps/5b2556b8-f97d-4772-9bf0-4f576ec9fc59/subscription

请求正文

08ebb******************e7142d3

请求标题

{ "Content-Type" : "text/plain", "Ocp-Apim-Subscription-Key":"as23d*******123d"}

错误回复

{
  "Message": "The request entity's media type 'text/plain' is not supported for this resource."
}

我甚至尝试过使用content-type:application / json。但是,它也没有用。

因此。我无法使用V1.0或V2.0 LUIS api

分配订阅密钥

请指导我如何使用api将新创建的订阅密钥分配给luis。

我还尝试了以下V2.0端点请求,但现在已弃用。 将订阅密钥分配给版本,添加外部API密钥,添加订阅密钥

2 个答案:

答案 0 :(得分:2)

您可以使用新的端点,该端点允许您以编程方式添加密钥-endpoint

要使用它,您需要:

  1. 从此link获取Azure资源管理器令牌。该令牌确实过期,因此请立即使用。该请求返回一个Azure资源管理器令牌。或者,您可以使用Azure CLI:

    az帐户get-access-token --query accessToken -o tsv

  2. 使用endpoint

  3. 将令牌分配给LUIS资源

此POST API需要以下设置:

标题:授权-授权的值是Bearer {token}。 (请注意,令牌值必须在单词Bearer和空格之前。)

标题:Ocp-Apim-Subscription-Key-您的创作密钥。

标题:内容类型-application / json 查询字符串:appid-LUIS应用程序ID。

身体:

{"AzureSubscriptionId":"ddda2925-af7f-4b05-9ba1-2155c5fe8a8e",
"ResourceGroup": "resourcegroup-2",
"AccountName": "luis-uswest-S0-2"}

此API成功执行后,将返回201创建状态。

Docs

答案 1 :(得分:1)

您所指的文档适用于旧版本(v1)。通过Programmatic API分配订阅密钥已被弃用,如上所述here

现在,在LUIS应用程序的“发布应用程序”页面中选择密钥时,将根据您选择的租户ID和订阅名称自动提供Azure端点密钥。用户不再需要复制“Keys from Azure”,然后手动将其添加到LUIS帐户。我之前提供给您的链接“Manage your keys”提供了如何为您的应用分配密钥的演练过程。

如果您对LUIS支持有任何其他疑虑,请联系luservice@microsoft.com。