跳到主要内容

创建或扩展提供方

提供方插件负责将统一接口转换为特定厂商的 API。可参考 @dsh-ai-providers/openai 和 @dsh-ai-providers/jina-cohere 的实现。

1. 定义并验证配置​

使用 Schemastery Config schema 定义连接、模型名称和能力选项。密钥保存在 DSH 凭据服务中,插件配置只保存凭据引用。

在配置边界规范化并验证基础 URL;发起请求前拒绝不支持的协议和无效地址。

2. 实现能力工厂​

创建具有稳定 ID 的 AiProvider,并为每项受支持能力提供工厂函数。工厂解析当前配置,返回符合核心接口的实现。

不支持的能力应直接省略,而不是实现一个始终失败的方法。声音发现等可选操作在厂商没有对应端点时可以返回空结果。

3. 通过上下文注册​

在插件作用域内向 ctx.aiProviders 注册。注册需要清理时使用 ctx.effect(),确保热重载能正确移除提供方。

ctx.effect(() => ctx.aiProviders.register(provider))

错误应映射到稳定的 AiError 分类,并保留不含凭据的厂商响应作为诊断信息。

4. 暴露设置元数据​

为设置界面描述可复用连接和能力选项,并提供英文和简体中文标签。仅启动时生效的选项应明确标记;其余配置应支持实时更新。

语言模型集成还可提供路由工厂和本地化请求选项。路由 ID 必须保持稳定,因为其他 DSH 配置可能引用它。

5. 验证接口契约​

至少测试请求和响应映射、凭据解析、基础 URL、取消传播、流清理、错误归一化、异常响应、配置实时变更及卸载清理。

发布前运行工作区测试和类型检查。不要只依赖公共云服务进行断言;兼容的本地服务器也是重要使用场景。