Skip to main content

py-tjbrhk-toolkit

介绍

天津博瑞皓科博瑞云音箱 Python 客户端库,实现官方《博瑞云音箱 API 对接文档》中定义的全部接口。

py-tjbrhk-toolkit 是天津博瑞皓科博瑞云音箱 API 的 Python 客户端库。它严格基于 官方文档(语雀) 实现,覆盖以下全部接口:

接口 版本 类型 官方说明
notify.php 3.1 流量版专用 将通知消息提交到云音箱服务器,云音箱接收后通过 TTS 播报。仅适用于流量版(2G/4G)音箱。
bind.php 2.1 基础接口 云音箱绑定或解绑,支持绑定(m=1)、解绑(m=0)和强制解绑(m=4)。
add.php 2.2 基础接口 将支付结果提交到云音箱服务器,云音箱播报收款提示语音。price 单位为分。
modify_bootvoicewav.php 3.2 灰度测试 更改开机语音、自定义播报前缀。仅适用于 402、404、502、504 型号。

接口约定(来自官方文档):

  • 所有接口均为 POST 请求,以 application/x-www-form-urlencoded 提交表单数据。
  • 返回 JSON 格式 {"errcode", "errmsg", "detail"},errcode 为 0 即视为业务成功。
  • 本库不涉及登录与 Token 缓存,Token 由调用方自行管理并传入。

软件架构

py_tjbrhk_toolkit/
├── pyproject.toml
├── README.md
├── README.en.md
├── LICENSE
├── src/
│   └── py_tjbrhk_toolkit/
│       ├── __init__.py
│       ├── py.typed
│       └── speaker/
│           ├── __init__.py
│           ├── client.py     # SpeakerClient(同步)与 AsyncSpeakerClient(异步)
│           └── models.py     # Pydantic 响应模型
├── tests/
│   └── speaker/
│       ├── __init__.py
│       ├── conftest.py
│       ├── test_speaker_sync.py
│       └── test_speaker_async.py
└── examples/
    └── speaker/
        ├── __init__.py
        ├── .env.example
        ├── example_common.py
        ├── example_notify.py
        ├── example_bind.py
        ├── example_add.py
        ├── example_modify_boot_voice_wav.py
        ├── example_async_notify.py
        ├── example_async_bind.py
        ├── example_async_add.py
        └── example_async_modify_boot_voice_wav.py

安装教程

推荐使用 uv 安装:

uv add py-tjbrhk-toolkit

或使用 pip 安装:

pip install py-tjbrhk-toolkit

从本地源码安装(开发模式):

uv venv .venv
source .venv/bin/activate
uv pip install -e .
uv pip install -e ".[dev]"

使用说明

from py_tjbrhk_toolkit.speaker.client import SpeakerClient

client = SpeakerClient(
    base_url="https://speaker.17laimai.cn/",
    token="your_token",
    id="your_speaker_id",
    version="1",
)

# 通知语音播报(流量版专用)
response = client.notify(message="[123]收款66元", vol=80)
print(response.json())

# 云音箱绑定(m=1 绑定,0 解绑,4 强制解绑)
response = client.bind(m=1, uid="user_123")

# 支付语音播报(price 单位为分)
response = client.add(price="3879", pt=1, vol=80)

# 更改语音信息(灰度测试,仅 402/404/502/504)
response = client.modify_boot_voice_wav(sound="欢迎光临", type=0, off_text="谢谢使用")

client.close()

异步模式:

import asyncio
from py_tjbrhk_toolkit.speaker.client import AsyncSpeakerClient


async def main():
    client = AsyncSpeakerClient(
        base_url="https://speaker.17laimai.cn/",
        token="your_token",
        id="your_speaker_id",
        version="1",
    )
    response = await client.async_notify(message="Hello World")
    print(response.json())
    await client.close()


asyncio.run(main())

所有客户端均支持 with / async with 上下文管理器,退出时自动关闭底层 httpx 客户端。

参与贡献

欢迎提交 Issue 和 Pull Request。在提交 PR 之前,请先运行测试并确保代码符合项目规范。

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request
uv pip install -e ".[dev]"
pytest

特技

  1. 基于 httpx 与 pydantic,提供同步(SpeakerClient)与异步(AsyncSpeakerClient)两种客户端。
  2. 严格基于官方 API 文档实现全部接口,支持 with / async with 上下文管理器,退出时自动关闭底层客户端。
  3. 提供中英文双语 README(README.md / README.en.md)。
  4. 采用 MIT 开源许可协议。

Metadata

Release files for py-tjbrhk-toolkit 3.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-tjbrhk-toolkit 3.0.5
File Size Uploaded Provenance
py_tjbrhk_toolkit-3.0.5.tar.gz 10.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for py-tjbrhk-toolkit 3.0.5
File Interpreter ABI Platform
py_tjbrhk_toolkit-3.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 20.4 kB

Release files / py_tjbrhk_toolkit-3.0.5.tar.gz

Download URL py_tjbrhk_toolkit-3.0.5.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3675712ee452c979ebeba3e5018459281d79eeec5851b6e6906612e0f160636a
BLAKE2b-256 checksum
How to use checksums
26f05c9648210747bd1bae604a8f3c1416716f18651ddd7bc5d01385a5fd7297
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.11

Release files / py_tjbrhk_toolkit-3.0.5-py3-none-any.whl

Download URL py_tjbrhk_toolkit-3.0.5-py3-none-any.whl
Size 9.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9c9c3e1c8c6fd64fd7bac48afed9a28eafb31290b8c5efaa3d28b7785886448
BLAKE2b-256 checksum
How to use checksums
588615ef9ee4a66ea525c6e3c5bfa41ac0e3eec95a3f3f388e1117c0a5b12097
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.11

Security for py-tjbrhk-toolkit 3.0.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page