如何在机器人框架中提出开放性问题?

How to ask open questions in bot framework?

我正在使用 Bot Framework、C# Bot Builder 和 FormFlow(使用 FieldRelfector)构建一个聊天机器人。 在某个步骤中,我需要向用户提出一个开放性问题,例如 "Add any other relevant information",我只想收集一些文本并将其存储以备后用。 我试图将变量定义为字符串:

    [Prompt("Add any other relevant information")]
    public string OpenText;

在表单链中我有:

    .Field(new FieldReflector<MyForm>(nameof(OpenText))
                        .SetType(null)
                        .SetActive(state => !state.Finished()))

但这无济于事,无论我输入什么,机器人都会回答:

   "blah blah" is not a open text option.

如何处理?

您为此使用 FieldReflector 是否有任何原因 属性?我建议只为 属性 定义一个普通字段(你可以有一个表单,其中的字段用 FieldReflector 定义,字段只用 Field 定义)。

只需使用:

.Field(nameof(MyForm.OpenText), state => !state.Finished())

如果有理由使用 FieldReflector,请使用完整的表单定义更新 post。