v1 REST API X-API-Key

📄 电驴帮 AI 助手 标书审查 API

上传 docx, 9 大红线自动检查, 立即出评分 + 详细报告。

基础: dlbai.cn · 5 次免费/月 · 9.9 元/次起

🚀 5 分钟上手

  1. 注册账号: dlbai.cn/register.html (送 5 次免费配额)
  2. 登录控制台: 我的 API 拿到 X-API-Key
  3. 用 curl 上传 docx 审查:
# 上传 docx 标书, 拿到评分 + 报告
curl -X POST https://dlbai.cn/api/v1/bid/audit \
  -H "X-API-Key: yxh_live_你的密钥" \
  -F "docx=@你的标书.docx"

🔑 鉴权

所有需鉴权接口必须在 HTTP Header 传:

X-API-Key: yxh_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

密钥前缀: yxh_live_ + 32 位 hex。请勿在 Git/前端代码暴露。

💰 套餐

免费体验

¥0/月
  • 5 次/月
  • 10 req/min 限流
  • 基础评分
  • 社区支持
注册即得

企业版

¥999/月
  • 无限次 (按企业用户)
  • 300 req/min 限流
  • 优先审查 + 专属客服
  • SLA 保障
  • 多租户子账号
联系商务

📡 4 个核心 API

GET /api/v1/bid/health

健康检查, 公开无需鉴权。

curl https://dlbai.cn/api/v1/bid/health
→ { "success": true, "status": "ok", "version": "v1" }
GET /api/v1/bid/plans

套餐列表, 公开无需鉴权。

curl https://dlbai.cn/api/v1/bid/plans
POST /api/v1/bid/audit

核心接口: 上传 docx 标书, 立即返回评分 + 9 大红线检查结果。

请求

HeaderX-API-Key (必填)
Bodymultipart/form-data, 字段名 docx, 最大 50MB
Querydetail=1 可选, 返回详细报告 (默认仅返回问题计数)

响应 (默认)

{
  "success": true,
  "data": {
    "score": 30,
    "severity": 1,
    "severity_label": "WARN",
    "summary": { "p0_count": 0, "p1_count": 14, "p2_count": 0 },
    "filename": "投标书.docx",
    "duration_ms": 552,
    "remaining_quota": 99,
    "issues_count": {
      "company_name": 0, "phone_leak": 0, "old_date": 0,
      "placeholder": 13, "project_placeholder": 0,
      "cert_unmarked": 0, "chapter_bloat": 41,
      "heading_missing": 0, "table_missing": 0
    }
  }
}

响应 (detail=1)

data 内多出:

  "report": { // 完整 9 大红线原始数据
    "issues": {
      "company_name": [{ "text": "...", "para": 12, "pos": 42 }],
      "phone_leak": [...],
      // ...
    }
  },
  "report_text": "评分: 30/100 (WARN)\nP0: 0 个\nP1: 14 个..."
GET /api/v1/bid/usage

查询当前 API Key 本月用量 + 配额 + 最近 10 次调用记录。

curl https://dlbai.cn/api/v1/bid/usage \
  -H "X-API-Key: yxh_live_xxx"

🔍 9 大红线

每次审查会按这 9 类检查, 评分 = max(0, 100 - P0×20 - P1×5 - P2×1):

级别类别说明
P0 致命公司名误写主体名错位: 出租方/责任主体/品牌名在文档各章节前后要一致, 避免合同/标书出现"两个公司"
真实手机号11 位 1[3-9]\d{9} 写进正文 → 必须改为 【联系电话-待补】
旧日期未统一贰零贰肆/贰零贰伍 等大写混用
P1 警告占位符 【______】法人/签字/盖章/身份证 必填, 至少 30+ 处
项目级占位本项目/采购人/XX州市XX县区 必标橙
章节冗余第X章 段数 ≤ 26 (目录 13 + 正文 13), 超过即子节错升
Heading 样式13 主章必须 Heading 1, 不许全部 (None)
表格缺失业绩/区域/人员 配置表 ≥ 3 张 (不要 | 管道符伪表格)
P2 提示证书编号未标 [待核对]前缀 YNQJX-/YNWS-/XY-/YNSH-/JZ安许证字 后必标
📊 评分映射: score ≥ 80 OK · 50~79 WARN · <50 FAIL

📦 响应通用格式

所有响应都遵循:

{
  "success": true | false,
  "data": {...} | "error": "ERROR_CODE",
  "message": "人类可读错误"  // 仅 fail 时
}

❌ 错误码

HTTPerror含义
400NO_FILE未上传 docx
401MISSING_API_KEY缺 X-API-Key
401INVALID_API_KEYkey 无效/已撤销
401API_KEY_EXPIREDkey 过期
429QUOTA_EXHAUSTED本月配额用完
429RATE_LIMIT请求过快 (限流)
500AUDIT_ERROR审查失败 (文件损坏等)

🛠️ 代码示例

curl

curl -X POST https://dlbai.cn/api/v1/bid/audit \
  -H "X-API-Key: yxh_live_你的密钥" \
  -F "docx=@投标书.docx" \
  -F "detail=1"  # 可选, 拿详细报告

Python

import requests

API_KEY = "yxh_live_你的密钥"
url = "https://dlbai.cn/api/v1/bid/audit"

with open("投标书.docx", "rb") as f:
    r = requests.post(
        url,
        headers={"X-API-Key": API_KEY},
        files={"docx": f},
        params={"detail": "1"}
    )

data = r.json()["data"]
print(f"评分: {data['score']}, 等级: {data['severity_label']}")
print(f"问题: P0×{data['summary']['p0_count']}, P1×{data['summary']['p1_count']}")
print(f"剩余配额: {data['remaining_quota']}")

Node.js

const fs = require('fs');
const FormData = require('form-data');
const fetch = require('node-fetch');

(async () => {
  const form = new FormData();
  form.append('docx', fs.createReadStream('投标书.docx'));
  
  const r = await fetch('https://dlbai.cn/api/v1/bid/audit', {
    method: 'POST',
    headers: { 'X-API-Key': 'yxh_live_你的密钥', ...form.getHeaders() },
    body: form
  });
  const j = await r.json();
  console.log(j);
})();

PHP

$ch = curl_init("https://dlbai.cn/api/v1/bid/audit");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
  "docx" => new CURLFile("投标书.docx")
]);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-API-Key: yxh_live_你的密钥"
]);
$resp = curl_exec($ch);
curl_close($ch);
$data = json_decode($resp, true);
echo "评分: " . $data["data"]["score"];

💬 联系我们