LUIS在代码JSON POST失败时添加话语

时间:2018-02-02 10:51:17

标签: c# json luis

遵循这个例子:

https://docs.microsoft.com/en-us/azure/cognitive-services/luis/luis-quickstart-cs-add-utterance

我正在尝试向我的LUIS App发送一个话语。 它继续使用此响应消息失败:

{
  "error": {
    "code": "BadArgument",
    "message": "Failed to parse example labeling objects. Parameter name: exampleLabelObjects"
  }
}

我的输入正文是:

{
  "text": "hi, what can I help you with?",
  "intentName": "Help",
  "entityLabels": []
}

根据链接,如果您发送没有任何实体标签的话语,则上述内容是正确的。

  

entityLabels字段是必需的。如果你不想标记任何   实体,提供一个空列表,如以下示例所示:

[
    {
        "text": "go to Seattle",
        "intentName": "BookFlight",
        "entityLabels": [
            {
                "entityName": "Location::LocationTo",
                "startCharIndex": 6,
                "endCharIndex": 12
            }
        ]
    },
    {
        "text": "book a flight",
        "intentName": "BookFlight",
        "entityLabels": []
    }
]

构建对象的C#如下:

public class LUISUtterItem
    {
        public string utterances;
        public string text;
        public string intentName;
        public List<exampleLabelObjects> entityLabels;

    }

    public class exampleLabelObjects
    {
        public string entityName;
        public int startCharIndex;
        public int endCharIndex;
    }

我用它来打电话:

LUISUtterItem itm = new LUISUtterItem(); 

            //itm.utterances = materialArray[1];
            itm.text = materialArray[1];
            itm.intentName = materialArray[2];
            itm.entityLabels = new List<exampleLabelObjects>();

我也尝试过不包含“entityLabels”对象,以及刚刚以相同结果启动的字符串列表。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

因此,似乎所有你必须包括在身体中的是#34; []&#34;围绕它,它工作:

[{
  "text": "hi, what can I help you with?",
  "intentName": "Help",
  "entityLabels": []
}] 

答案 1 :(得分:0)

我遇到了同样的问题。通过发送身体解决: {   &#34;文字&#34;:&#34;嗨&#34;,   &#34; intentName&#34;:&#34;问候&#34; }

如果不需要,请不要使用entityLabel。