問題タブ [azure-language-understanding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
botframework - ダイアログがdialog.matchesを使用して定義されているreplaceDialog()
LUIS をチャットボットに統合しました。ほとんどすべてのダイアログは、dialog.matches() を使用して定義されています。問題は、一部のダイアログを他のダイアログにリダイレクトする必要があるが、replaceDialog
dialog.matchesbeginDialog
を使用して定義されたダイアログでは機能していないように見えることです。例: 次のダイアログを検討してください
他のダイアログから手動で呼び出すにはどうすればよいですか? session.replaceDialog('startActivity')
エラーをスローします。
github でこの問題を参照してください
c# - IDialogContext からアクティビティ情報を取得する方法
私は LuisDialog を使用していますが、コールバックが返すのは IDialogContext と LuisResult だけです。名前などから、チャネルなどの元のアクティビティから情報を取得する方法はありますか?
nlp - 小文字で返される LUIS エンティティ
LUISを使用して、送信しているテキストからインテントやエンティティを抽出しています。問題は、エンティティを検出すると小文字で送り返すことです。
これを構成または回避する方法はありますか?
c# - Microsoft Bot Framework で「申し訳ありませんが、私のボット コードに問題があります」を回避する方法
Azure + Bot Framework + LUIS (LuisDialog 経由) で実行されるボットがあります。
ユーザーが (ボットが応答する前に) 2 つのメッセージを立て続けに送信すると、Facebook Messenger または Web 埋め込みに次のエラー メッセージが表示されます。
申し訳ありませんが、ボット コードに問題があります。
ボット チャネル エミュレーターを使用してデバッグすると、次のようなエラーが表示されます。
"text": "エラー: 応答ステータス コードが成功を示していません: 429 (要求が多すぎます)。System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) でMicrosoft.Bot.Builder.Luis.LuisService.d__4.MoveNext()
スタック トレースの最後は、エラーが MessageController.cs の次の行で発生したことを示しています。
1 秒あたり最大 10 回の呼び出しが可能な LUIS の有料バージョンを使用しているため、これは奇妙です。
いずれにせよ、MessageController.cs のコード全体をtry/catch
ブロックにラップし、例外に関係なくこの値を返すようにしました。
それでも、ユーザーには「申し訳ありませんが、ボット コードに問題があります」というエラー メッセージが表示されます。これは、基本的に未処理の例外があることを意味します。
このメッセージがユーザーに表示されないようにする、または例外をキャッチするにはどうすればよいですか?
c# - LUIS 応答は、不正な要求でエラーをスローします
Luis を自分の BOT に統合し始めました。LUIS クエリはブラウザーでうまく機能しますが、コードから呼び出すと、LUIS GetResult からの応答でエラーがスローされます。
LUIS クエリはこちら
ダイアログのソースコード:
MessageController ソースコード:
デバッグしようとすると、BOT エミュレーターで次のエラー (部分的な抜粋のみ) が表示されます。
c# - 2 番目のステップでエンティティに尋ねる BOT
シンプルなカスタマー サービス BOT を構築し、LUIS モデルを設計しました。最初のステップ自体で提供されます。たとえば。私の注文 ABC0898787 のステータスはどうですか? 意図が正しく検出され、ABC0898787 がエンティティとして識別されます。
ただし、次のようにボットを会話に適応させる必要があります。
ユーザー: 私の注文のステータスはどうですか
ボット: 注文番号を入力してください
ユーザー: (ABC0986767 です) または (ABC0986767)
ボットは、番号をエンティティにマップし、リクエストを処理できる必要があります。
インテント メソッドのコード、単一の単語をエンティティとして取得するように LUIS モデルを設定せずに 2 番目のステップを統合する最良の方法は何ですか?
bots - LUIS ダイアログをフォーム ダイアログに接続し、組み込みフィールドをマッピングする
これと同様の問題があります: LUIS ダイアログをフォーム ダイアログに接続し、適切なフィールドをマッピングする
LUIS で名前を付けた builtin.number などの LUIS で組み込みエンティティを使用していることを除いて、たとえば Amount ですが、マッピングはフォーム クラスのフィールド タイプと LUIS JSON のエンティティ タイプの間でのみ行われるようです。明らかに、builtin.number という名前のフィールドを持つことはできません。
組み込みの LUIS エンティティをフォーム フィールドにマッピングするにはどうすればよいですか?
botframework - エンティティを LUIS で定義された単語のリストに一致させる方法
LUISを使用して、8 つの感情 (怒り、軽蔑、嫌悪、恐怖、幸福、中立、悲しみ、驚き) の画像をランク付けするCognitive Services Emotion APIを操作しています。
私の LUIS モデルでは、'Emotion' をエンティティとして定義し、モデルをトレーニングしました。
LUIS は感情エンティティを正しく識別していますが、それを感情 API が扱う 8 つの定義済み単語 (怒り、軽蔑、嫌悪、恐怖、幸福、ニュートラル、悲しみ、驚き) にマッピングする方法に固執しています。
たとえば、「ここで最も悲しい人は誰ですか」と送信すると、これが返されます
しかし、LUIS やその他の API を使用して、'saddest' を 'sadness' にマップするにはどうすればよいでしょうか?
c# - LUIS ダイアログ内で LUIS ダイアログを呼び出す方法は?
私のボットには、いくつかの意図を持つ LUIS ダイアログがあります。MessageController から LUIS ダイアログを呼び出します。インテントが検出された場合は、子ダイアログを開始します。子ダイアログが完了したら、そのタスクが呼び出された context.Done("response from user").
後に呼び出します。ChlildDialogDone
タスク内ChildDialogDone
で、LUIS ダイアログを再度呼び出して、ユーザーのメッセージの意図を検出したいと考えています (これは に来ます ChildDialogDone
)。このコード行が実行されると、何も起こらず、ボットはユーザーからの次のメッセージを待っていChildDialogDone
ます。context.Wait(MessageReceived).
コードは次のとおりです。
そのため、EmailDialogDone 内にはユーザーからのメッセージがあり、このメッセージで DefiningIntent ダイアログを再度実行したいと考えています。どうすればいいですか?