Search code examples
botframeworkazure-language-understanding

Luis programmatically train and publish


Ive been trying to programmatically train and publish Luis model based on https://westus.dev.cognitive.microsoft.com/docs/services/5890b47c39e2bb17b84a55ff/operations/5890b47c39e2bb052c5b9c3b.

Ive multiple Luis app to be trained and my current flow is :

  1. Post the app to be trained - queued status

  2. Get the training status based on a single model/intent ( Check if a single intent has completed the training )

  3. If the intent training is completed, without considering other intent, proceed with publish.

My question over here is that if the other model in a Luis app havent completed training - that means, its still in progress, can the Luis app published?

Im getting the following json result for Spanish - Could not load model. Please re-train your application.

Requested training status For Spanish
[
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:38Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:38Z"
      }
   },
   {
      "modelId": "40c607ab-ce31-46ac-b67c-61168d21b7d0",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:38Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:38Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:38Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:42Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:41Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 3,
         "status": "InProgress",
         "exampleCount": 1052
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:38Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:38Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:38Z"
      }
   }
]
Publishing Application For Spanish
Inside Publish Application Action For Spanish
Sending Request
Response Received
Completed Publishing Application For Spanish
{
   "error": {
      "code": "ModelLoadFailed",
      "message": "Could not load model. Please re-train your application."
   }
}

The following for Chinese app - Sequence contains no elements

Requested training status For Chinese
[
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:56Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:56Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:56Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:56Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:56Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:58Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:57Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:56Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 3,
         "status": "InProgress",
         "exampleCount": 1052
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:53Z"
      }
   },
   {
      "modelId": "",
      "details": {
         "statusId": 0,
         "status": "Success",
         "exampleCount": 1052,
         "trainingDateTime": "2018-07-11T02:01:56Z"
      }
   }
]
Publishing Application For Chinese
Inside Publish Application Action For Chinese
Sending Request
Response Received
Completed Publishing Application For Chinese
{
   "error": {
      "code": "BadArgument",
      "message": "Sequence contains no elements"
   }
}

Solution

  • My question over here is that if the other model in a Luis app havent completed training - that means, its still in progress, can the Luis app published?

    No, all your LUIS app (ie: all intents) must be trained successfully to be published