Data Formulator:用AI代理把数据探索、分支分析和图表报告串成一条流程
一个给分析师用的AI数据探索工作区,把多源数据、分支提问和Flint图表放进同一条流程。
GitHub microsoft/data-formulator 更新 2026-09-15 分支 main 星标 17.2K 分叉 1.7K
Python TypeScript 数据分析 AI Agents Data Thread Flint Windows/macOS/Docker

🧭 决策指南

适合,如果你

  • 你要从CSV、Excel、JSON或截图开始,用自然语言继续探索并生成可编辑图表。
    README“Using Data Formulator”列出CSV、TSV、Excel、JSON、screenshots和text;Overview说明支持自然语言与可视化。
  • 你需要在Data Thread中分支问题、比较分析路径并保留上下文。
    README“Why Data Formulator”说明Data Threads可branch、compare paths并保留分析上下文。
  • 你希望连接数据库、Databricks或实时URL,并使用v0.7的30+图表类型。
    README“News”和“Previous Updates”分别列出Databricks、URLs、databases、automatic refresh及30+ chart types。

不适合,如果你

  • 你要求Windows或macOS桌面应用必须完成代码签名和公证。
    README“Get Started”明确说明桌面构建“are not currently code-signed or notarized”。
  • 你的生产流程不能接受0.8 beta功能或必须只使用已标记稳定版本。
    README“News”将0.8.0b1标为beta,并说明最新stable release为0.7。
  • 你需要README已经明确说明模型凭据、数据隐私或数据库权限的部署方案。
    提供的README材料没有这些配置说明,应列为unknowns而非已支持能力。

前置条件

  • 使用uv方案需要已安装uv;README原文:"If you have uv installed, you can run Data Formulator directly without any setup." / The uv option requires uv to be installed; the README says: "If you have uv installed, you can run Data Formulator directly without any setup."
  • pip方式建议安装在virtual environment中;pip运行后默认打开http://localhost:5567。 / The pip option recommends a virtual environment and opens http://localhost:5567 after launch.
  • Docker方式需要执行docker compose up --build,并在浏览器打开http://localhost:5567。 / The Docker option requires docker compose up --build and a browser at http://localhost:5567.
  • 桌面下载覆盖Windows和macOS;自动预览构建未签名或公证。 / Desktop downloads cover Windows and macOS; automated preview builds are unsigned and not notarized.

第一步命令(README 原文)

uvx data_formulator

要注意

  • 下载Windows或macOS预览构建后可能遇到SmartScreen或macOS未验证提示。
    README“Desktop downloads”分别给出Microsoft Defender SmartScreen和macOS Privacy & Security处理步骤。
  • 使用0.8功能时要区分beta命令与稳定版命令。
    README提供pip install --pre data_formulator==0.8.0b1和uvx [email protected],同时说明稳定版为0.7。
  • Docker启动后需要手动访问localhost:5567,停止时使用Ctrl+C或docker compose down。
    README“Option 3: Run with Docker”明确列出访问和停止方式。

替代方案

  • pip安装:机器没有uv但已有Python包环境时,可使用README列出的pip方式。
    Get Started
  • Docker Compose:希望通过容器运行,而不是直接使用uv或pip安装时,可使用README列出的Docker方式。
    Get Started
  • Windows/macOS桌面构建:希望使用自包含应用而不是浏览器命令启动时,可下载GitHub Actions artifacts或GitHub Release中的构建。
    Get Started

材料未说明

  • README未说明OpenAI、Azure、Ollama和Anthropic各自的凭据配置方式。 / The README does not explain credential configuration for OpenAI, Azure, Ollama, or Anthropic.
  • README未说明数据发送到AI模型时的隐私边界、脱敏机制或企业合规能力。 / The README does not specify privacy boundaries, redaction, or enterprise compliance when data is sent to AI models.
  • README未给出Python版本、内存要求、数据规模上限或30+图表类型的性能指标。 / The README gives no Python version, memory requirement, data-size limit, or performance metrics for the 30+ chart types.
  • README未说明各数据库和Databricks连接器的认证、网络和权限前置条件。 / The README does not specify authentication, network, or permission prerequisites for database and Databricks connectors.
  • README未说明0.8.0b1相对0.7的已知缺陷、升级兼容性或回滚方式。 / The README does not describe known issues, upgrade compatibility, or rollback procedures from 0.7 to 0.8.0b1.
  • README未提供Contributing章节内容、测试覆盖率或10位贡献者的具体维护分工。 / The provided material omits the Contributing section and does not provide test coverage or the specific roles of the 10 contributors.

💡 深度解析

6
视情况 我需要连接 MySQL、PostgreSQL 和 MSSQL,并对多表做自动 Join;在没有完整主外键约束时,我是否应该用 Data Formulator 生成分析结果?
适合读者: 需要同时分析 MySQL、PostgreSQL 和 MSSQL 多表数据的技术型分析人员,关心自动 Join 是否会改变业务口径

视情况;它适合发现数据和生成多表分析草稿,但不适合在关系不清时直接产出正式指标。

  • README 的历史更新明确列出 MySQL、PostgreSQL、MSSQL、Azure Data Explorer、S3 和 Azure Blob 等外部数据加载器。
  • 项目支持 multi-table support with automatic joins,且 Data connectors 会维护 data memory,帮助代理记住数据源之间的关系。
  • Using Data Formulator 说明代理会 discover sources、propose a loading plan,并让用户 review data 后再加入工作区。

但自动 Join 仍依赖字段语义、键唯一性和业务口径;README 没有承诺能识别所有重复键、隐含关系或错误匹配。若没有可靠主外键,先把它当作关系发现和可视化工具,而不是语义层或正式报表引擎。

  • Previous Updates:External data loaders (MySQL, PostgreSQL, MSSQL, Azure Data Explorer, S3, Azure Blob)
  • Previous Updates:Multi-table support with automatic joins
  • Using Data Formulator:discover sources, clarify your request, propose a loading plan, and let you review the data
pip install data_formulator
材料未说明:README 未说明自动 Join 使用的具体匹配算法、键冲突处理和重复行检测机制。;README 未说明数据库凭据管理、只读权限配置和企业网络隔离方式。
适合 我主要处理 CSV、Excel 和截图,希望用自然语言完成探索并把结果整理成报告;Data Formulator 能否替代我现有的手工整理流程?
适合读者: 需要把 CSV、Excel 和截图快速整理成可编辑图表的业务分析师,不希望为每个问题编写 SQL 或 Python

适合,因为它把文件上传、自然语言提问、图表生成和报告整理放在同一个工作区,但它替代的是重复性的探索操作,不是业务判断本身。

  • README 明确支持上传 CSV、TSV、Excel、JSON、screenshots 和 text,并允许用户在加入工作区前查看数据。
  • Data Thread 会保存问题、解释、表格和可编辑图表,支持从历史步骤分支,因此比较不同筛选或图表路径比线性聊天更容易。
  • v0.7 提供 30+ chart types、style-refinement agent、editable reports,以及 English/Chinese UI。

截图或文本的列名、单位和缺失值仍可能被模型误读;README 也没有说明报表模板、批量导入数量或导出格式的完整范围。因此,若你的工作要求固定口径和审计级复现,不能只依赖自动生成结果。

  • Using Data Formulator:upload CSV, TSV, Excel, JSON, screenshots, or text
  • Why Data Formulator?:Data Threads let you branch into different questions
  • Previous Updates:v0.7 ... refine 30+ chart types ... editable reports ... English/Chinese UI
uvx data_formulator
材料未说明:README 未说明截图和文本抽取对不同表格布局的准确率。;README 未完整说明报告导出格式、模板能力和批量文件处理上限。
适合 我使用实时 URL 和数据库数据,需要自动刷新,并且经常从同一个问题分支出多个比较方向;Data Formulator 是否适合这种探索流程?
适合读者: 需要持续查看实时 URL 或数据库数据的运营分析师,希望刷新后仍能追踪不同分析路径

适合探索性分析,因为它同时覆盖实时数据连接和分支式分析历史;但刷新会改变输入,不能默认把不同时间的结果视为同一份数据。

  • v0.6 的更新说明明确支持从 URLs 和 databases 获取 real-time insights,并提供 automatic refresh。
  • Data Threads 支持 branch into different questions、compare paths,并从任意早期步骤继续探索。
  • v0.7 的统一流程把 load data、ask questions、review results 和 branch 放入同一个 Data Thread,且支持 persistent sessions & workspaces。

这使运营人员能把“本周趋势”和“按地区比较”保留为不同路径,而不是堆在一条聊天记录中。可是 README 没说明刷新快照、时间戳、历史版本保留多久,也没说明刷新后分支是否自动重算;需要先确认这些机制是否满足你的追溯要求。

  • Previous Updates:v0.6 ... Real-time insights from live data — connect to URLs and databases with automatic refresh
  • Why Data Formulator?:Data Threads let you branch into different questions, compare paths
  • Previous Updates:v0.7 ... persistent sessions & workspaces
uvx [email protected]
材料未说明:README 未说明自动刷新的频率、失败重试、缓存策略和快照保留方式。;README 未说明刷新后已有 Data Thread 分支是否自动重新执行,以及旧结果能否锁定。;README 未说明 URL 数据源的认证方式和分页限制。
视情况 我需要分析敏感数据,不能把内容发送到 OpenAI 或 Anthropic,但团队已经部署了 Ollama;Data Formulator 能否满足这个模型约束?
适合读者: 处理敏感业务数据、希望模型不访问外部 API 的分析人员,已在本地使用 Ollama

视情况;模型后端可以匹配你的约束,但应用本地运行不等于数据一定不会离开本机,实际安全性取决于 Ollama 配置和连接的数据源。

  • README 的 Model Support 明确列出 OpenAI、Azure、Ollama、Anthropic,并通过 LiteLLM 接入。
  • 项目支持本地安装,且可以从 CSV、Excel、数据库等来源加载数据,因此能在本地工作区组织分析。
  • README 将 Data Formulator 定位为由 AI agents 驱动的探索系统,但没有把数据隔离、脱敏或合规控制列为保证项。

如果 Ollama 服务、本地应用和数据源都位于受控网络,方向上可行;但仍需确认模型实际接收哪些字段、数据库凭据如何保存,以及截图或文本抽取是否调用其他服务。README 没有说明这些边界,也没有给出企业合规认证。

  • Previous Updates:Model Support: OpenAI, Azure, Ollama, Anthropic via LiteLLM
  • Get Started:Python Package: Easy local installation
  • Overview:visualizations powered by AI agents
uv pip install data_formulator
材料未说明:README 未说明 Ollama 的最低模型版本、上下文长度、视觉模型要求或离线可用范围。;README 未说明哪些原始数据会发送给模型、凭据如何存储,以及是否存在遥测或外部回调。;README 未提供合规认证、审计日志或细粒度访问控制的说明。
适合 我需要让中英文使用者共同查看分析,并把多次探索整理成可编辑报告;Data Formulator 是否能覆盖从探索到分享的流程?
适合读者: 需要把分析结果交付给中英文使用者的产品或研究人员,依赖持久化会话、工作区和可编辑报告

适合从探索到报告的协作式交付,因为 README 同时列出了中英文界面、持久化工作区、分支探索和报告能力;但它是否满足正式发布治理,取决于未说明的权限与版本控制细节。

  • v0.7 支持 persistent sessions & workspaces,并提供 multilingual (English/Chinese) UI。
  • Using Data Formulator 说明用户可以在 Data Thread 中继续对话、编辑图表、从早期步骤分支,最后 compose the results into a report to share。
  • 项目采用 MIT License,且当前最新发布为 0.8 beta 1,说明二次集成门槛较低,但版本仍处于 beta。

因此,它适合研究汇报、产品探索和团队内部沟通。若报告需要审批流、逐字段权限、审计日志或严格版本锁定,README 没有证明这些能力;尤其 beta 版本不应未经验证就成为唯一的正式报告系统。

  • Previous Updates:v0.7 ... persistent sessions & workspaces ... multilingual (English/Chinese) UI
  • Using Data Formulator:edit a result directly, branch from any earlier step ... compose the results into a report to share
  • 项目数据:license 为 MIT License;latest_release 为 0.8b1
pip install --pre data_formulator==0.8.0b1
材料未说明:README 未说明工作区共享的成员权限、并发编辑和访问控制。;README 未说明报告是否包含数据快照、模型配置、刷新时间和完整变更历史。;README 未说明 beta 版本的升级兼容性和报告格式稳定性。
视情况 我主要用 Python 做本地分析,数据量已经超过普通表格工具的舒适范围,还希望生成的图表可以继续编辑;Data Formulator 是否比直接写 Python 图表代码更合适?
适合读者: 需要在本地处理较大数据集、希望用 DuckDB 加速探索的 Python 分析人员,同时要保留可编辑图表

视情况;它适合用自然语言快速探索并保留可编辑图表,但不能因为集成 DuckDB 就把它当成分布式计算或企业数据仓库。

  • README 的 v0.2 更新明确写有 Large data support with DuckDB integration。
  • 项目是 Python package,可通过 uvx 或 pip 本地安装,适合已有 Python 环境的分析人员。
  • Flint 会把 compact chart specs 编译为 polished visualizations;v0.7 还提供 30+ chart types 和 style-refinement agent,图表不是只能导出的静态图片。

如果你的目标是探索字段、比较聚合方式并快速修改表达,项目比从零编写图表代码更省操作。若数据规模、并发、复杂计算或权限模型已超出本地分析边界,README 没有承诺性能或扩展性,仍需要保留现有 Python、SQL 或仓库流程。

  • Previous Updates:v0.2 ... Large data support with DuckDB integration
  • Previous Updates:uv support ... uvx data_formulator or uv pip install data_formulator
  • Why Data Formulator?:Flint ... compiles compact chart specs into polished visualizations
pip install data_formulator
材料未说明:README 未给出 DuckDB 支持的数据规模、内存占用、查询性能或并发上限。;README 未说明 Flint 图表规格与现有 Python 可视化代码之间的互操作方式。;README 未说明是否支持自定义计算函数、复杂窗口函数或完整 SQL 方言。

✨ 核心亮点

  • Data Thread支持分支提问与路径对比
  • v0.7支持30+图表类型与持久化工作区
  • Flint提供语义图表引擎与样式细化
  • 支持CSV、Excel、JSON、截图和数据库
  • 0.8.0b1仍是beta版本,稳定版为0.7

🔧 工程化

  • Data Thread把自然语言提问、表格、可编辑图表和分支历史放在同一工作区。
  • Data connectors可连接文件、文件夹、数据库、Databricks和实时URL数据源。
  • Flint语义图表引擎支持30+图表类型、推荐、主题和样式工具。

⚠️ 风险

  • README将0.8.0b1标为beta,最新稳定版仍是0.7。
  • Windows和macOS桌面构建未签名或公证,会触发系统安全警告。
  • README未说明AI模型凭据、数据隐私和数据库连接权限配置。

👥 适合谁?

  • 需要用自然语言探索CSV、Excel或JSON的分析师和数据团队。
  • 需要比较分析路径并生成报告的Data Thread用户。
  • 使用Windows、macOS、Docker或uv的本地试用者。