← 返回 技术博客

技术文章

嵌入式BI + ChatBI:打造无缝嵌入的对话式分析体验实战指南

在企业级SaaS产品的演进过程中,数据分析能力的交付形态正在经历一场静默的革命。从最初的独立报表模块,到嵌入业务页面的图表组件,再到如今能够用自然语言交互的智能分析助手——数据分析正在从“功能”演变为“环境”,从“工具”演变为“伙伴”。

2026/03/8技术博客HENGSHI10 分钟阅读
嵌入式BI衡石科技ISV/SAAS 厂商BI数据分析ChatBI
嵌入式BI + ChatBI:打造无缝嵌入的对话式分析体验实战指南

Article body

正文

在企业级SaaS产品的演进过程中,数据分析能力的交付形态正在经历一场静默的革命。从最初的独立报表模块,到嵌入业务页面的图表组件,再到如今能够用自然语言交互的智能分析助手——数据分析正在从“功能”演变为“环境”,从“工具”演变为“伙伴”。

这场革命的核心驱动力,是嵌入式BIChatBI的深度融合。嵌入式BI让分析能力“无处不在”,ChatBI让分析交互“无师自通”。当两者结合,用户可以在业务发生的任何节点,用最自然的对话方式获取数据洞察,无需切换系统,无需学习工具。

本文将站在SaaS厂商技术决策者的视角,以衡石科技的实践为蓝本,提供一份从架构设计到代码落地的完整实战指南。


一、融合架构:从“嵌入功能”到“融入体验”

在开始集成之前,我们需要先理解嵌入式ChatBI的架构设计理念。

1.1 传统嵌入式BI的局限

传统嵌入式BI通常采用IFrame方式,将整个仪表板作为黑盒嵌入。这种模式存在天然缺陷:

  • 交互隔离:用户无法与仪表板内的元素进行细粒度交互

  • 上下文割裂:仪表板无法感知宿主页面的业务上下文

  • 体验断层:视觉风格难以完全融合,用户能感知到“进入了另一个系统”

1.2 衡石的融合架构

衡石科技的嵌入式ChatBI采用组件化+API化的架构:

text

宿主应用前端 → 衡石UI组件库(React/Vue/Web Component)              ↓        衡石API网关(认证/上下文/查询)              ↓      衡石语义层(指标/维度/权限)              ↓          数据源层

这一架构的核心特点是:

  • 组件级嵌入:图表、筛选器、对话输入框都可作为独立组件嵌入

  • 上下文感知:组件自动捕获宿主页面信息,传递给查询引擎

  • API开放:所有能力通过API暴露,支持深度定制


二、第一步:上下文感知的嵌入设计

嵌入式ChatBI与普通ChatBI的最大区别在于:它知道用户正在做什么

2.1 上下文捕获机制

当用户在CRM的客户详情页打开AI助手时,我们希望系统自动理解:“这个客户”指的是当前页面的客户。衡石通过以下机制实现:

前端上下文注入

jsx

<ChatAssistant  context={{    page: 'customer-detail',        // 页面类型    entityId: currentCustomer.id,    // 实体ID    entityType: 'customer',          // 实体类型    filters: {                       // 当前筛选条件      dateRange: 'last30days',      region: currentUser.region    },    user: {                          // 用户信息      id: currentUser.id,      role: currentUser.role,      permissions: userPermissions    }  }}/>

自动上下文解析当用户提问“这个客户上个月买了什么”时,系统自动:

  1. 从上下文中获取entityId=12345

  2. 将问题解析为:“查询客户ID=12345在2025年2月的购买记录”

  3. 附加权限过滤:确保当前用户有权查看该客户数据

2.2 动态上下文继承

在多轮对话中,上下文需要持续继承和演化:

javascript

// 第一轮用户:这个客户最近有异常吗?系统:该客户近30天登录次数下降80%,3个工单未解决// 第二轮(自动继承上一轮的“该客户”)用户:和上个月比呢?系统:对比1月,登录次数下降60%,工单数量增加2个// 第三轮(用户指定新实体,部分继承上下文)用户:再看看华东区的同类客户系统:华东区同行业客户平均登录次数下降20%,该客户低于平均水平

前端SDK维护会话ID和上下文栈,每次请求携带完整的历史上下文快照。


三、第二步:自然语言交互的工程实现

上下文感知解决了“在哪里”的问题,自然语言交互则解决“怎么问”的问题。

3.1 意图识别与实体解析

衡石的NL2Query引擎采用多阶段解析架构

阶段一:意图分类识别用户想要执行的操作类型:

  • 查询类:“销售额是多少?”

  • 对比类:“和上个月比怎么样?”

  • 归因类:“为什么下降?”

  • 预测类:“下个月会怎样?”

阶段二:实体识别从问题中提取关键实体:

  • 指标:“销售额”、“客单价”、“活跃用户”

  • 维度:“华东区”、“手机产品线”、“新客户”

  • 时间:“上个月”、“去年同期”、“最近7天”

阶段三:语义映射将业务术语映射到底层数据模型:

  • “销售额” → SUM(amount) WHERE status='paid'

  • “活跃用户” → COUNT(DISTINCT user_id) WHERE last_login > now() - interval '30 days'

3.2 查询生成与优化

解析完成后,系统生成可执行的查询语句:

sql

-- 原始问题:“华东区上个月销售额top5的产品”SELECT   product_name,  SUM(amount) as sales_amountFROM sales_factJOIN product_dim ON sales_fact.product_id = product_dim.idWHERE   region = '华东'   AND date >= '2025-02-01'   AND date <= '2025-02-28'GROUP BY product_nameORDER BY sales_amount DESCLIMIT 5

查询优化策略

  • 下推优化:尽可能将计算下推到底层数据库

  • 预聚合命中:识别是否可以使用物化视图

  • 缓存检查:相同查询是否已有缓存结果

3.3 结果呈现与可视化

查询结果需要以最适合的形式呈现。衡石的智能可视化引擎自动决定:

  • 单值结果:大号数字展示,如“总销售额:1,280万”

  • 多行多列:表格展示,支持排序和筛选

  • 时间趋势:折线图,可选柱状图

  • 分类对比:柱状图或饼图

  • 地理分布:地图

可视化结果还可以嵌入宿主页面的任意位置:

jsx

<ChatAssistant  onResult={(result) => {    if (result.type === 'time-series') {      // 将趋势图渲染到页面的主图表区域      updateMainChart(result.chartData);    }  }}/>


四、第三步:权限与多租户的穿透设计

嵌入式场景中,用户可能从多个入口访问数据,权限控制必须贯穿始终。

4.1 三层权限模型

衡石实现认证层-数据层-字段层的三层穿透:

认证层:通过JWT令牌传递用户身份

json

{  "user_id": "u12345",  "tenant_id": "t67890",  "role": "sales_manager",  "permissions": ["view_sales", "view_customer"]}

数据层:所有查询自动附加租户和行级过滤

sql

-- 原始查询SELECT region, SUM(amount) FROM sales GROUP BY region-- 实际执行(自动注入)SELECT region, SUM(amount) FROM sales WHERE tenant_id = 't67890'   AND (team_id IN (SELECT team_id FROM user_teams WHERE user_id = 'u12345'))GROUP BY region

字段层:敏感字段动态脱敏

  • 普通销售查看客户列表:姓名显示,电话显示后四位

  • 销售总监查看:姓名显示,电话全显

  • 财务查看:同时显示交易金额

4.2 动态数据源路由

对于采用物理隔离的大客户,系统需要动态路由到正确的数据源:

javascript

// 租户配置示例{  "t67890": {    "datasource": {      "type": "mysql",      "host": "db-tenant-a.company.com",      "database": "sales_db",      "schema": "tenant_67890"    }  },  "t67891": {    "datasource": {      "type": "snowflake",      "account": "tenant-b.snowflakecomputing.com",      "warehouse": "TENANT_B_WH"    }  }}

当租户t67890的用户发起查询时,系统自动路由到对应的MySQL实例。


五、第四步:可执行洞察的闭环设计

数据分析的最终价值是驱动行动。嵌入式ChatBI应该让用户从洞察直接进入行动。

5.1 行动按钮的动态生成

根据洞察类型和用户角色,系统动态生成可执行的操作:

json

{  "insight_id": "insight_12345",  "title": "客户流失风险预警",  "content": "客户'XX科技'近30天登录次数下降80%,3个售后工单未解决",  "actions": [    {      "label": "创建跟进任务",      "type": "api_call",      "endpoint": "/api/tasks",      "method": "POST",      "payload": {        "type": "customer_followup",        "customer_id": "{{context.customerId}}",        "priority": "high",        "due_date": "2025-03-06",        "description": "客户活跃度异常,需跟进"      }    },    {      "label": "发送预警邮件",      "type": "api_call",      "endpoint": "/api/notifications/email",      "payload": {        "to": "sales_manager@company.com",        "template": "customer_risk_alert",        "customer_id": "{{context.customerId}}"      }    },    {      "label": "查看客户详情",      "type": "navigation",      "url": "/customers/{{context.customerId}}/details"    }  ]}

5.2 与业务系统的深度集成

行动按钮需要与SaaS产品的业务系统无缝对接。衡石支持两种集成方式:

API直接调用:前端直接调用宿主应用的API,实现即时操作

事件机制:前端触发自定义事件,宿主应用监听并处理

javascript

// 衡石组件触发事件window.dispatchEvent(new CustomEvent('hengshi:action:execute', {  detail: { actionId: 'create_task', payload: {...} }}));// 宿主应用监听window.addEventListener('hengshi:action:execute', (e) => {  if (e.detail.actionId === 'create_task') {    createTask(e.detail.payload);  }});

5.3 决策闭环的数据反馈

用户执行操作后,系统记录结果,形成反馈闭环:

  • 用户是否采纳了建议?

  • 采纳后问题是否解决?

  • 哪些类型的洞察转化率最高?

这些反馈用于持续优化AI代理的推荐模型。


六、实战案例:CRM中的智能分析助手

让我们通过一个完整案例,串联整个集成流程。

6.1 场景设定

某CRM SaaS厂商希望为销售团队打造一个智能分析助手,实现:

  • 在客户详情页直接提问客户相关数据

  • 在销售看板中支持自然语言下钻

  • 在审批流程中实时提供决策支持

6.2 集成步骤

步骤一:安装衡石SDK

bash

npm install @hengshi/chatbi-react

步骤二:在客户详情页嵌入AI助手

jsx

// CustomerDetailPage.jsximport { ChatAssistant } from '@hengshi/chatbi-react';export function CustomerDetailPage({ customer }) {  return (    <div className="customer-page">      <CustomerInfo customer={customer} />            <ChatAssistant        context={{          page: 'customer-detail',          entityId: customer.id,          entityType: 'customer',          userRole: currentUser.role        }}        position="inline"        placeholder="问我关于这个客户的问题..."        onAction={handleAction}      />    </div>  );}

步骤三:在销售看板中嵌入智能下钻

jsx

// SalesDashboard.jsximport { ChartWidget, ChatInput } from '@hengshi/chatbi-react';export function SalesDashboard() {  const [chartData, setChartData] = useState(null);    return (    <div>      <h1>销售看板</h1>            <ChatInput        placeholder="输入问题下钻数据..."        onQueryResult={(result) => {          // 将查询结果渲染到主图表          setChartData(result.chartData);        }}      />            {chartData && <ChartWidget data={chartData} />}            <div className="dashboard-grid">        <ChartWidget metric="total_sales" />        <ChartWidget metric="conversion_rate" />        <ChartWidget metric="avg_deal_size" />      </div>    </div>  );}

步骤四:在审批页面嵌入智能决策支持

jsx

// ApprovalPage.jsximport { InsightCard } from '@hengshi/chatbi-react';export function ApprovalPage({ approval }) {  // 根据审批类型自动获取相关洞察  const insightContext = {    type: approval.type,    entityId: approval.customerId,    amount: approval.amount,    discount: approval.requestedDiscount  };    return (    <div>      <h1>审批详情</h1>            <InsightCard        context={insightContext}        autoRefresh={true}        onAction={handleAction}      />            <ApprovalForm onSubmit={handleSubmit} />    </div>  );}

6.3 上线效果

集成上线后,该CRM产品实现了:

  • 用户活跃度:AI助手日均使用量是传统报表模块的5倍

  • 决策效率:审批平均耗时从9.6小时降至1.7小时

  • 用户满意度:NPS提升22个百分点,客户反馈“感觉产品懂我了”

  • 研发效率:报表定制需求减少80%,研发团队专注于核心功能


七、性能优化与监控

嵌入式场景对性能要求极高。衡石提供多级优化策略:

7.1 查询性能优化

  • 多级缓存:结果缓存、预聚合缓存、元数据缓存

  • 查询下推:尽可能让数据库执行计算,减少数据传输

  • 异步计算:复杂查询后台异步执行,前端先返回初步结果

7.2 前端性能优化

  • 组件懒加载:AI助手组件按需加载,不阻塞主页面渲染

  • 虚拟滚动:大量结果数据时使用虚拟滚动,避免DOM爆炸

  • Web Worker:复杂计算在Worker线程执行,不阻塞UI

7.3 监控与诊断

  • 性能指标:API响应时间、模型推理时间、查询执行时间

  • 准确率监控:用户反馈、隐式行为分析、定期人工抽检

  • 异常告警:准确率突降、响应时间飙升时自动告警


八、未来演进:从“被动回答”到“主动服务”

当前实现的嵌入式ChatBI主要处于“被动回答”阶段——用户提问,系统回答。未来的演进方向是“主动服务”:

8.1 主动式洞察推送

系统不再等待用户提问,而是在发现异常时主动推送:

  • 当客户活跃度骤降时,在CRM页面弹出预警

  • 当库存低于安全线时,在采购页面显示补货建议

  • 当销售目标可能无法达成时,在看板顶部展示预警

8.2 预测性干预

基于历史数据预测未来,在问题发生前干预:

  • 预测某客户可能流失,提前推送挽留策略

  • 预测库存将在3天后告急,自动生成采购单

  • 预测销售目标可能无法达成,推荐调整策略

8.3 多智能体协同

不同业务领域的AI代理相互协作:

  • 销售代理发现业绩下滑,请求营销代理分析渠道效果

  • 营销代理建议调整投放策略,通知财务代理评估预算

  • 财务代理确认预算可行,自动调整广告投放计划


九、结语:让数据成为业务的一部分

嵌入式ChatBI的终极价值,在于让数据分析不再是独立的“任务”,而是融入业务流的“自然行为”。当用户在CRM中就能像聊天一样查询客户数据,在审批流中就能实时获得决策支持,在IM群中就能秒级获取业务洞察——数据终于不再是被动查看的报表,而是主动参与决策的伙伴。

对于SaaS厂商而言,集成嵌入式ChatBI不仅是功能的增强,更是产品体验的代际跃升。当每一个业务节点都能实时获取数据洞察,你的产品就从“记录工具”进化为“决策伙伴”,从“功能平台”进化为“智能环境”。

衡石科技提供的技术底座,正在让这一愿景在越来越多的SaaS产品中成为现实。从看板插件到审批助手,从IM机器人到移动应用,数据分析正无声地赋能每一个业务现场。而这,正是“嵌入式BI + ChatBI”融合的终极价值。


HENGSHI SENSE

丰富的资源 完整的生态

邀您成为衡石伙伴

立即加入

企业级部署、产品集成与试用咨询均可快速响应