Botframework-solutions: Botskill connect add all the utterance sources even are not defined in the manifest

Created on 8 Oct 2019  路  7Comments  路  Source: microsoft/botframework-solutions

What project is affected?

Virtual Assistant

What language is this in?

TS

What happens?

When I connect a skill via cli all the Utterance Sources are added to the dispatcher.

What are the steps to reproduce this issue?

Connect a skill to the VA and then check the Dispatcher, the skill has to have multiple utterance sources, but in the manifest of the skill we want to add just one of them, this means that in the manifest under triggers and utterancesSources we define one source only.

What were you expecting to happen?

In the Dispatcher should be added only the utterances from the sources I defined.
As a "work around" I put the other sources inside the general luis file but then I don't see the point to have the utterance sources definition in the Manifest.

Any screenshots or additional context?

Here the manifest of the skill :

{
  "id": "meeting",
  "name": "meeting-skill",
  "description": "Skill capable of creating meetings and booking rooms for the user",
  "iconUrl": "http://meeting.azurewebsites.net/",
  "authenticationConnections": [],
  "actions": [
    {
      "id": "meeting_createMeeting",
      "definition": {
        "description": "Create a new meeting",
        "slots": [
          {
            "name": "subject",
            "types": [
              "string"
            ]
          },
          {
            "name": "body",
            "types": [
              "string"
            ]
          },
          {
            "name": "requiredAttendees",
            "types": [
              "string"
            ]
          },
          {
            "name": "startDate",
            "types": [
              "string"
            ]
          },
          {
            "name": "startTime",
            "types": [
              "string"
            ]
          },
          {
            "name": "duration",
            "types": [
              "string"
            ]
          },
          {
            "name": "location",
            "types": [
              "string"
            ]
          },
          {
            "name": "roomName",
            "types": [
              "string"
            ]
          },
          {
            "name": "timezone",
            "types": [
              "string"
            ]
          }
        ],
        "triggers": {
          "utteranceSources": [
            {
              "locale": "en",
              "source": [
                "meeting#CreateCalendarEntry"
              ]
            },
            {
              "locale": "de",
              "source": [
                "meeting#CreateCalendarEntry"
              ]
            }
          ]
        }
      }
    }
  ]
}

Committed Bug customer-replied-to customer-reported stale supportability

Most helpful comment

Correct - botskills should only pull in the intents referenced. We'll see if we can get this change into the next release of botskills

All 7 comments

Yeah.. currently it only cares the name before #..

Correct - botskills should only pull in the intents referenced. We'll see if we can get this change into the next release of botskills

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days

@Batta32 can you provide an update as per our iteration planning earlier this week? Thanks

Hi @darrenj and @tommyJimmy87! We started implementing the inline trigger utterances feature in Botskills CLI Tool.

We added the --inlineUtterances argument in the connect and update commands in order to manage the possibility to have a manifest with utterances.

image

Currently, we are working in the consumption of the manifest for this scenario (updating processManifest() method.
To accomplish this, we took into account the following steps:

  1. Read the array of utterances from the manifest
  2. Generate a temporal .lu file in the Skill
  3. Add the array of utterances into the temporal .lu file
  4. Return the .lu files corresponding to a locale

We will be analyzing if it's possible to avoid the temporal .lu file and handle the array of utterances directly in the external commands.

Hey @Batta32 , I think that the original question was regarding the possibility of specifying which intents to pickup from the .lu file when calling the botskills connect. This can be either by only using the intents specified in the manifest file, or by allowing the user to specify them manually through a CLI parameter (same way the dispatch add does it using the --includedIntents parameter). Is there any plan to introduce this change to the botskills tool?

@Batta32 I think that the original issue was about enabling the botskills connect command to extract utterances from some specific intents from the passed in .lu file. This can be done in two ways:
1- Reading from the .lu file and only extracting the utterances for the intents referenced in the utteranceSources in the manifest file
2- Adding a CLI parameter --includedIntents which allows the user to specify which intents to extract from the .lu file. This parameter would then be passed through to the dispatch add call which already supports this parameter.

I would maybe prefer option 1 as it automates the whole process of connecting the skills to the VA, but I do realize that option 2 would be much easier to implement as it's just about adding a CLI parameter and passing it through the dispatch add which will do the work of parsing and extracting the intents from the .lu file.

Would it be possible to re-open this ticket and consider either of those solutions?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lauren-mills picture lauren-mills  路  3Comments

nestoralonsovina picture nestoralonsovina  路  4Comments

esoler-sage picture esoler-sage  路  3Comments

hansmbakker picture hansmbakker  路  3Comments

elaine-chang picture elaine-chang  路  4Comments