# gpt-vis-api **Repository Path**: LumingSun/gpt-vis-api ## Basic Information - **Project Name**: gpt-vis-api - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-11-07 - **Last Updated**: 2026-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GPT-VIS-API > 基于 Node.js 和 Express 构建的图表生成服务,支持将生成的图表上传至 MinIO 并返回预签名 URL。 ## 📌 项目概述 **GPT-VIS API** 是一个轻量级图表生成服务,旨在解决 [antv/mcp-server-chart](https://github.com/antvis/mcp-server-chart) 在私有化部署方面的局限性。该服务接收数据请求,生成图表图像,上传到 MinIO 对象存储,并返回带有效期的预签名访问链接。 主要功能包括: - 接收 JSON 格式的数据请求 - 使用 AntV/G 生成图表(如折线图、柱状图等) - 将图表图片上传至 MinIO 存储 - 返回图片的预签名 URL 供前端访问 --- ## 🎬 运行效果 - 实际落地项目验参考: https://github.com/apconw/sanic-web - 项目对接效果如下: https://github.com/user-attachments/assets/b2f440ba-6cc9-43bf-8af9-7e30d4a20702 ## 💬👥 技术支持群 - 想了解更多?欢迎关注并转发下面我的微信公众号文章(持续更新中)。 - 感谢支持,**您的赞助**将帮助我们持续更新!***入群方式请查看下面公众号文章末尾说明***。
大模型如何读懂任何格式文件并自动生成报告?LangGraph + MCP 实战解析
用 AntV MCP Server Chart 赋能大模型 —— 从零构建可视化智能体,图表生成效率飙升!
Neo4j构建语义图谱,大模型秒懂表关系,Text2SQ准确率狂飙300%!告别瞎猜!
用 BM25 + 中文分词实现 Text2SQL 表过滤 —— 让大模型只看“相关表”,准确率飙升!![img.png](img.png)
## 🔧 环境准备 ### 1. 安装依赖 确保已安装以下工具: - Docker - Docker Compose --- ## 🚀 **快速启动** ### 第一步 克隆仓库 ```bash git clone git@github.com:apconw/gpt-vis-api.git # 启动服务 docker-compose up -d ``` ### 第二步 minio配置 - 登录minio控制台http://localhost:19201 admin/12345678 - 1.手动创建minio 名字为chart-images的bucket **要求public类型的bucket** - 2.创建accessKey和secretKey 修改docker-compose.yml中minio的配置重启即可 - 3.执行docker-compose down 停止服务 - 4.执行docker-compose up -d 重启服务 - 5.docker-compose.yml中minio的配置可以根据实际情况配置对应服务器ip: **MINIO_PUBLIC_DOMAIN: "http://localhost:19000"** ![image](./images/minio.png) ![image](./images/minio-b.png) > ⚠️ 注意:请先根据实际环境修改 docker-compose.yml 中的 MinIO 配置(如 accessKey、secretKey),然后重启服务。 ## 🐳 构建镜像 ```bash make build ``` ## 🧪 接口测试 ### 测试接口 访问地址:http://localhost:3100/generate ### 图表类型定义 | 图表类型 | 说明 | |--------------------|------| | area | 区域 | | bar | 柱状 | | boxplot | 箱线 | | column | 直方 | | dual-axes | 双轴 | | fishbone-diagram | 鱼骨图 | | flow-diagram | 流程 | | funnel | 漏斗 | | histogram | 直方 | | line | 折线 | | liquid | 水波 | | mind-map | 思维导 | | network-graph | 网络图 | | organization-chart | 组织结构 | | pie | 饼 | | radar | 雷达 | | sankey | 桑基 | | scatter | 散点 | | treemap | 树 | | venn | 维恩图 | | violin | 小提琴图 | | word-cloud | 词云 | ```bash curl -X POST http://localhost:3100/generate \ -H "Content-Type: application/json" \ -d '{ "type": "line", "data": [ {"time": "2025-05", "value": 512}, {"time": "2025-06", "value": 1024} ] }' 响应示例: { "url": "https://minio.example.com/gpt-vis/chart-123.png?Expires=XYZ" } curl -X POST http://localhost:3100/generate \ -H "Content-Type: application/json" \ -d '{ "type": "sankey", "data": [ { "source": "访问网站", "target": "浏览商品", "value": 1500 }, { "source": "浏览商品", "target": "加入购物车", "value": 900 }, { "source": "加入购物车", "target": "进入结算", "value": 600 }, { "source": "进入结算", "target": "完成支付", "value": 400 }, { "source": "进入结算", "target": "放弃结算", "value": 200 }, { "source": "加入购物车", "target": "离开网站", "value": 300 }, { "source": "浏览商品", "target": "离开网站", "value": 600 }, { "source": "访问网站", "target": "立即离开", "value": 500 } ], "nodeAlign": "center", "style": { "backgroundColor": "#f8f9fa", "palette": [ "#4e79a7", "#f28e2b", "#e15759", "#76b7b2", "#59a14f", "#edc948", "#b07aa1", "#9c755f" ], "texture": "default" }, "theme": { "fontFamily": "WenQuanYi Zen Hei" }, "width": 800, "height": 500, "title": "用户购买旅程桑基图", "source": "mcp-server-chart" }' curl -X POST http://localhost:3100/generate \ -H "Content-Type: application/json" \ -d '{ "data": [ { "category": "浏览网站", "value": 50000 }, { "category": "放入购物车", "value": 35000 }, { "category": "生成订单", "value": 25000 }, { "category": "支付订单", "value": 15000 }, { "category": "完成交易", "value": 8000 } ], "style": { "backgroundColor": "#ffffff", "palette": [ "#FF6B6B", "#4ECDC4", "#45B7D1", "#96CEB4", "#FFEAA7" ], "texture": "default" }, "theme": "default", "width": 600, "height": 400, "title": "用户转化漏斗图", "type": "funnel" }' # 组织架构图 curl -X POST http://localhost:3100/generate \ -H "Content-Type: application/json" \ -d '{ "data": { "name": "CEO", "description": "首席执行官", "children": [ { "name": "CTO", "description": "首席技术官", "children": [ { "name": "研发经理", "description": "负责研发团队管理", "children": [ { "name": "高级工程师 张伟", "description": "5年经验" }, { "name": "工程师 李娜", "description": "2年经验" } ] }, { "name": "架构师 王强", "description": "系统架构设计" } ] }, { "name": "CFO", "description": "首席财务官", "children": [ { "name": "财务经理", "description": "负责财务团队管理" } ] }, { "name": "COO", "description": "首席运营官", "children": [ { "name": "市场总监", "description": "负责市场战略" }, { "name": "运营经理", "description": "负责日常运营" } ] } ] }, "orient": "vertical", "style": { "backgroundColor": "#f8f9fa", "texture": "default" }, "theme": "default", "width": 800, "height": 600, "type":"organization-chart" }' ```