跳到主要内容

架构

项目将公共接口、服务选择和厂商实现分开。

层级职责
核心层定义能力接口及与提供方无关的错误
注册层接收提供方注册并选择活动服务
提供方插件解析厂商配置并执行 API 请求
使用方插件使用所选服务,不依赖具体厂商

提供方生命周期​

提供方插件通过 ctx.aiProviders 注册 AiProvider。提供方包含稳定 ID、显示名称、可选设置元数据,以及其支持能力的工厂函数。注册受 Cordis 作用域管理,因此卸载插件会同时移除提供方。

主插件为所选提供方创建以下服务门面:

上下文服务能力
ctx.embeddings文本嵌入
ctx.rerankers重排
ctx.textToSpeech文本转语音
ctx.apiSpeechToText文件转录
ctx.streamingSpeechToText实时转录(提供方支持时)
ctx.imageGeneration图像生成

门面在每次调用时解析当前提供方,因此配置变更无需重建依赖插件即可生效。

语言模型路由​

语言模型以 DSH 模型路由注册,而不是作为只能选择一个的服务,因此多个已配置路由可以共存。提供方还可向 UI 描述带本地化标签和默认值的请求选项。

错误模型​

提供方错误会统一为 AiError,并带有稳定分类,例如 authentication、rate_limit、invalid_request 或 unavailable。使用方无需解析厂商错误文本即可处理失败。