创建或扩展提供方
提供方插件负责将统一接口转换为特定厂商的 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、取消传播、流清理、错误归一化、异常响应、配置实时变更及卸载清理。
发布前运行工作区测试和类型检查。不要只依赖公共云服务进行断言;兼容的本地服务器也是重要使用场景。