私はMicrosoftボットフレームワークを使用して、ユーザーに質問して回答を理解するためのボットを作成しています。ボットフレームワークでFormFlow APIを使用して質問され、回答が取得されます。ここでformflowのコードは次のとおりです。C#のFormFlowからLUISを呼び出してください
public enum Genders { none, Male, Female, Other};
[Serializable]
public class RegisterPatientForm
{
[Prompt("What is the patient`s name?")]
public string person_name;
[Prompt("What is the patients gender? {||}")]
public Genders gender;
[Prompt("What is the patients phone number?")]
[Pattern(@"(<Undefined control sequence>\d)?\s*\d{3}(-|\s*)\d{4}")]
public string phone_number;
[Prompt("What is the patients Date of birth?")]
public DateTime DOB;
[Prompt("What is the patients CNIC number?")]
public string cnic;
public static IForm<RegisterPatientForm> BuildForm()
{
OnCompletionAsyncDelegate<RegisterPatientForm> processHotelsSearch = async (context, state) =>
{
await context.PostAsync($"Patient {state.person_name} registered");
};
return new FormBuilder<RegisterPatientForm>()
.Field(nameof(person_name),
validate: async (state, value) =>
{
//code here for calling luis
})
.Field(nameof(gender))
.Field(nameof(phone_number))
.Field(nameof(DOB))
.Field(nameof(cnic))
.OnCompletion(processHotelsSearch)
.Build();
}
}
名前を尋ねられたときに、ユーザが入力することがあります。
私の名前は名前が可変長のものであってもよい。また
ジェームズ・ボンド
です。私はここからルイスに電話し、その意図の実体(名前)を得る方が良いでしょう。私は現在、フォームフローからluisダイアログをどのように呼び出すことができるかを認識していません。
'FormFlow'は本当に最善の解決策ではないかもしれませんか? –
を行いたい場合
エミュレータレスポンス
–たとえば、FormFlowを使用する代わりにダイアログを実装します。それはもっと長いですが、あなたは何でもしても構いません。 –