paper2skills Playbook

Data-to-Dashboard — 多Agent智能可视化生成

Skill-Data-to-Dashboard-Multi-Agent-Visualization · 09-DataAgent-LLM

causalexperimentoptimizationmulti_agentvisual_generation广告与投放供应链与补货客服与VOCMAS与智能体工程视觉内容生成WF-A 智能补货WF-B 广告优化WF-C 客服分诊
年化 ROI8.6万
业务视角
适用角色数据分析师 / 运营负责人 · CEO · 供应链负责人
适用平台Amazon SP API · Shopify · TikTok Ads API · 多平台数据整合
什么情况下用数据需求太多,数据团队排期 2 周;非技术人员(采购/客服/运营)有数据问题但不会 SQL;重复报表占用大量时间
成功是什么样的业务方用自然语言自助查数据,常规报表自动化,数据驱动决策响应速度从「天」变「分钟」
业务痛点
数据需求排期太长不会 SQL 只能等数据团队老板临时要数据没法马上出分析师时间都花在取数上

1. 解决的问题

Data-to-Dashboard 的核心思想是模拟商业分析师的工作流——不是让 LLM 直接生成图表,而是先理解数据背后的业务洞察,再基于洞察选择最合适的可视化表达方式。

2. 核心算法逻辑

DatatoDashboard 的核心思想是模拟商业分析师的工作流——不是让 LLM 直接生成图表,而是先理解数据背后的业务洞察,再基于洞察选择最合适的可视化表达方式。

3. 业务应用场景

背景:运营团队每周需要整合 Amazon/Shopify/SHEIN 三平台数据制作周报仪表板,涉及 15+ 张图表,人工制作耗时 3-4 小时。

Agent工作流: 1. Domain Detection:识别数据领域 —— 跨境电商销售分析 2. Concept Extraction:提取关键指标 —— GMV、ROI、退货率、广告 spend、SKU 动销率 3. Multi-Perspective Analysis: - 时间视角:各平台 GMV 周趋势对比 - 分布视角:SKU 销量分布(帕累托分析) - 关联视角:广告 spend 与 ROI 相关性 - 异常视角:退货率异常时段识别 4. Self-Reflection:检查洞察 —— "Shopify 退货率突增是否与其他指标联动?" 5. Insight-to-Chart

预期效果:3-4 小时/周 → 5 分钟,且图表选择更符合分析目的。

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • 假设运营团队3人,每人每周制作仪表板耗时3小时
  • 人力成本按¥200/小时计算
  • 使用Agent后:3人 x 3小时 x ¥200 = ¥1800/周 → ¥150/周(API成本)
  • 年节省:约 ¥8.6万
  • DeepAnalyze 解决"分析什么"(生成洞察报告)
  • Data-to-Dashboard 解决"怎么看"(生成可视化图表)

7. 代码模板

代码块数量:4 · 路径:未检测到

"""
Data-to-Dashboard: Multi-Agent LLM Framework for Insightful Visualization
基于两阶段多Agent架构的智能可视化生成

论文: Data-to-Dashboard: Multi-Agent LLM Framework for Insightful Visualization
arXiv: 2505.23695
开源: https://github.com/77bvC/D2D_Data2Dashboard

⚠️ 安全警告:本原型使用 exec() 执行LLM生成的代码。
生产环境必须:
1. 使用 Docker 沙箱或 RestrictedPython 限制执行环境
2. 仅暴露白名单API(禁止文件系统写操作、网络访问)
3. 设置执行超时(如30秒)
4. 禁用危险内置函数(__import__, open, eval, exec)
"""

import os
import re
import io
import json
import contextlib
from typing import List, Dict, Any, Optional, Tuple
from dataclasses import dataclass, field
from enum import Enum

import pandas as pd
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from openai import OpenAI


class AgentRole(Enum):
    DOMAIN_DETECTOR = "domain_detector"
    CONCEPT_EXTRACTOR = "concept_extractor"
    PERSPECTIVE_ANALYZER = "perspective_analyzer"
    SELF_REFLECTOR = "self_reflector"
    VISUALIZATION_SELECTOR = "visualization_selector"
    CHART_GENERATOR = "chart_generator"


@dataclass
class Insight:
    """数据洞察"""
    perspective: str
    description: str
    confidence: float
    supporting_data: Dict[str, Any] = field(default_factory=dict)


@dataclass
class ChartSpec:
    """图表规格"""
    insight: Insight
    chart_type: str
    title: str
    x_label: str
    y_label: str
    code: str

8. 论文来源

  • 2505.23695