Google Action Intents getting multiplied for every language

dialogflow

#1

Since Jovo v3 I get all my intents twice in the dialogflow console. But every Intent has only Training phrases in one language.
Example:
I’m in the Dialogflow Console and select english as language. Now I see two times the same Intent, once it’s empty and once with all the english phrases. If I switch the language the first one will have the Phrases in this language but now the second one is empty.

Is that just some new behavior, a bug or do I miss some configurations?

Thank you for your help


#2

Hey @Simon,

definitely a bug, I’ll investigate it asap! For replication purpose, could you please post your language model here?


#3

Hi @rubenaeg,

thanks for your fast reply. I had to change my language model, because I’m not allowed to share it as it is. But I checked with this one and I have the same outcome.

de-DE.json

{
	"invocation": "dinge finden",
	"intents": [
		{
			"name": "SetAttributeIntent",
			"phrases": [
				"Im {room} ist {attribute}",
				"Im {room} sind {attribute} und {attributetwo}",
				"Hier hat es {attribute}",
				"Hier gibt es {attribute}",
				"Hier ist {attribute}",
				"Hier sind {attribute}"
			],
			"inputs": [
				{
					"name": "room",
					"type": "roomNames"
				},
				{
					"name": "attribute",
					"type": "attributeNames"
				},
				{
					"name": "attributetwo",
					"type": "attributeNames"
				}
			]
		},
		{
			"name": "GetAttributeIntent",
			"phrases": [
				"Was ist in diesem Raum",
				"Was gibt es in diesem Raum",
				"Was hat es in diesem Raum",
				"Was befindet sich in diesem Raum",
				"Was befindet sich im Raum",
				"Was ist im {room}",
				"Was gibt es im {room}",
				"Was hat es im {room}",
				"Was befindet sich im {room}",
				"Was befindet sich im {room}",
				"Habe ich noch {attribute}",
				"Gibt es noch {attribute}"
			],
			"inputs": [
				{
					"name": "room",
					"type": "roomNames"
				},
				{
					"name": "attribute",
					"type": "attributeNames"
				}
			]
		},
		{
			"name": "FindIntent",
			"phrases": [
				"Ich brauche {attribute}",
				"Wo {attribute} ist",
				"Wo {attribute} sind",
				"Wo ist {attribute}",
				"Wo sind {attribute}",
				"Zeig mir meine {attribute}",
				"Zeig mir die {attribute}",
				"Zeig wo {attribute} ist"
			],
			"inputs": [
				{
					"name": "attribute",
					"type": "attributeNames"
				}
			]
		}
		{
			"name": "HelpIntent",
			"alexa": {
				"name": "AMAZON.HelpIntent"
			},
			"phrases": [
				"Hilfe",
				"Hilf mir",
				"Kannst du mir helfen",
				"Was kann ich machen",
				"Wie funktioniert das",
				"Erklärung",
				"Anleitung",
				"Unterstützung"
			]
		}
	],
	"inputTypes": [
		{
			"name": "roomNames",
			"dialogflow": {
				"automatedExpansion": true
			},
			"values": [
				{
					"value": "Zimmer"
				},
				{
					"value": "Wohnzimmer"
				},
				{
					"value": "Küche"
				},
				{
					"value": "Schlafzimmer"
				},
				{
					"value": "Büro"
				}
			]
		},
		{
			"name": "attributeNames",
			"dialogflow": {
				"automatedExpansion": true
			},
			"values": [
				{
					"value": "Geschirr"
				},
				{
					"value": "Pfannen"
				},
				{
					"value": "Kleider"
				},
				{
					"value": "Jacken"
				},
				{
					"value": "Elektronik"
				}
			]
		}
	],
	"alexa": {
		"interactionModel": {
			"languageModel": {
				"intents": [
					{
						"name": "AMAZON.CancelIntent",
						"samples": [
							"abbrechen",
							"Abbruch"
						]
					},
					{
						"name": "AMAZON.StopIntent",
						"samples": [
							"beenden",
							"anhalten",
							"aufhören",
							"Ende",
							"Schluss"
						]
					}
				]
			}
		}
	},
	"dialogflow": {
		"intents": [
			{
				"name": "Default Fallback Intent",
				"auto": true,
				"webhookUsed": true,
				"fallbackIntent": true
			},
			{
				"name": "Default Welcome Intent",
				"auto": true,
				"webhookUsed": true,
				"events": [
					{
						"name": "WELCOME"
					}
				]
			}
		]
	}
}

en-US.json

{
	"invocation": "find things",
	"intents": [
		{
			"name": "SetAttributeIntent",
			"phrases": [
				"in this room is {attribute}",
				"in this room are {attribute} and {attributetwo}",
				"here are {attribute}",
				"here is {attribute}"
			],
			"inputs": [
				{
					"name": "room",
					"type": "roomDriveNames"
				},
				{
					"name": "attribute",
					"type": "attributeNames"
				},
				{
					"name": "attributetwo",
					"type": "attributeNames"
				}
			]
		},
		{
			"name": "GetAttributeIntent",
			"phrases": [
				"What is in this room",
				"What is inside of this room",
				"What is in the {room}",
				"What is inside of the {room}",
				"Do I have {attribute}",
				"Are there any {attribute}",
				"Is there any {attribute}"
			],
			"inputs": [
				{
					"name": "room",
					"type": "roomDriveNames"
				},
				{
					"name": "attribute",
					"type": "attributeNames"
				}
			]
		},
		{
			"name": "FindIntent",
			"phrases": [
				"I need {attribute}",
				"Where are {attribute}",
				"Where is {attribute}",
				"Give me {attribute}",
				"Show me {attribute}"
			],
			"inputs": [
				{
					"name": "attribute",
					"type": "attributeNames"
				}
			]
		},
		{
			"name": "HelpIntent",
			"alexa": {
				"name": "AMAZON.HelpIntent"
			},
			"phrases": [
				"help",
				"help me",
				"Can you help me",
				"What can i do",
				"How does this work",
				"Explanation",
				"Instruction",
				"Support"
			]
		}
	],
	"inputTypes": [
		{
			"name": "roomNames",
			"dialogflow": {
				"automatedExpansion": true
			},
			"values": [
				{
					"value": "chamber"
				},
				{
					"value": "livingroom"
				},
				{
					"value": "kitchen"
				},
				{
					"value": "bedroom"
				},
				{
					"value": "office"
				}
			]
		},
		{
			"name": "attributeNames",
			"dialogflow": {
				"automatedExpansion": true
			},
			"values": [
				{
					"value": "dishes"
				},
				{
					"value": "pans"
				},
				{
					"value": "dress"
				},
				{
					"value": "jacket"
				},
				{
					"value": "electronics"
				}
			]
		}
	],
	"alexa": {
		"interactionModel": {
			"languageModel": {
				"intents": [
					{
						"name": "AMAZON.CancelIntent",
						"samples": [
							"cancel"
						]
					},
					{
						"name": "AMAZON.StopIntent",
						"samples": [
							"end",
							"stop"
						]
					}
				]
			}
		}
	},
	"dialogflow": {
		"intents": [
			{
				"name": "Default Fallback Intent",
				"auto": true,
				"webhookUsed": true,
				"fallbackIntent": true
			},
			{
				"name": "Default Welcome Intent",
				"auto": true,
				"webhookUsed": true,
				"events": [
					{
						"name": "WELCOME"
					}
				]
			}
		]
	}
}

Every Intent shows up twice. If I’m in the german view one is german and one is empty. After a switch to english, the empty one shows english and the other is now empty. The behavior of the entities is normal. It shows only one Entity and it switches the language.


#4

I can’t seem to reproduce it. How do you deploy your action to the dialogflow console?


#5

I use:

jovo deploy --platform googleAction

and my platforms folder seems also normal. All the intents are only once with the additional files ‘…usersays_de’ and ‘…usersays_en’


#6

Hm, does the same problem occur when you import your action as a .zip file?


#7

@rubenaeg

So I deleted all the intents and entities in my dialogflow console and double checked, if anything is left. It said, there are no intents. In the upload agent of dialogflow I uploaded the dialogflow_agent.zip. (wow, I totally missed first the input field for the word “import” and thought the upload isn’t working)

If I do it this way, all the intents are only once and in both languages. So it seems somehow to upload them twice with the jovo deploy?


#8

Hm, the upload is mostly handled by the GCloud CLI, so I’m not sure if it’s a problem on our end. I’ll have a further look tomorrow, but I’m glad that the .zip upload is working as a workaround!


#9

Hi Ruben,
thanks for your help so far, the .zip workaround helps alot.

It would be very interesting to know, how that happens. The .zip seems fine and I didn’t change anything in dialogflow. So it could be the gcloud cli. I tried to find something about it on google, but I didn’t find anything similar.