关于 Binggio
Binggio 是面向数据管理员的本地数据问答工具,可基于经人工批准的字段含义和关系回答问题,并在证据不足时说明原因而非猜测。它会展示答案所用的来源,且不向数据源写入内容。
主要功能
- 01基于批准的含义回答问题
- 02展示答案来源和使用的条件
- 03审核字段、关系与业务术语
- 04发现并建议数据修正
- 05数据不足时拒答并说明原因
适用场景
- 01用业务术语查询本地表格或数据库
- 02审核表关系和字段定义
- 03定位编码值缺少定义的问题
- 04通过 Agent 查询已批准的数据
MCP 相关
Binggio 可作为本地 MCP 服务,向 AI 客户端提供已批准的数据定义、计划执行、状态查询和术语提议等工具。它会验证查询计划,仅依据获批含义回答或拒答;Agent 提议的定义须由人员在应用中批准。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍

Binggio™
基于你的数据给出可信答案。 Binggio 只会根据经过人工审核的含义回答问题:哪一列是键、表之间如何关联、“逾期”是什么意思。无法准确回答时,它会说明原因,而不是猜测。
- 在你的计算机上运行,使用你的文件和数据库。不会向任何数据源写入内容。
- 每个答案都会显示所用的术语、筛选条件、关联和来源。
- 审批会记录审批人及原因;一旦审批所依据的数据发生变化,该审批便不再生效。
查看实际演示
https://github.com/user-attachments/assets/9e9f4222-eaf0-4bb0-8a2d-7a162eb2bc14
两分钟快速导览:示例银行、带有溯源信息的问题、审核与审批、关系图、添加你自己的 CSV 文件,以及数据故事。
安装
pip install binggio # CSV and SQLite
pip install binggio[excel] # + Excel workbooks
pip install binggio[sqlserver] # + SQL Server (no ODBC driver needed)
pip install binggio[oracle] # + Oracle (no Oracle client needed)
pip install binggio[all] # everything
如果终端提示 binggio 未被识别(Windows 上 pip 将其安装到用户文件夹时很常见),请改用 python -m binggio,例如 python -m binggio ui,或者将 pip 提示的 Scripts 文件夹添加到 PATH。
使用自然语言提问需要模型密钥:设置 BINGGIO_LLM_API_KEY(或 OPENAI_API_KEY)。其他功能(数据分析、发现、审核、运行已保存的计划)无需密钥即可使用。
应用
binggio ui
在浏览器中打开 Binggio:创建示例银行或自己的工作区,添加 CSV 文件、Excel 工作簿或数据库(可通过文件夹选择器选择,并进行“测试连接”),完成引导流程,审批、拒绝、撤销或重新打开列角色、关系、概念和业务术语,查看关系图,并提出问题;每个答案都附有溯源信息。
专为数据管理员打造:
- 结合证据进行审核。 点击任意列或关系,即可查看其概况、示例值、匹配的键数、依赖项及完整历史记录,然后给出审核结论和理由。关系可以包含截至日期规则、业务含义或更正后的连接列。
- 业务定义。 为业务名称指定一个精确的计算方式(“未偿敞口 = 未偿余额总和”)。Binggio 会根据已批准的度量建议一些定义;由人工审批。
- 来自被拒问题的问题项。 Binggio 拒绝的每个问题都会连同拒绝原因一并保留,以便你了解用户缺少哪些含义,批准相应定义并关闭问题项。
- 自动审核,默认关闭。 仅批准通过严格技术检查的项目,先显示预览,记录每项批准,并可回滚整次运行。
- 两张表如何连接? 关系图上的路径查找器会显示任意两张表之间的连接链,以及问题是否已可使用这些连接。
- 快捷操作: 用于批量批准的“仅显示强证据”筛选器,以及完整审计记录的 CSV 导出。
- 自行添加关系。 在 Review › Relationships 中添加,或在关系图上拖出连接两张表的箭头。Binggio 会在两张表的每一行中检查该关系(匹配的键数、父键是否唯一),然后保存,由人工审批。
- 查看发现过程在哪里停止。 对每张表和类似键的列,查看最接近的匹配项、未提出该匹配的原因(匹配值过少、键重复、名称不同)、接近匹配项,以及看似相同但写法不同的键(
CUST-000123和C0000123)。 - 修正数据,不触碰源数据。 去除空格,将
$1,234.50读取为数字,填充缺失值,补齐或移除键前缀,按指定格式读取日期,将多个列合并为新键,按键保留一行。每项修正都会记录添加者及原因,并在每次刷新数据时重新应用。修正表上的审批必须重新确认。 - 键工具。 针对每一行(而非抽样)检查一列或多列的组合:查看重复或为空的行数及示例。仅当值唯一时,才将其设为表的键。
- 主数据集,适用于没有唯一列的数据。 企业数据提取结果通常会按报告月份和版本重复记录,因此没有任何一列可以作为键。Binggio 会根据每一行中找到的标识符提出主数据集(每位员工、每本书、每个交易台等各一行)和日历;由人工审批哪些列应包含在内。获批的主数据集会构建为表,并在每次刷新时重新构建;它们位于关系图中心,每个成员列都以多对一关系连接到主数据集。系统会显示缺失项(表中使用但记录系统中缺失的 ID),绝不隐藏。
- 推荐的数据修正。 Binggio 会根据概况推荐修正项(多余空格、大小写变体、以文本形式存储的数字、占位符(如“-”)、以文本形式存储的日期、与主数据集写法不同的键),并为每项提供证据和预览。由人工审批。
- 快照表。 人工将表标记为每个报告期各有一份副本后,系统会拒绝跨期汇总或计数:答案必须指定一个期间,或按期间分别给出结果。
- 每一行都有概况,并按企业命名习惯解读。 不重复值数和空值数均根据所有行计算。以单个词命名的列会根据词尾解读:版本、级别、代码或标志绝不会被视为度量;电子邮件绝不会被视为键;按域名/ID/版本存储的引用、由多个列构成的人物信息、代码与名称配对,以及扁平化的层级结构都会作为分组显示;不含任何信息的列不会纳入审核。
它仅在这台计算机上运行(127.0.0.1),无需联网,也不会添加依赖项。页面会携带一个随机会话令牌,因此其他网站无法使用它。输入其中的数据库密码和模型密钥仅保存在内存中,绝不会写入磁盘。示例问题库包含十个准备好的问题,无需模型密钥即可运行。选项:
--port 8800、--no-browser。 准备表格和分析配置文件会同时进行,并行数量不超过计算机的处理器核心数;设置BINGGIO_WORKERS=4可减少并行数量(设置为1则一次处理一个)。
在 AI Agent 中使用 Binggio(MCP)
binggio -w C:\banks\my-bank mcp
Binggio 使用 Model Context Protocol,因此 Claude Desktop、Claude Code、Cursor、VS Code 和 Agent 框架都可以将它用作工具。Agent 会使用 Binggio 认可的词汇,将用户的问题转换为计划;Binggio 会验证该计划,并且只根据认可的含义给出答案,或说明拒绝的原因。Agent 可以为编码值提出含义建议,但只能由人员在应用中批准。不接受 SQL,不会向数据源写入任何内容,且仅在这台计算机上运行。
| 工具 | 功能 |
|---|---|
describe_approved | 查看已批准的表、列、链接、业务术语和概念,以及计划格式 |
run_plan | 验证并执行计划;返回包含数据源、术语和截至日期的行,或说明拒绝的原因 |
ask | 让 Binggio 自行解读问题(需要模型密钥) |
status | 查看哪些内容已批准、等待审核或已过期 |
propose_term | 建议编码值的含义;由人员在应用中批准 |
一步连接 AI 客户端
binggio connect claude-desktop -w C:\banks\my-bank # or: cursor, vscode, claude-code
这会将 Binggio 添加到客户端设置中,并保留所有现有内容(会先保存带日期的备份;如果文件不是有效的 JSON,则不会进行任何更改)。添加 --print 可查看设置而不做任何更改。之后重启客户端。
其他接入方式:
- **Claude Desktop 安装包:**从发布页面下载
binggio-<version>.mcpb并打开;Claude Desktop 会要求选择工作区文件夹。需要安装 Python 3.10 或更高版本。 - 无需预先安装任何内容(使用 uv):命令为
uvx,参数为binggio mcp,并将环境变量BINGGIO_WORKSPACE设置为工作区路径。 - 手动配置:
{"mcpServers": {"binggio": {"command": "python", "args": ["-m", "binggio", "-w", "C:\\banks\\my-bank", "mcp"]}}}
未提供 -w 时,每条命令也会从 BINGGIO_WORKSPACE 读取工作区路径。
两分钟演示(命令行)
binggio demo my-bank # a synthetic bank, already reviewed and approved
cd my-bank
binggio status
binggio ask "Which customers in the PREMIUM segment have a delinquent loan?"
binggio ask # a conversation: follow-ups like "which of these ..." work
使用自己的数据
binggio init my-data && cd my-data
binggio add-csv "Core export" C:\exports\core # a folder of .csv files
binggio add-excel "Branch report" C:\reports\branches.xlsx # each sheet becomes a table
binggio add-db "Core banking" sqlserver --host dbserver --database core --user reader --schema dbo
binggio add-db "Loans" oracle --host orahost --database ORCLPDB1 --user reader --schema LOANS
binggio profile # what each column looks like
binggio discover # which tables link to which
binggio impact # how the new source fits what you already have
binggio onboard --by "Your Name" # review: column roles, links, concepts, words for codes
binggio ask
onboard 会引导你完成四个步骤,并以你的名义记录每项决定:
- 列角色:键、度量值、日期、状态。系统会显示建议;你可以逐表批准。
- 链接:哪个列指向哪个表,并附上证据(匹配值的数量)。
- 概念:为数据中的事物命名(“催收案件”、“抵押品”)。
- 代码对应的词义:
kept = N表示“违背承诺”;status = W表示“已核销”。 只有定义这些词后,问题才能使用它们。
binggio onboard --accept-suggestions --by "Your Name" 会一次性接受所有建议(仍会将其记录为你的决定)。它绝不会批准现有表格的重复副本,并会将证据较弱的备选链接留给你查看。
Binggio 不会做什么
- 猜测含义。 对于没有获批含义或有两个获批含义的词,系统会拒绝回答并提供选项。
- 根据部分数据作答。 回答会读取完整表格。大型表格只会准备一次(在工作区的
data/prepared和data/cache文件夹中保存本地副本,大小约等于数据本身,可安全删除),以便后续问题无需重新读取文件。较长的结果列表会显示前 200 行,并说明总行数。 - 更改你的数据。 数据库仅通过 SELECT 语句读取;副本保存在工作区中,
binggio refresh <connection>会在原位置重新读取数据。
目前尚不支持以下内容,并会给出明确提示后拒绝处理:比率和占比、相对于今天的时间范围(“过去 30 天”)、持续时长、随时间的变化、针对数量的条件(“投诉多于一件”)。
Python
import binggio
ws = binggio.Workspace.create("my-data")
ws.add_excel("Branch report", r"C:\reports\branches.xlsx")
ws.profile(); ws.discover()
print(ws.status())
answer = ws.ask("What is the total balance of OPEN loans by branch?")
在你自己的数据库上检查
tools/check_database.py 会连接到真实的 SQL Server、Oracle 或 PostgreSQL 数据库。
--list 为只读操作。--cross-source 会将一个小型测试数据集载入临时架构,检查其结果是否与 CSV 副本一致,然后将其删除。
状态
0.1,早期阶段。
许可证
Binggio 是自由软件:你可以根据自由软件基金会发布的 GNU Affero 通用公共许可证的条款重新分发和/或修改它;许可证版本可以是第 3 版,也可以是(由你选择的)任何更高版本。我们发布它是希望它能有所帮助,但不提供任何担保;也不对适销性或特定用途适用性提供默示担保。详情请参阅 LICENSE 文件。
简而言之:你可以自由使用它,包括在组织内部使用。如果你修改了 Binggio 并让他人使用修改后的版本(包括通过网络提供使用),就必须依据相同许可证向他们提供修改后的源代码。
商标。 Binggio™ 和 Binggio 徽标是 Ashish Kumar 的商标(已在印度提交申请)。AGPL 涵盖代码,不涵盖名称:欢迎以不同名称创建分支。请参阅 TRADEMARKS.md。
联系。 反馈、问题、商业许可证、实施和合作事宜: [email protected]。安全问题:请参阅 SECURITY.md。
商业许可证。 如果 AGPL 不适合你的组织(例如,你想将 Binggio 嵌入闭源产品或服务),可申请商业许可证:请参阅 COMMERCIAL.md。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。