ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DB-GPT 内置技能 walmart-sales-analyzer:从沃尔玛销售 CSV 到业务级 HTML 深度分析报告

DB-GPT 内置技能 walmart-sales-analyzer:从沃尔玛销售 CSV 到业务级 HTML 深度分析报告 DB-GPT 内置技能 walmart-sales-analyzer从沃尔玛销售 CSV 到业务级 HTML 深度分析报告【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPTwalmart-sales-analyzer 是 DB-GPT 内置的数据分析技能Skill专为沃尔玛销售数据集设计它围绕周销售额与失业率的关系展开多维度统计分析自动生成四类可视化图表并把结论封装成一份可直接交付给业务方的响应式 HTML 报告。读完本文你将掌握该技能的输入数据要求、核心工作流、各图表脚本的实现细节以及如何通过 DB-GPT 的execute_skill_script_file与html_interpreter工具链完成从数据分析到报告呈现的完整闭环。一、技能定位它解决什么问题官方文档 walmart-sales-analyzer.md 将其定义为面向沃尔玛销售数据集的内置分析技能核心关注点是周销售额与失业率之间的趋势关系并将分析结论打包为面向业务的 HTML 报告。适合它的典型场景包括分析沃尔玛销售 CSV 数据探索销售额与失业率之间的宏观关系生成门店间的对比图表与时间趋势渲染一份带业务解读的精美 HTML 报告。技能在仓库中的实际目录结构如下skills/walmart-sales-analyzer/ ├── SKILL.md ├── scripts/ │ ├── generate_html_report.py │ ├── generate_correlation_heatmap.py │ ├── generate_sales_unemployment_scatter.py │ ├── generate_time_series_trend.py │ ├── generate_store_avg_comparison.py │ └── font_setup.py └── templates/ └── report_template.html其中 SKILL.md 是技能的说明书其 frontmatter 中的name与description会被 DB-GPT 的技能加载机制读取作为 Agent 判断该用哪个技能的依据正文部分则直接指导 Agent 按什么流程执行脚本、如何填充报告占位符。二、输入数据要求CSV 必须包含哪些列技能要求提供一个沃尔玛销售 CSV 文件至少包含以下四列列名含义Store门店 IDDate日期Weekly_Sales周销售额Unemployment失业率%在仓库中可直接找到示例数据 Walmart_Sales.csv它是各图表脚本的默认输入文件名。所有脚本对输入路径的解析遵循同一套约定见 generate_html_report.py 的主入口args json.loads(sys.argv[1]) if len(sys.argv) 1 else {} data_path args.get(input_file) or args.get(file_path) or args.get(data_path, Walmart_Sales.csv) out_dir args.get(output_dir, os.environ.get(OUTPUT_DIR, .))也就是说脚本接收一个 JSON 字符串作为第一个命令行参数输入文件按input_file→file_path→data_path的优先级取值缺省时使用当前目录下的Walmart_Sales.csv输出目录取output_dir参数缺省时读环境变量OUTPUT_DIR再缺省输出到当前目录.。三、核心工作流四步完成从数据到报告技能文档与 SKILL.md 中的 Core Workflow 一致完整流程为四步校验上传文件确认用户提供的是合法的沃尔玛销售 CSV列名满足上文要求执行分析脚本通过execute_skill_script_file工具运行generate_html_report.py在args中传入input_file与output_dir。该脚本会自动生成全部图表correlation_heatmap.png、sales_vs_unemployment_scatter.png等和基础报告呈现报告调用html_interpreter工具指定template_path为walmart-sales-analyzer/templates/report_template.html并传入渲染所需的文本数据。必须动态填充全部占位符含所有章节标题、报告标题与分析内容否则对应位置会渲染为 NA且内容语言必须与用户输入语言一致结束任务调用terminate并给出最终答复总结所做操作。第 2 步的调用示例来自 SKILL.md{skill_name: walmart-sales-analyzer, script_file_name: generate_html_report.py, args: {input_file: /path/to/Walmart_Sales.csv, output_dir: .}}四、四个图表脚本的源码级实现generate_html_report.py并不是独立绘图而是依次调用四个专门的绘图函数generate_html_report.pygenerate_correlation_heatmap(data_path, output_dir) generate_sales_unemployment_scatter(data_path, output_dir) generate_time_series_trend(data_path, output_dir) generate_store_avg_comparison(data_path, output_dir)下面逐一看每个脚本的核心实现。4.1 数据相关性热力图generate_correlation_heatmap.py 读取 CSV 后对全部数值列计算相关系数矩阵并用 seaborn 热力图呈现plt.figure(figsize(10, 8)) corr df.corr(numeric_onlyTrue) sns.heatmap(corr, annotTrue, cmapcoolwarm, fmt.2f) plt.title(Walmart 销售数据相关性热力图) plt.savefig(output_path, dpi150, bbox_inchestight)要点annotTrue会在每个格子中标注相关系数保留两位小数coolwarm配色以冷色表示负相关、暖色表示正相关dpi150保证报告中的图片清晰度。输出文件为correlation_heatmap.png。4.2 销售额 vs 失业率回归散点图generate_sales_unemployment_scatter.py 使用 seaborn 的regplot一次完成散点 回归线sns.regplot(datadf, xUnemployment, yWeekly_Sales, scatter_kws{alpha: 0.3}, line_kws{color: red})散点透明度设为 0.3 以缓解高密度重叠红色回归线直观展示经济压力下消费韧性这一业务命题。输出文件为sales_vs_unemployment_scatter.png。4.3 指定门店的时间序列趋势generate_time_series_trend.py 的双轴图设计值得注意def generate_time_series_trend(data_path, output_dir, selected_stores[1, 4, 20]): ... df[Date] pd.to_datetime(df[Date], dayfirstTrue) fig, ax1 plt.subplots(figsize(12, 6)) ax2 ax1.twinx()selected_stores默认跟踪门店 1、4、20 三家可通过函数参数调整日期解析使用dayfirstTrue即按日/月/年格式理解数据源中的日期若你的数据为美国常见的月/日/年格式解析前需要自行确认左轴绘制各门店周销售额右轴twinx()用红色虚线叠画第一家门店的失业率注释中说明这样处理是因为失业率通常是区域级、各门店相近的指标输出文件为time_series_trend.png。4.4 门店平均业绩对比generate_store_avg_comparison.py 先按门店聚合再作图store_agg df.groupby(Store).agg({Weekly_Sales: mean, Unemployment: mean}).reset_index() sns.scatterplot(datastore_agg, xUnemployment, yWeekly_Sales, hueStore, paletteviridis, s100)每个点对应一家门店的平均周销售额 vs 平均失业率按门店着色用于支撑区域运营策略建议。输出文件为store_avg_comparison.png。4.5 中文字体兜底font_setup.py四个绘图脚本开头都会调用 font_setup.py 中的setup_chinese_font()。它按 macOS如 PingFang SC、Linux如 Noto Sans CJK SC、Windows如 Microsoft YaHei、SimHei的优先级遍历候选中文字体命中第一个系统已安装的字体即配置plt.rcParams[font.sans-serif]若全部缺失则仅关闭 Unicode 减号问题并让 matplotlib 自行兜底。这解释了为什么图表标题如Walmart 销售数据相关性热力图在装了中文字体的机器上能正常渲染。五、一键入口 generate_html_report.py 的输出机制generate_html_report.py 除调用四个绘图函数外还做两件事收集图片产物按固定文件名列表correlation_heatmap.png、sales_vs_unemployment_scatter.png、time_series_trend.png、store_avg_comparison.png检查输出目录把实际存在的图片打包为{output_type: image, content: 绝对路径}的 chunk落盘基础报告读取 report_template.html 模板内容写入walmart_sales_report.html最后以 JSON 形式向 stdout 输出{chunks: [...]}含图片 chunk 与文本 chunk HTML report and 4 charts generated successfully.供上层执行环境解析并回传给 Agent。这一stdout 输出 JSON chunks的约定是该技能与 DB-GPT 脚本执行工具链的对接方式——Agent 依据输出中的图片路径与状态文本判断执行结果。六、报告模板与 html_interpreter 渲染最终呈现给用户的交互式报告由 templates/report_template.html 渲染。该模板采用响应式设计max-width: 1100px容器、卡片式 section、viewportmeta主色为#0071ce、强调色#ffc220内置.analysis-box、.tag、.chart-container等样式类适合不同设备查看。Agent 通过html_interpreter工具把分析文本注入模板需要填充的占位符与示例datapayload 如下完整示例见 SKILL.md{ LANG: en, REPORT_TITLE: Walmart Sales Deep Analysis Report, REPORT_SUBTITLE: Based on macroeconomic indicators and store performance, EXEC_SUMMARY_TITLE: Executive Summary, EXEC_SUMMARY_CONTENT: pYour detailed summary.../p, SECTION_1_TITLE: 1. Multi-dimensional Correlation Analysis, SECTION_1_ANALYSIS: h3span class\tag\Insights/span Variable relationships/h3ulli.../li/ul, SECTION_2_TITLE: 2. Sales vs Unemployment Regression, SECTION_2_ANALYSIS: h3span class\tag\Deep Dive/span Resilience under pressure/h3p.../p, SECTION_3_TITLE: 3. Dynamic Trends Tracking, SECTION_3_ANALYSIS: h3span class\tag\Trends/span Seasonal vs Macro/h3p.../p, SECTION_4_TITLE: 4. Store Performance Comparison, SECTION_4_ANALYSIS: h3span class\tag\Strategy/span Regional operations/h3p.../p, CONCLUSION_TITLE: Final Conclusions Recommendations, CONCLUSION_CONTENT: olli.../li/ol, FOOTER_TEXT: Deep Data-Driven Decisions }四个分析章节与四张图表一一对应多维相关性分析热力图、销售额-失业率回归散点图、动态趋势跟踪时间序列图、门店业绩对比平均对比图外加执行摘要与最终结论建议。SKILL.md 中特别强调两点硬性要求所有占位符必须动态填充否则渲染为 NA输出语言必须与用户输入语言严格一致图表同样支持多语言显示。七、使用建议与注意事项优先使用一键入口SKILL.md 将generate_html_report.py标注为 Recommended一次运行即可产出全部图表与基础报告单图脚本热力图、散点、时序、门店对比适合按需单独重跑某一张图语言一致性无论图表还是报告文本都必须匹配用户请求语言这是 SKILL.md 的强制约束默认门店与日期格式时间序列图默认跟踪门店 1、4、20日期按dayfirstTrue解析数据源日期格式不同的场景需要预先核实运行前提脚本依赖pandas、matplotlib、seaborn可从各脚本 import 确认中文字体为可选增强缺失时英文/数字仍可正常显示延伸阅读技能的整体设计与使用方式可参考 overview.md、how-to-use-skill.md 与 how-to-use-custom-skill.md本技能可作为理解 DB-GPTSKILL.md scripts templates技能范式的典型样本。综上walmart-sales-analyzer 展示了 DB-GPT 内置技能的一个完整形态SKILL.md 定义能力边界与执行规程scripts 目录提供确定性的分析实现templates 目录承载交付物样式三者协作使 Agent 能在对话中完成数据校验 → 图表生成 → 业务解读 → 报告渲染的全链路分析任务。【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表