Sie können dies mit Composite Entities tun.
Zuerst erstellen Sie eine Entität, die alle Früchte und ihre Synonyme auflistet (nennen wir es fruit
).
Erstellen Sie dann eine zusammengesetzte Einheit (wir es number-of-fruit
nennen), die wie folgt aussieht:
Sie brauchen nur einen Wert, ohne Synonyme, und es sollten die beiden Parameter enthalten, die Sie wollen sammeln:
@sys.number-integer:number
(die @sys.number-integer
Teil für integer, der die Systemeinheit darstellt, die :number
Teil ist der Name, den wir diesen Parameter geben werde)
@fruit:fruit
(der @fruit
Teil der Name unseres Obst Einheit ist, der :fruit
Teil ist der Name, den wir diese Parameter geben werden)
Wenn Sie nun ein Beispiel enthält Elemente in diesem Format hinzufügen zu einer Absicht, werden Sie Ihre neue zusammengesetzte Einheit erkannt wird, dass:
Allerdings sind die Vorkommen in dem Beispiel zur Zeit als zwei behandelt werden separate Parameter, keine Liste. Um diese Einheiten als eine Liste zu behandeln, als zwei diskrete Elemente im Gegensatz wählen die zweite Beispiel markiert und klicken Sie auf das Element, das auf den ersten Parameter entspricht (im Screenshot ist es das mit dem blauen Text sagen number-of-fruit
):
Nun sehen Sie, dass die Parameter Abschnitt zeigt an, dass dieser Parameter ist eine Liste:
Sobald Sie speichern und Zug, können Sie testen, ob dies für eine beliebige Länge Liste über die Konsole arbeitet :
@AlecFenichel - Dies ist eine gültige Frage für Dialogflow; Das angegebene Beispiel erfordert die Verwendung einer erweiterten Funktion (zusammengesetzte Entitäten), und die resultierende Antwort wird anderen Entwicklern nützlich sein. Es beinhaltet keinen Code zu schreiben. Siehe meine Antwort unten. –
Danke für die Antwort @Dan Imrie-Situnayake. Ich hatte diesen Ansatz versucht. Das Problem hier ist jedoch, dass wir alle Synonyme angeben müssen, wenn wir die Entität "Frucht" definieren.In einem breiteren Szenario, sagen wir für eine Anwendung, die es Ihnen erlaubt, Lebensmittel hinzuzufügen, wird es Tausende von Werten geben, die das "Obst" annehmen kann, es scheint nicht skalierbar zu sein. Haben wir eine andere Möglichkeit, dies zu tun, ohne Synonyme für die "Frucht" zu definieren? –
@ Alec Fenichel. Wie von Dan erwähnt, handelt es sich hierbei um eine Frage, wie dialogflow composite entities für diesen Anwendungsfall verwendet werden. –