汉印美照 · BI 接入

运行示例

Python 标准库采集、精确金额转换与本地测试入口。

下载 bi_client.py。需要 Python 3.10 或更高版本,无第三方依赖。推荐 API Key 模式,无需登录;兼容密码模式须先完成临时密码修改。示例只读取数据,不执行业务写入。

将管理员交付的 Key 保存到安全存储或仅所属用户可读的文件,然后设置:

export BI_API_URL=https://aiapi.hprtcloud.com
export BI_API_KEY_FILE=/安全目录/bi-api-key
chmod 600 "$BI_API_KEY_FILE"
python3 bi_client.py --start-date 2026-10-01 --end-date 2026-10-10 --currency CNY --output bi-data.json --include-details

输出包括 payments、usage,加上 --include-details 时还读取完整分页的 payment-orders、payment-events、calls。每个明细接口最多 1000 页;超限、缺页、重复 ID 或分页总量/水位变化均明确失败,不输出不完整快照。大范围采集改为按天分批。输出文件不会覆盖既有快照,Key、密码和令牌不进入输出。

兼容密码模式可使用 BI_USERNAME 与 BI_PASSWORD_FILE;此时不设置 BI_API_KEY_FILE,客户端拒绝同时配置两套凭据。Key 模式收到 401 后停止,不调用登录接口。

from bi_client import from_environment, money

client = from_environment()
report = client.get("payments", period="today", currency="CNY")
paid = money(report["totals"]["paid_milli"], 1000)
net = money(report["totals"]["net_milli"], 1000)
usage = client.get("usage", period="today")
model_cost = money(usage["totals"]["metered_estimated_cost_micros"], 1000000)
for call in client.pages("calls", period="today"):
    print(call["call_id"], call["feature_code"], call["created_at"], call["status"])

登录响应结构:

{"access_token":"仅在运行时获取","token_type":"Bearer","expires_in":28800,"must_change_password":false}

功能调用明细结构示例(虚构数据):

{"items":[{"call_id":"018f0000-0000-7000-8000-000000000001","feature_code":"ai.filter","feature_name":"AI 滤镜","status":"succeeded","created_at":"2026-10-10T01:20:00Z","started_at":"2026-10-10T01:20:01Z","completed_at":"2026-10-10T01:20:10Z"}],"total":1,"page":1,"page_size":50,"snapshot_at":"2026-10-10T02:00:00Z"}

收入、成本和全部参数结构以 自动生成的 BI 接口参考 和 OpenAPI 下载 为准。交付包中的 test_bi_client.py 可用 python3 -m unittest -v test_bi_client.py 执行纯本地测试,不访问生产。