一分钟内从提示词生成仪表板,成本降低 5 倍:Kibana 中的 AI 仪表板和自定义 Vega-Lite 图表

作者:来自 Elastic Marta Bondyra 及 Teresa Alvarez Soler

用自然语言描述你的指标,Kibana 的 AI 聊天会生成由 ES|QL 支持的仪表板和 Vega-Lite 图表,从散点图到条件格式和自定义工具提示。

Kibana 的 AI 聊天现在可以根据自然语言提示,在不到一分钟内构建完整的 Elasticsearch Query Language( ES|QL )支持的仪表板。在 Elastic 9.5 中,该功能正式发布( GA )(在 9.4 中为技术预览版),新增了错误恢复能力,可自动重试失败的查询;通过分层模型路由将 ES|QL 生成成本降低 5 倍;并支持交互式过滤控件。

此次发布还新增了通过自然语言创建 Vega-Lite 图表的能力,包括散点图、箱线图、条件格式以及自定义工具提示,而这些功能通常需要手动编写 JSON 才能实现。

Kibana AI 仪表板创建功能有哪些新内容?

能力技术预览版(9.4)正式发布(9.5)
错误处理ESQL 查询失败后不会重试
ESQL 生成成本所有查询均通过主模型路由
时间范围固定默认窗口根据数据时间分布自动选择
过滤控件不支持会自动为最相关字段添加
Vega-Lite 图表不支持支持通过自然语言创建,包括散点图、箱线图、条件格式和自定义工具提示
图表编辑不支持支持通过自然语言编辑现有 Vega-Lite 面板

AI 仪表板生成的自动错误恢复

在技术预览版中, agent 不会重试失败的 ES|QL 查询。在 9.5 中,它能够检测查询错误,并最多重试三次,在放弃之前检查每次错误并调整查询。实际使用中,这消除了大部分空面板问题,并能够首次尝试就生成正确渲染的仪表板。

为什么 Elastic 9.5 中 AI 仪表板创建成本更低?

仪表板生成过程中的每个步骤并不都需要相同级别的推理能力。在 9.5 中, ES|QL 生成默认通过更轻量级的模型进行路由,仅在需要时才回退到主模型。如果你的连接器使用 Anthropic 的 Claude Opus 4.8,那么所有面板的 ES|QL 生成成本都会降低 5 倍。

基于数据自动选择时间范围

只有展示正确时间窗口的数据,仪表板才真正有价值。现在, agent 会应用改进后的逻辑,根据正在查询的数据选择合理的时间范围,除非用户指定了特定时间范围。

它会考虑数据的时间分布并进行相应调整,例如实时事件可能选择最近一小时,而趋势分析可能选择最近 90 天,而不是固定使用默认时间窗口。

AI 生成仪表板中的自动过滤控件

仪表板创建现在支持控件( controls ),也就是交互式过滤器,允许查看者根据字段值缩小仪表板范围,而无需编辑底层查询。

在生成仪表板时, agent 会自动在顶部添加控件,用于过滤最相关的字段。

通过自然语言创建 Vega-Lite 图表:超越默认设置的图表类型和格式

Vega 和 Vega-Lite 在 Kibana 中支持广泛的图表类型和自定义功能。在 9.5 中,你可以通过自然语言创建这些图表,而无需自己编写代码。

散点图、箱线图以及更多 Vega-Lite 图表类型

Vega-Lite 支持多种图表类型,包括散点图、箱线图、分面小倍图( faceted small multiples )、气泡图以及组合图表(例如将直方图与热力图结合)等。

例如,输入类似“显示响应时间与请求大小之间关系的散点图,并根据服务名称着色”的提示词,会生成一个具有正确数据映射的 Vega-Lite 面板。

这些图表会使用 Kibana 的默认调色板,与仪表板中的其他内容保持一致。

展示四种不同 Vega-Lite 图表的仪表板:箱线图、散点图、小倍图以及带边缘直方图的热力图。

标准图表中的条件格式、自定义工具提示和标签

即使对于仪表板中已经原生支持的图表类型,例如柱状图、折线图或面积图,有时你仍然需要比默认功能更多的控制能力。通过聊天使用 Vega-Lite 可以填补这一空白。一些示例包括:

  • 条件颜色格式:根据阈值以不同颜色显示数据点;例如,当某个指标超过你的服务级别目标( SLO )时,将折线图中的数据点或柱状图中的柱子显示为红色。你可以向 agent 提出类似这样的请求:“将我的折线图中所有超过 500ms 的点标记为红色。”

  • 自定义标记和标签:为数据点添加 emoji、符号或内嵌文本标签,以便快速查看状态指示信息。

  • 自定义工具提示:通过额外的指标、上下文信息或计算值丰富悬停状态,这些信息不属于图表坐标轴的一部分。你可以提出类似这样的请求:“添加一个工具提示,显示总记录数量以及每个柱状图所占的百分比。”

这同样适用于编辑现有的 Vega 图表。如果你有一个需要调整的 Vega-Lite 面板,例如修改颜色比例、调整坐标轴或切换标记类型,可以直接在聊天中描述修改内容,而无需深入修改 JSON 代码。

我们如何在 Kibana 中构建自然语言 Vega-Lite 生成能力

根据一句话生成 Vega-Lite 图表,并不是简单地向模型发送一个“生成 JSON”的提示词请求。我们构建了一个小型 agent 流程,将自然语言意图转换为经过验证、基于真实数据的图表。

当收到请求时, agent 首先判断 Vega-Lite 是否适合该场景。对于 Vega-Lite 请求,它会基于 Elasticsearch 中真实的 ES|QL 查询为可视化提供数据依据,然后使用模型生成 Vega-Lite 代码。在渲染之前,结果会经过一个标准化层,用于修正 schema 并绑定规范化查询。同时,它还会应用渲染安全转换。

一些设计选择使该工作流更加可靠:

  • 类型化工具调用:图表创建是结构化工具调用,而不是将自由格式的 Vega-Lite 代码直接粘贴到对话中。
  • 受约束生成:模型会在定义好的 schema 范围内生成 Vega-Lite 代码,使输出更加可预测,也更容易验证。
  • 精选示例:结构模式,例如分面、分层标记和热力图,为模型提供指导,而不会复制底层数据。
  • 执行与验证循环:在编写图表之前会先执行查询,验证失败时会触发针对 ES|QL 生成的修正重试。

在 Kibana 中尝试 AI 仪表板创建和 Vega-Lite 图表

要尝试自然语言仪表板创建和 Vega-Lite 图表,请升级到Elastic 9.5(或开始免费试用),然后在 Kibana 中打开聊天功能。接着,请它根据你的数据构建仪表板。

对于 Vega-Lite,可以尝试请求一种你一直想使用但从未创建过的图表类型,例如散点图或气泡图。如果生成的结果不完全符合预期,可以告诉 agent 需要修改什么。它会与你一起进行迭代。

此功能需要 Enterprise 许可证。开始使用。

本文中描述的任何功能或特性的发布时间和安排均由 Elastic 自行决定。目前尚未提供的任何功能或特性可能不会按时交付,甚至可能不会交付。

原文:https://www.elastic.co/search-labs/blog/ai-dashboards-kibana-vega-lite