gpt4 book ai didi

botframework - 禁用用户键入文本框 c#

转载 作者:行者123 更新时间:2023-12-05 09:11:28 25 4
gpt4 key购买 nike

是否可以在任何 channel 中禁用 V4 机器人框架中的用户输入文本区域?我将此作为客户要求的一部分有人可以帮助我吗

enter image description here

最佳答案

您所指的框称为发送框。如果您使用 BotFramework-Web Chat ,您可以通过 styleOptions 传递值来禁用它,如下所示:

<script>
(async function () {

const styleOptions = {
hideSendBox = true
}

[...]

window.ReactDOM.render(
<ReactWebChat
directLine={directLine},
styleOptions={styleOptions}
/>,
document.getElementById( 'webchat' )
);
})
</script>

如果您使用的是网络聊天的 iFrame 嵌入式版本,则它不可配置。

希望得到帮助!


编辑

如果您希望发送框根据从机器人接收到的事件类型做出响应,那么您需要结合使用 activityMiddleware() 函数和一个事件发射器/听众。在以下示例中,当 suggestedActions 是事件属性时,我将隐藏/显示发送框。

请注意,数据值应为“none”和“flex”。特别是,当它不是 suggestedActions 时,后者的值是为了保持当前代码。

<script>
(async function () {

[...]

const activityMiddleware = () => next => card => {
const { activity: { suggestedActions } } = card;
const toggleSendBoxEvent = new Event('ToggleSendBoxEvent')
if (suggestedActions) {
toggleSendBoxEvent.data = "none";
window.dispatchEvent(toggleSendBoxEvent);
} else {
toggleSendBoxEvent.data = "flex";
window.dispatchEvent(toggleSendBoxEvent);
}

return next(card);
)

[...]

window.ReactDOM.render(
<ReactWebChat
directLine={ window.WebChat.createDirectLine({ token }) }
activityMiddleware={ activityMiddleware }
/>,
document.getElementById( 'webchat' )
);

window.addEventListener('ToggleSendBoxEvent', ( { data } ) => {
const sendBoxes = document.getElementsByClassName("main");
let send_Box;
for (let sendBox of sendBoxes) {
send_Box = sendBox;
}
send_Box.setAttribute('style', `display:${ data }`)
})

});
</script>

enter image description here

希望得到帮助!

关于botframework - 禁用用户键入文本框 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60071937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com