如何让选择按钮在聊天 window 中显示一个值,但在后端使用不同的值?

How can I have a choice button display one value in the chat window but use a different one on the back end?

我在后端 (GO) 上寻找单个值时收到提示,但一些客户将其视为 GO,而其他客户将其视为 SO。我知道我可以为 GO 按钮添加一个同义词,但这可能会让一些客户感到困惑,我想显示一个单独的 SO 按钮。没问题,我添加了另一个按钮,标题为 'SO',值为 'GO'。如果用户键入 SO,一切都会按预期进行。但是如果他们点击 SO 按钮,它会在聊天 window 中显示 'GO'。这是一个小小的不便,但我宁愿这显示他们实际点击的值(同时仍在后端发送 'GO')。有没有办法用选择按钮来完成这个?这是我的提示语句:

return await step.prompt(CRITERIA_PROMPT, {
    prompt: 'Is this a GO, SO or PO number?',
    choices: [
        {value: 'GO', action: {type: 'imBack', title: 'GO', value:'GO'}, synonyms: ['General Order']},
        {value: 'GO', action: {type: 'imBack', title: 'SO', value:'GO'}, synonyms: ['Sales Order']},
        {value: 'PO', action: {type: 'imBack', title: 'PO', value:'PO'}, synonyms: ['Purchase Order']}
    ]
});

所以这是一个非常简单的修复,但由于答案在 Choice 文档中并不明显,我将其添加到此处以帮助其他人。选择中的第一个 value 是发送到后端的内容, action 对象中的 value 是聊天中显示的内容。所以我只需要更新 action 对象中的值,一切都按预期开始工作。更新后的代码是

return await step.prompt(CRITERIA_PROMPT, {
    prompt: 'Is this a GO, SO or PO number?',
    choices: [
        {value: 'GO', action: {type: 'imBack', title: 'GO', value:'GO'}, synonyms: ['General Order']},
        {value: 'GO', action: {type: 'imBack', title: 'SO', value:'SO'}, synonyms: ['Sales Order']},
        {value: 'PO', action: {type: 'imBack', title: 'PO', value:'PO'}, synonyms: ['Purchase Order']}
    ]
});