第9章 实战项目一:智能数据分析Agent

这篇教程把智能数据分析 Agent 拆成一条可落地产品链路:自然语言提问 → 需求分类 → 数据预处理与 Schema 映射 → Pandas/SQL 代码生成 → 安全沙箱执行 → 图表可视化 → 自然语言报告输出,并区分客户端轻量版与云端生产版。

基本信息

核心观点

  1. 数据分析 Agent 的产品价值是消除“自然语言—结构化数据—可视化报告”之间的技术壁垒:传统分析依赖 SQL、Pandas、绘图与分析师排期;本文把链路定义为“自然语言提问 → 自动理解需求 → 数据清洗校验 → SQL/Pandas 代码生成 → 安全执行 → 图表可视化 → 自然语言报告输出”,让业务人员用说话方式完成专业分析。
  2. 90% 企业分析需求可先归入三类标准任务:数值统计类(求和、平均值、极值、分组统计、占比、趋势对比)、数据查询类(条件筛选、精准匹配、多维关联、异常筛查)、可视化报表类(折线图、柱状图、饼图、分布图)。这种任务分类是 Agent 需求解析的第一层路由。
  3. 双端架构决定执行引擎选择:客户端 Agent 聚焦本地 CSV/Excel 文件,静态 Schema 映射 + Pandas 运算 + 本地绘图,适合个人离线分析和快速复盘;云端 Agent 支持 MySQL/PostgreSQL,自动读取数据库表结构、动态生成语义映射,优先 SQL 查询,适合企业常态化报表、权限管控和报告导出。
  4. 数据预处理与 Schema 语义映射是准确率前置条件:脏数据、字段不匹配、列名不规范和语义歧义是分析错误的根源。教程要求先做缺失值填充、异常过滤、重复去重、日期/数值/文本格式标准化,再建立“用户语义 ↔ 数据表真实字段”的映射,例如“销售额 → sales”“销售日期 → date”。
  5. 生产级数据分析 Agent 的底线不是“能生成代码”,而是“能安全执行代码”:因为 Agent 拥有代码执行、数据读取、文件操作能力,云端必须引入语法黑名单、沙箱隔离、资源限额、超时销毁、操作日志审计;客户端可信环境可做基础拦截,但企业云端不能放宽。
  6. 结果解释是产品闭环的最后一步:原始统计结果和图表本身仍然冰冷,业务人员需要数据概览、核心结论、原因分析、业务建议四段式自然语言报告。客户端生成精简报告,云端生成企业级报告并支持图表嵌入、数据溯源、多维对比、历史联动和 PDF 导出。

实操内容保留

代码/配置

数据预处理与 Schema 映射

import pandas as pd
 
# 1. 加载本地数据(客户端/云端通用)
df = pd.read_csv("sales_data.csv")
 
# 2. 标准化数据预处理
def preprocess_data(df):
    # 缺失值填充
    df["sales"] = df["sales"].fillna(df["sales"].mean())
    # 去重
    df = df.drop_duplicates()
    # 格式统一
    df["date"] = pd.to_datetime(df["date"])
    return df
 
df = preprocess_data(df)
 
# 3. 语义Schema映射字典(核心)
schema_map = {
    "销售额": "sales",
    "销售数量": "quantity",
    "销售日期": "date",
    "区域": "region"
}
print("字段映射完成,可解析自然语言分析需求")

PandasAI 客户端轻量化分析

# 安装依赖:pip install "pandasai>=3.0.0b2" pandasai-openai
import pandas as pd
from pandasai import SmartDataframe
from pandasai_openai import OpenAI
 
# 初始化模型
llm = OpenAI(api_key="你的OpenAI密钥")
 
# 加载预处理后数据
df = pd.read_csv("sales_data.csv")
 
# 智能数据帧封装,一键开启AI分析能力
sdf = SmartDataframe(df, config={"llm": llm})
 
# 自然语言直接分析
if __name__ == "__main__":
    # 自动生成代码、执行计算、返回结果
    res = sdf.chat("计算各区域平均销售额并绘制柱状图")
    print("分析结果:", res)

PandasAI 云端 SQL 与图表联动

from pandasai import SmartDatalake
from pandasai_openai import OpenAI
import mysql.connector
 
llm = OpenAI(api_key="你的OpenAI密钥")
 
# 云端连接数据库数据源
db_conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="密码",
    database="sales_db"
)
 
# 多数据源智能分析湖
dl = SmartDatalake([db_conn], config={"llm": llm})
 
# 自然语言查询数据库
res = dl.chat("统计近3个月各区域销售总额,生成趋势折线图")
print("云端数据库分析结果:", res)

代码安全校验围栏

def security_check(code: str) -> tuple[bool, str]:
    """云端代码安全校验围栏"""
    # 定义高危操作黑名单
    black_list = ["os.system", "shutil", "requests", "delete", "remove", "dump", "export"]
    for keyword in black_list:
        if keyword in code:
            return False, f"检测到高危操作:{keyword},禁止执行"
    return True, "代码安全校验通过"
 
# 嵌入PandasAI执行链路
safe_code = sdf.last_code_executed
is_safe, msg = security_check(safe_code)
print("安全校验结果:", msg)

自然语言数据分析报告生成

from langchain_openai import ChatOpenAI
 
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0.2)
 
def generate_analysis_report(data_result, user_query):
    """自动生成自然语言数据分析报告"""
    prompt = f"""
    基于用户需求:{user_query}
    原始分析结果:{data_result}
    请生成一份简洁专业的数据分析报告,包含数据概览、核心结论、业务洞察与优化建议。
    """
    return llm.invoke(prompt).content
 
# 调用示例
if __name__ == "__main__":
    analysis_data = "2026年各区域平均销售额:华东120w、华北98w、华南85w"
    report = generate_analysis_report(analysis_data, "各区域销售额分析")
    print("=== 智能分析报告 ===")
    print(report)

Prompt 模板

基于用户需求:{user_query}
原始分析结果:{data_result}
请生成一份简洁专业的数据分析报告,包含数据概览、核心结论、业务洞察与优化建议。

操作步骤

  1. 将用户自然语言问题拆成标准任务类型:数值统计、数据查询、可视化报表。
  2. 判断数据源类型:本地文件优先 Pandas,云端数据库优先 SQL。
  3. 对数据执行缺失值填充、去重、格式统一等预处理。
  4. 建立 Schema 语义映射,把“销售额、销售数量、销售日期、区域”等业务词映射到真实字段。
  5. 用 PandasAI 的 SmartDataframeSmartDatalake 将自然语言转成 Pandas/SQL 并执行。
  6. 云端执行前先经过语法黑名单与沙箱隔离,限制系统命令、外网请求、批量导出、删除文件、超时和资源滥用。
  7. 将计算结果和图表转成结构化自然语言报告,包含数据概览、核心结论、原因分析、业务建议。

关键概念

  • 智能数据分析Agent — 本文要落地的完整 Agent 产品形态,把自然语言、数据处理、代码执行、图表和报告串成闭环。
  • PandasAI — 自然语言转 Pandas/SQL、自动绘图、结果解析的核心开源框架。
  • Schema语义映射 — 建立用户业务语言和真实字段之间的映射,是数据分析 Agent 准确率的前置条件。
  • 数据分析Agent安全围栏 — 云端执行代码前后的安全防护体系,包括黑名单拦截、沙箱隔离、限额、超时和审计。
  • BI+AI融合 — 与本文同属“数据智能”落地路径,前者偏 BI 结果解读,本文进一步走向自然语言驱动的执行型 Agent。
  • AI Agent 智能体 — 数据分析 Agent 是 Agent 在企业数据分析场景的一个垂直化落地案例。
  • 数据分析报告四步框架 — 本文“自然语言报告输出”可与既有报告结构方法论结合。

与其他素材的关联

  • 2026-07-01-woshipm-bi-to-ai-data-dashboard 的关系:前者讲“已有 BI 大屏如何叠加 AI 解读”,本文讲“从自然语言需求开始由 Agent 自动完成查询、计算、绘图、报告”。两者共同指向企业数据分析从“看得见”走向“问得动、跑得出、讲得清”。
  • 2026-05-24-woshipm-data-analyst-business-knowledge 的关系:本文用 Agent 降低 SQL/Pandas 门槛,但仍需要业务语义映射和报告解释;这印证了“业务认知是数据分析硬前置”的结论。
  • 2026-05-23-woshipm-enterprise-ai-implementation-methodology 的关系:本文是企业 AI 落地里“智能问数/报告生成/流程自动化”的具体项目模板,补充了数据分析 Agent 的工程链路和安全边界。

原文精彩摘录

数据分析是企业最通用、最高频的AI落地场景。传统数据分析存在门槛高、流程繁琐、效率低下的痛点:业务人员不懂SQL、不懂Pandas、不会绘图,需要依赖研发、数据分析师排期,链路冗长、迭代缓慢。

智能数据分析Agent 可以实现:自然语言提问 → 自动理解需求 → 数据清洗校验 → SQL/Pandas代码生成 → 安全执行运算 → 图表可视化 → 自然语言报告输出,真正让业务人员用说话的方式完成专业数据分析。

大模型无法直接识别杂乱的原始数据,脏数据、字段不匹配、语义歧义、列名不规范,是数据分析Agent报错、结果不准的核心原因。数据预处理+Schema语义映射,是保障数据分析准确率的前置核心步骤。

数据分析Agent拥有代码执行、数据读取、文件操作权限,生产环境存在极高安全风险:模型可能生成删除文件、遍历目录、外传数据、恶意请求等高危代码,造成数据丢失、隐私泄露、服务器被攻击等问题。

相关页面