You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Bot Framework Service与Bot Connector Service的关系及技术实现问询

Bot Framework Service与Bot Connector Service的关系及端到端通信流程解答

我完全理解你被这两个术语混用搞懵的感觉——确实很多文档和资料里会不加区分地提到它们,我来帮你理清楚:

一、两者的核心关系:核心组件与整体服务的指代差异

简单来说,这两个术语经常被混用,但严格定义的话:

  • Bot Connector Service 是Bot Framework生态里的核心底层通信服务,它的核心作用是做“翻译官”和“路由器”:一方面把不同通道(比如Web Chat、Teams、Facebook Messenger)的消息转换成机器人能理解的标准化格式,另一方面把机器人的回复转换成对应通道支持的格式,再路由回去。
  • Bot Framework Service 是一个更宽泛的统称,用来指代整个Bot Framework提供的后端服务集合——其中就包含了Bot Connector Service,另外还有Direct Line Service、Bot管理服务、状态存储相关服务等组件。

所以你会看到很多资料里用“Bot Framework Service”来指代核心的通信层,其实本质上就是在说Bot Connector Service,这也是混用的根源。不存在谁构建在谁之上的层级关系,而是Connector是Bot Framework Service的核心组成部分。

二、Direct Line API与Bot Framework Service的关联

你的理解是对的:Web Chat组件通过Direct Line API和机器人通信,而Direct Line协议确实是由Bot Framework Service里的Direct Line组件实现的。这里的逻辑是:

  • Direct Line是Bot Framework专门为**自定义客户端(比如你自己开发的Web Chat、移动端APP)**提供的通信通道,它有自己的协议规范,让客户端不用直接对接复杂的Bot Connector协议。
  • 当Web Chat发送请求时,它先和Direct Line Service交互,Direct Line会把请求转成Bot Connector能识别的标准化Activity格式,再交给Connector去路由到机器人;反过来,机器人的回复也会经过Connector转成Direct Line协议格式,再发回给Web Chat。

三、完整的Web Chat ↔ 机器人端到端流程

我把整个流程拆成清晰的步骤,你一看就懂:

  1. 用户在Web Chat输入消息,前端组件把消息封装成符合Direct Line协议的请求,带着身份验证信息(比如Direct Line密钥)发送到Direct Line Service。
  2. Direct Line Service验证请求合法性后,将消息转换为Bot Connector标准的Activity格式。
  3. Bot Connector Service接收到Activity后,根据机器人的注册信息(比如Azure上的Bot资源配置),把消息路由到你部署好的机器人后端服务(比如Azure App Service、本地调试的Bot)。
  4. 机器人后端通过Bot Framework SDK接收Activity,处理业务逻辑(比如解析用户意图、调用知识库、生成回复内容)。
  5. 机器人生成回复的Activity消息,发送回Bot Connector Service。
  6. Bot Connector Service把回复的Activity转发给Direct Line Service,Direct Line再将其转换为符合Direct Line协议的格式。
  7. Direct Line Service通过WebSocket(推荐)或者长轮询的方式,把回复消息推送给Web Chat前端。
  8. Web Chat组件解析回复消息,渲染成用户能看懂的界面(比如文本、卡片、按钮),展示给用户。

内容的提问来源于stack exchange,提问作者Albie Morken

火山引擎 最新活动