Web Analytics

BIRD-Interact

⭐ 598 stars Simplified Chinese by bird-bench

🌐 语言

BIRD-INTERACT 1.0 HKU Logo Google Cloud Logo

License Leaderboard HuggingFace Python OpenAI

⚠️ 公告

请注意,在评估流程开始前,Docker加载数据库时,偶尔会因环境不一致导致错误(这些错误不会终止流程,但会出现在Docker日志中)。因此,部分数据库可能无法正确加载,导致数据库为空。这将导致评估结果异常偏低。 👉 因此,我们强烈建议在运行评估前检查Docker日志中的错误,并确认所有数据库已成功加载。

👉 我们已更新了提交指南,现支持自定义代理脚手架。欢迎查看我们的详细提交指南 这里

📰 新闻

详细介绍了我们的交互式text-to-SQL基准的全部细节、方法和评估。 👉 点击查看,了解BIRD-Interact背后的思想。

这是一个难题——最佳的大型语言模型仅实现16.33%的成功率,在c-interacta-interact部分也只有10.0%。 👉 更多详情请访问我们的项目网站

如果您希望提前获得访问权限,请按照网站上的说明发送电子邮件以获取自动下载

完整版的LiveSQLBench-Base-Large即将上线!

🧸 概览

BIRD-INTERACT是一个交互式Text-to-SQL基准,通过动态交互视角重新定义Text-to-SQL评估。 该环境融合了层级知识库、数据库文档和以函数为驱动的用户模拟器,重现企业环境中的完整CRUD操作。 它提供两种严谨的测试模式:(1) 被动对话式交互,(2) 主动代理式交互,覆盖600个注释任务,包括商业智能(BI)、CRUD操作等,每个任务都有可执行的测试用例。 典型评估会触发模型与用户模拟器间1,968-5,496次交互,而最先进的推理模型目前仅解决≈24%≈18%的任务,凸显基准的挑战性。

✅ 两种评估模式

BIRD-INTERACT支持上述两种评估模式:

🐣 精简版

我们发布了BIRD-INTERACT的精简版bird-interact-lite-exp,包含270个高质量的真实世界任务,专为PostgreSQL设计。非常适合快速实验。

🦜 完整版

BIRD-INTERACT的完整版本bird-interact-full是一个综合基准,包含600个PostgreSQL任务。涵盖各种SQL操作和用户查询。完整版即将上线。

BIRD-INTERACT-FULL上的模型性能结果

#### 1. c-Interact Text-to-SQL 性能 | 排名 | 模型名称 | 标准化奖励 | 平均成本(美元)/任务 | 等级 | |:----:|:-------------------|:-----------------:|:-------------------:|:------------------:| | 1 | Gemini-2.5-Pro | 20.92 | $0.04 | 🏆 卓越对话 | | 2 | O3-Mini | 20.27 | $0.07 | 🏆 卓越对话 | | 3 | Claude-Sonnet-4 | 18.35 | $0.29 | 💎 良好对话 | | 4 | Qwen-3-Coder-480B | 17.75 | $0.11 | 💎 良好对话 | | 5 | Deepseek-Chat-V3.1 | 15.15 | $0.12 | ✨ 标准 | | 6 | Claude-Sonnet-3.7 | 13.87 | $0.29 | ✨ 标准 | | 7 | GPT-5 | 12.58 | $0.08 | ⚪ 基础 |

#### 2. a-Interact Text-to-SQL 性能表现 | 排名 | 模型名称 | 标准化奖励 | 平均成本(美元)/任务 | 级别 | |:----:|:-------------------|:-----------------:|:-------------------:|:------------------------:| | 1 | GPT-5 | 25.52 | $0.24 | 🏆 卓越交互 | | 2 | Claude-Sonnet-4 | 23.28 | $0.51 | 🏆 卓越交互 | | 3 | Claude-Sonnet-3.7 | 17.45 | $0.60 | 💎 良好交互 | | 4 | Gemini-2.5-Pro | 17.33 | $0.22 | 💎 良好交互 | | 5 | O3-Mini | 16.43 | $0.06 | ✨ 标准 | | 6 | Deepseek-Chat-V3.1 | 13.47 | $0.06 | ✨ 标准 | | 7 | Qwen-3-Coder-480B | 10.58 | $0.07 | ⚪ 基础 |

\ 预算参数:起始预算/用户耐心预算,通过我们的虚拟货币 bird-coin* 计量。更多详情请参考 bird_interact_agent/README.md

交互时间扩展(ITS)

交互时间扩展(ITS)指模型通过多轮交互持续提升终端表现的能力。当这种交互性能超过模型在完全指定、无歧义任务下的理想化单轮表现时,我们称其满足 ITS 定律。随着用户耐心提升和交互轮次积累,性能持续上升,表明模型能在长时间对话中保持有效沟通。目前,我们仅发现 claude-3-7-sonnet 满足 ITS 定律。

环境配置

> 如果你只需在 bird-interact-lite 上评估,可以注释掉 docker-compose.yml 中的 postgresql_full 服务,以加快环境配置速度。 通过运行以下命令启动环境:
   cd env
   docker compose pull 
   docker compose up -d
   ``
   等待几分钟以完成数据库初始化。
   
  您可以通过以下方式跟踪构建进度:
  `bash
  docker compose logs -f --tail=100 bird_interact_postgresql_full # or bird_interact_postgresql for bird-interact-lite
  `
  如果完成,您应该会看到没有错误的日志,如下所示:

`bash bird_interact_postgresql_full | 2025-10-28 17:58:30.413 HKT [1] LOG: database system is ready to accept connection ` `bash docker compose down -v # this cmd removes the containers and the volumes docker compose pull # pull the latest images from Docker Hub docker compose up -d --force-recreate # build and start the containers again. --force-recreate means force the recreation of the containers. # Or docker compose up -d --force-recreate bird_interact_eval to only recreate the bird_interact_eval container about evalution code environment. ` 这将使用来自 Docker Hub 的预构建镜像运行 3 个容器:

  • bird_interact_postgresql:bird-interact-lite 的 PostgreSQL 数据库
  • bird_interact_postgresql_full:bird-interact-full 的 PostgreSQL 数据库
  • bird_interact_evala-Interactc-Interact 的评估环境。
现在,您可以通过执行以下命令启动评估环境: `bash docker compose exec bird_interact_eval bash `
  • (可选)手动构建环境(如果你希望从零开始构建镜像):
  • 下载数据库转储文件
  • bird-interact-lite。解压后重命名为 env/postgre_table_dumps
  • bird-interact-full。解压后重命名为 env/postgre_table_dumps_full
  • 通过运行 docker-compose.build.yml 手动构建环境。
`bash cd env/ docker compose -f docker-compose.build.yml build docker compose -f docker-compose.build.yml up -d `

  • (推荐)检查数据库容器是否已成功构建并正在运行。
  • 打印容器构建日志,以确保数据库已成功构建且没有错误:
`bash docker logs bird_interact_postgresql > build_bird_interact_postgresql.log 2>&1 docker logs bird_interact_postgresql_full > build_bird_interact_postgresql_full.log 2>&1 ` 如果发生错误,日志文件中将打印 "导入过程中发生错误:"

  • 检查数据库容器是否正常。
使用我们提供的 Python 脚本来验证数据库元数据:
`bash docker compose exec bird_interact_eval bash cd /app/env python check_db_metadata.py --host bird_interact_postgresql python check_db_metadata.py --host bird_interact_postgresql_full ` 预期结果:
  • bird-interact-lite
  • 📈 数据库总数:18
  • 📋 表总数:175
  • 🔢 列总数:2286
  • 📈 每表平均行数:1,038.48
  • 💾 总大小:约 207.15 MB
  • bird-interact-full
  • 📈 数据库总数:22
  • 📋 表总数:244
  • 🔢 列总数:2011
  • 📈 每表平均行数:1,121.19
  • 💾 总大小:约 272.00 MB

📦 数据集详情

数据集说明

  • 数据库: 完整的 PostgreSQL 数据库可从 bird-interact-litebird-interact-full 下载。
  • 数据: 每条数据实例包含以下主要部分:
  • selected_database:数据库名称。
  • query:明确的用户查询。
  • amb_user_query:注入了歧义的用户查询。
  • user_query_ambiguity:注入到用户查询中的歧义。
  • non_critical_ambiguity:非关键性歧义,如排序、限制等。
  • knowledge_ambiguity:由屏蔽外部知识产生的歧义。
  • sol_sql:真实 SQL 解决方案。
  • preprocess_sql:在执行解决方案或预测前需运行的 SQL 查询。
  • clean_up_sql:测试用例后运行以恢复数据库变动的 SQL 查询。
  • test_cases:用于验证预测修正 SQL 的一组测试用例。
  • follow_up:标注的后续问题。
  • external_knowledge:与特定任务相关的外部知识。
  • 评估: 评估代码可在 ./evaluation 目录中获得。
  • 整理团队: BIRD 团队 & Google Cloud
  • 许可证: cc-by-sa-4.0
  • HuggingFace 数据集卡片: bird-interact-lite
以及 bird-interact-full

数据集用途

为避免通过自动爬取导致的数据泄漏,我们没有将GT解决方案SQL和测试用例与数据一同包含。 请发送电子邮件至 bird.bench25@gmail.com,邮件标题需包含标签 [bird-interact-lite GT&Test Cases][bird-interact-full GT&Test Cases],以获取 bird-interact-lite 或 bird-interact-full 数据集的真实标签和测试用例,系统会自动发送相关内容。

将公开数据与真实标签和测试用例合并

然后使用以下脚本将公开数据与真实标签和测试用例合并:

以完整版为例: (1) 运行:

bash python combine_public_with_gt.py /path/to/bird-interact-full/bird_interact_data.jsonl /path/to/bird_interact_full_gt_kg_testcases_08022.jsonl /path/to/bird_interact_data.jsonl # bird_interact_full_gt_kg_testcases_08022.jsonl is the data of ground-truth fields, which is obtained by emailing us.
这将在 /path/to/bird_interact_data.jsonl 创建一个包含合并数据的新文件。

(2)然后用合并后的数据替换原始公共数据:

bash cp /path/to/bird_interact_data.jsonl /path/to/bird-interact-full/bird_interact_data.jsonl
其他版本也是如此:bird-interact-lite、mini 版本等。只需为公共数据、真实值和测试用例设置正确的路径,然后将公共数据替换为合并数据。