我必须将订阅密钥分配给我在azure上创建的luis app。
我正在使用LUIS Api V2.0 将订阅密钥分配给应用 。
我已经使用更新应用程序版本外部密钥端点。 https://westus.api.cognitive.microsoft.com/luis/api/v2.0/apps/ {APPID} /版本/ {VERSIONID} / externalKeys
我已经从azure创建了新的LUIS订阅密钥。但是,我无法将订阅密钥分配给我的应用。
以下是我的身体要求
{
"type": "LanguageUnderstanding",
"value": "ee29*******************717"
}
下面是我得到的回复。
{
"error": {
"code": "BadArgument",
"message": "Invalid external key type"
}
}
我已经在我的请求体中修改了类型变量,例如Cognitive Service
但是,他们似乎都不适合我。我每次都得到相同的错误响应。
此外,我已经google了一下,发现这可以通过LUIS Api V1.0实现。因此,我尝试使用分配订阅密钥到应用
请求正文
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密钥,添加订阅密钥
答案 0 :(得分:2)
您可以使用新的端点,该端点允许您以编程方式添加密钥-endpoint
要使用它,您需要:
从此link获取Azure资源管理器令牌。该令牌确实过期,因此请立即使用。该请求返回一个Azure资源管理器令牌。或者,您可以使用Azure CLI:
az帐户get-access-token --query accessToken -o tsv
使用endpoint
此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创建状态。
答案 1 :(得分:1)
您所指的文档适用于旧版本(v1)。通过Programmatic API分配订阅密钥已被弃用,如上所述here。
现在,在LUIS应用程序的“发布应用程序”页面中选择密钥时,将根据您选择的租户ID和订阅名称自动提供Azure端点密钥。用户不再需要复制“Keys from Azure”,然后手动将其添加到LUIS帐户。我之前提供给您的链接“Manage your keys”提供了如何为您的应用分配密钥的演练过程。
如果您对LUIS支持有任何其他疑虑,请联系luservice@microsoft.com。