You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在基于Dialogflow(api.ai)的网页聊天机器人中添加快捷回复

如何给你的Dialogflow网页聊天机器人添加快捷回复按钮

我来帮你搞定这个快捷回复功能!其实原理很简单:我们要从Dialogflow的返回数据里提取预设的快捷回复选项,然后在网页中生成可点击的按钮,用户点击按钮后自动把按钮文本作为输入发送给机器人。下面是具体的修改步骤,直接对应你的代码:

1. 修改HTML结构,添加快捷回复容器

在你的spoken-response容器里,新增一个用来放快捷回复按钮的div:

<div id="spokenResponse" class="spoken-response">
  <div class="spoken-response__text"></div>
  <!-- 新增快捷回复容器 -->
  <div id="quickReplies" class="quick-replies"></div>
</div>

2. 添加快捷回复按钮的CSS样式

在你的<style>标签里,新增以下样式,让按钮看起来更美观且适配现有风格:

.quick-replies {
  padding: 1em;
  display: flex;
  gap: 0.8em;
  flex-wrap: wrap;
  background-color: #040E23;
}
.quick-reply-btn {
  background-color: #126178;
  border: 1px solid #549EAF;
  color: #A6CAE6;
  cursor: pointer;
  padding: 0.5em 1.2em;
  border-radius: 22px;
  font-size: 16px;
  font-family: "Titillium Web", Arial, sans-serif;
  transition: all 0.35s ease-in;
}
.quick-reply-btn:hover {
  background-color: #1888A9;
  color: #183035;
}

3. 修改JavaScript逻辑,处理Dialogflow的快捷回复数据

首先,更新prepareResponse函数,让它在处理语音回复的同时,调用新的函数来渲染快捷回复:

function prepareResponse(val) {
  var debugJSON = JSON.stringify(val, undefined, 2),
      spokenResponse = val.result.speech;
  
  respond(spokenResponse);
  // 新增:渲染快捷回复
  renderQuickReplies(val.result.fulfillment.messages);
  debugRespond(debugJSON);
}

然后,添加一个专门生成快捷回复按钮的函数:

function renderQuickReplies(messages) {
  const quickRepliesContainer = document.getElementById('quickReplies');
  // 先清空之前的按钮,避免重复显示
  quickRepliesContainer.innerHTML = '';
  
  // 遍历Dialogflow返回的所有消息,找到类型为"quickReplies"的消息
  messages.forEach(msg => {
    // Dialogflow中快捷回复消息的type是2,且包含replies数组
    if (msg.type === 2 && msg.replies && msg.replies.length > 0) {
      msg.replies.forEach(replyText => {
        const btn = document.createElement('button');
        btn.className = 'quick-reply-btn';
        btn.textContent = replyText;
        // 绑定点击事件:点击后自动把按钮文本填入输入框并发送
        btn.addEventListener('click', () => {
          setInput(replyText);
        });
        quickRepliesContainer.appendChild(btn);
      });
    }
  });
}

4. Dialogflow后台配置快捷回复

别忘了在Dialogflow的意图设置里添加快捷回复:

  • 打开你的Dialogflow控制台,找到要添加快捷回复的意图
  • 在“响应”部分,点击“添加响应”,选择“快捷回复”
  • 输入你想要的选项(比如"天气怎么样?"、"今天有什么活动?"),保存意图

测试效果

现在当用户触发这个意图时,网页机器人不仅会显示语音回复文本,还会在下方生成你设置的快捷回复按钮,用户点击按钮后,按钮文本会自动填入输入框并发送给机器人,完全不需要手动输入!

内容的提问来源于stack exchange,提问作者Rainer Winkler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:29:39