問題タブ [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 - Slack またはエミュレーターでは正常に動作するのに、Skype ボットが「申し訳ありませんが、ボット コードに問題があります」と応答する
ボットを Skype で動作させるのに問題があります。ボットからの唯一の応答は、「申し訳ありませんが、ボットのコードに問題があります」というものです。Slack でボットをテストし、MS botframework チャネル エミュレーターを使用してテストしましたが、正常に動作しているので、なぜ応答しないのか少し当惑しています。
応答を処理するために LUIS を使用しない場合、応答します。
とは対照的に
しかし、LUIS 統合コードは、Slack またはボット フレームワーク チャネル エミュレーターを使用してもまったく問題はありません。記録として、Skype のバージョンは最新であり、ボット フレームワークの最新バージョンを使用しています。Skype で動作させるために必要な変更はありますか? 「申し訳ありませんが、私のボットコードに問題があります」よりも多くの情報を取得できるように、問題をデバッグする方法はありますか?
ありがとう。
botframework - replaceDialog またはその他の方法で Luis を呼び出す
ボット ビルダーには、LuisRecognizer と、メッセージを投稿してインテントとエンティティを取得する作業を行うその他の組み込みクラスが付属しています。
replaceDialog のように、新しいウォーターフォール/クロージャーを開始するのに役立ちますが、ビルドされたボットビルダー クラスで使用してルイスに投稿し、一致に基づいてそれぞれのウォーターフォール シーケンスを呼び出す方法はありますか?
以下を試しました。
session.replaceDialog('/')。これは luis レコグナイザーを再度呼び出していないように見えるため、dialog.matches も呼び出されません。
bot.receive(メッセージ). これは luis 呼び出しを実行せず、メッセージの意図とも一致しません。さらに、デフォルトでは、間違ったシーケンス ( bot.receive を呼び出す親シーケンス) に再び入るようです。
IntentDialog.recognizeとintentDialog.invokeAction。認識はメッセージの認識に失敗します。
私は何を間違っていますか?ボットビルダー クラスを再利用する方法はありますか? Luis api を呼び出すための単純な REST クライアントを作成することを考えることができます。しかし、botbuilder のレコグナイザー クラスとインテント ダイアログ クラスの目的はまったく同じであるため、これは最後の手段です。
f# - Microsoft の Luis 用の F# Type Provider を作成する良い方法は何ですか?
Microsoft の Luis + bot フレームワークをいじってみると、「これは良い型プロバイダーになるだろう」という感覚がうずき始めました。残念ながら、型プロバイダーは判別共用体を出力できません。私は次のようなことをしたいと思っていましたが、それは不可能です:
Luis のインテントとそのパラメーターはすべて Api を介して利用できるため、typeProviderization の優れた候補となります
参考までに、サンプルの C# ボットのハンドラーを次に示します (F# ではよりクリーンで、よりタイプ セーフになると思います)。
とにかく質問は: 型プロバイダーの構築経験が豊富な人は、実際に構築可能な読み取り可能な DSL を構築する方法について何か良いアイデアを持っていますか?
azure-language-understanding - LUIS エンティティのスペルミスを処理する方法
映画ボットだとしましょう。エンティティ MovieName と、映画を含むフレーズ リストを追加しました。映画の名前の 1 つに「スター ウォーズ」があります。ユーザーがスペルを間違って「Stra Wra」と入力した場合、どうすればこの問題に対処できますか? Bing のスペル チェック サービスは、英語以外の映画の名前に役立ちますか?
c# - 属性経由以外で LuisDialog にモデルとサブスクリプション キーを渡す
2 つの言語を話すことができるボットを作成しています。したがって、2 つの個別の LUIS アプリ (言語ごとに 1 つ) を使用する必要があります。
Bot Framework の LuisDialog は、次のように初期化されます (Microsoft の例)。
ただし、決定したユーザーの言語に応じて、動的なアプリ ID とサブスクリプション キーを使用する必要があります。
2 つの LUIS アプリのすべてのメソッド、インテントなどは同じです。
C# の属性を動的にすることはできません。
アプリとサブスクリプション キーをハードコーディングする代わりに LuisDialog に動的に渡す別の方法は何ですか?