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