diff --git a/README.md b/README.md index 9a17423..a2b0842 100644 --- a/README.md +++ b/README.md @@ -92,23 +92,27 @@ port = 1883 --- -## 2. Worker 加载配置 (`workers/config.toml`) +## 2. 插件注册配置(`workers//config.toml` 的 `[workers]` 节) -定义哪些插件被加载及运行时参数。每个插件一个 `[[workers]]` 数组项。 +定义哪些插件被加载及运行时参数。网关启动时扫描 `config/workers/*/config.toml` 自动发现; +**每个插件在自己目录的 `config.toml` 中用 `[workers]` 节注册**(与 `[worker]` 路由默认值共存于同一文件)。 ```toml -[[workers]] -type = "auth" # 插件类型名 +# config/workers/auth/config.toml +[workers] +type = "auth" # 插件类型名(worker type) module = "plugins.auth" # Python 模块路径 -factory = "create_workers" # 工厂函数名 -cleanup = "cleanup" # 清理函数名(可选) +factory = "create_workers" # 工厂函数名(Plugin 基类绑定的方法) +cleanup = "cleanup" # 清理函数名 count = 3 # Worker 副本数 [workers.config] -type = "auth" -data_dir = "./data" # 插件自定义配置 +data_dir = "./data" # 插件运行时配置(展平后传给 create_workers) ``` +> 旧式全局文件 `config/workers/config.toml`(`[[workers]]` 数组)仍兼容读取, +> 仅加载其中尚未由各插件自注册的类型,新插件请勿使用。 + ### 字段说明 | 字段 | 必填 | 说明 | @@ -118,13 +122,15 @@ data_dir = "./data" # 插件自定义配置 | `factory` | ✅ | 工厂函数名,用于创建 Worker 实例 | | `cleanup` | ❌ | 清理函数名,插件卸载时调用 | | `count` | ✅ | Worker 副本数(并行处理请求数) | -| `[workers.config]` | ❌ | 传递给插件的自定义配置字典 | +| `[workers.config]` | ❌ | 传递给插件的运行时配置(展平合并,子节见各插件) | +| `[[workers.mqtt_topics]]` | ❌ | 插件声明的 MQTT Bridge 额外订阅主题(topic/subject/response_topic) | --- -## 3. 分组配置 (`workers//config.toml`) +## 3. 分组配置(`workers//config.toml` 的 `[worker]` 节) -每个插件目录下的 `config.toml` 定义该插件所有路由的公共默认值。 +每个插件目录下的 `config.toml` 定义该插件所有路由的公共默认值 +(与第 2 节的 `[workers]` 注册节共存于同一文件)。 ```toml [worker] @@ -235,9 +241,9 @@ uv run python -m chongming.scripts.gen_models ``` config.toml (全局) - └─ workers/config.toml (插件注册) - └─ workers//config.toml (分组默认值) - └─ workers//.toml (端点覆盖) + └─ workers//config.toml (插件注册 [workers] 节 + 分组默认值 [worker] 节) + └─ workers//.toml (端点覆盖) ``` 每层可覆盖上层默认值,端点级字段 (`timeout`, `cacheable`, `auth_required`, `internal`) 优先级最高。 +(旧式 `workers/config.toml` 全局注册文件仍兼容读取,仅作兜底。) diff --git a/workers/aibox_sophon_adapter/config.toml b/workers/aibox_sophon_adapter/config.toml index b4204b1..979b6a5 100644 --- a/workers/aibox_sophon_adapter/config.toml +++ b/workers/aibox_sophon_adapter/config.toml @@ -22,7 +22,8 @@ tags = ["aibox_sophon_adapter", "sophon", "adapter"] # subject: 可选,目标 Zenoh subject,支持 {1} {2}... 占位符; # 默认 "<插件类型>." # response_topic: 可选,响应发布主题,支持占位符;默认 "<实际匹配主题>/response" -# 请求负载同样支持 _method / _timeout / _cacheable 控制字段 +# 请求负载为信封协议: {"meta": {"method"/"timeout"/"cacheable"}, "data": {...}} +# meta 各字段可选(method 默认 GET,timeout 默认 30s,cacheable 默认 false) # 盒子侧只支持设置根主题:根主题已改为 box(非 chongming 保留命名空间,避免被网关 Bridge 拦截), # 盒子心跳发布到 box/aibox_sophon/board_ping,映射到本插件的心跳 RPC。 [[workers.mqtt_topics]]