Skip to content

About

自托管数据分析 Agent:表格数据导入、自然语言分析与数据可视化。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Data Agent

自托管的数据分析 Agent。上传 CSV、Excel、Stata 等数据后,可以通过自然语言完成数据概览、统计分析、可视化与数据清洗。

主要功能

  • 数据集导入、预览与管理
  • 自然语言分析与数据清洗
  • 图表、表格、异常检测等结果展示
  • 分析历史记录
  • 多个 OpenAI-compatible LLM 供应商、自定义模型渠道与轮询
  • 邮箱密码 + OTP 登录
  • 多用户数据隔离
  • 独立管理员页面(SMTP / LLM)
  • Docker 自托管部署

技术栈

  • 前端:Next.js + React + TypeScript
  • 后端:Hono
  • 数据库:PostgreSQL + Prisma
  • 部署:Docker Compose

一键交互安装(推荐)

Linux 服务器直接运行:

curl -fsSL https://raw.githubusercontent.com/PaiMonCai/data-agent/main/install.sh | sudo bash

安装器会交互完成:

  • Docker / Docker Compose v2 检查;缺失时可选择自动安装
  • 安装目录、访问端口与 APP_ORIGIN
  • HTTPS 反向代理模式或直接 HTTP 模式
  • 首次管理员邮箱与密码(密码可留空自动生成)
  • SESSION_SECRET 与 SYSTEM_CONFIG_ENCRYPTION_KEY
  • 可选的 OpenAI-compatible LLM fallback;也可以安装后在 /admin 配置
  • PostgreSQL 数据库接入
  • Compose 启动与 /api/health 健康检查
  • 管理员 bootstrap 成功后清除部署文件和运行容器中的明文 bootstrap 密码

数据库有三种模式:

  1. 内置 PostgreSQL 17:推荐全新部署,使用独立 Docker volume。
  2. 宿主机 PostgreSQL:自动检测系统 PostgreSQL 或 1Panel / Docker PostgreSQL。容器数据库会自动建库、建用户并接入专用 data-agent-db-link 网络;系统 PostgreSQL 会优先尝试 host.docker.internal,无法直连时启用仅 Docker 网关可见的安全代理。
  3. 外部 PostgreSQL:输入完整 DATABASE_URL,支持远程数据库和 SSL 参数。

如果重新连接已有 Data Agent 数据库,请复用原来的 SYSTEM_CONFIG_ENCRYPTION_KEY,否则数据库里已经保存的 SMTP / LLM 密钥无法解密。

手动 Docker Compose 部署

也可以继续使用仓库原有 Compose:

cp .env.example .env

至少配置:

POSTGRES_PASSWORD=replace-with-a-long-random-password
SESSION_SECRET=replace-with-at-least-32-random-characters

BOOTSTRAP_ADMIN_EMAIL=[email protected]
BOOTSTRAP_ADMIN_PASSWORD=replace-with-a-strong-admin-password
SYSTEM_CONFIG_ENCRYPTION_KEY=replace-with-a-long-random-secret

LLM_BASE_URL=https://api.example.com/v1
LLM_API_KEY=your-key

然后启动:

docker compose pull
docker compose up -d

默认访问:

http://服务器IP:3000

管理中心

管理员登录后可以从主界面进入:

/admin/

管理中心用于配置:

  • SMTP 邮件服务
  • OpenAI-compatible LLM 供应商
  • Provider Base URL / API Key
  • 每个 Provider 的模型渠道开关
  • 前端逻辑模型名 → 上游真实模型名映射
  • 同一逻辑模型的多渠道 Round Robin 轮询
  • 从 /models 自动导入上游模型

LLM 与 SMTP 配置保存后立即生效,不需要重启容器。LLM API Key 与 SMTP 密码均使用 SYSTEM_CONFIG_ENCRYPTION_KEY 加密保存。

例如可以把两个渠道:

OpenAI  : gpt-5.6
NewAPI  : gpt-5.6-2026

都映射成前端的 gpt-5.6。用户只会看到一个 gpt-5.6,后端按请求在所有启用渠道之间 Round Robin 轮询。管理员可以单独关闭任意渠道;只剩一个启用渠道时,该逻辑模型自然固定走这一路。

如果后台还没有保存 LLM 配置,系统继续使用 LLM_BASE_URL、LLM_API_KEY、LLM_MODELS 环境变量作为兼容 fallback。

首次管理员与 SMTP

首次部署不需要提前配置 SMTP。

应用发现数据库里没有管理员时,会使用:

BOOTSTRAP_ADMIN_EMAIL
BOOTSTRAP_ADMIN_PASSWORD

创建管理员。之后直接使用管理员邮箱和密码登录,在:

/admin/ → 邮件服务

中配置 SMTP,并发送测试邮件。

SMTP 保存后立即生效,不需要重启容器。

管理员创建成功后,可以从 .env 删除:

BOOTSTRAP_ADMIN_EMAIL
BOOTSTRAP_ADMIN_PASSWORD

SYSTEM_CONFIG_ENCRYPTION_KEY 用于加密 SMTP 密码,投入使用后不要随意更换。

已有部署升级

Data Agent 使用 Prisma Migration。更新镜像并重新启动后会自动执行数据库迁移,不需要删除 PostgreSQL volume。

升级前建议备份数据库。

HTTPS

正式部署建议设置:

APP_ORIGIN=https://data.example.com
COOKIE_SECURE=true

并在前面使用 Nginx、OpenResty、Caddy 或 Cloudflare 提供 HTTPS。

本地开发

前端:

cd frontend
npm ci
npm run dev

后端:

cd server
cp .env.example .env
npm ci
npm run migrate:dev
npm run dev

更多细节见:

About

自托管数据分析 Agent:表格数据导入、自然语言分析与数据可视化。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages