核心扩展点
AIClient-2-API 的设计高度模块化,允许开发者通过以下三个关键扩展点来集成新模型或自定义功能:
1. 协议转换扩展 (Converter Strategy)
这是最常见的扩展点,当你需要支持一种全新的 API 协议(例如 DeepSeek 或特定平台的私有协议)时,需要在此处进行扩展。
- 核心路径:
src/converters/strategies/ - 操作: 继承
BaseConverter,实现toOpenAIRequest、toOpenAIResponse等方法。 - 注册: 在
src/converters/register-converters.js中通过ConverterFactory注册。
2. 提供商驱动扩展 (Provider Core)
当你需要改变与底层服务交互的方式(例如从 API Key 认证改为复杂的 OAuth 流程,或使用特殊的 HTTP Client 设置)时。
- 核心路径:
src/providers/ - 接口:
ApiServiceAdapter(位于src/providers/adapter.js)。 - 实现: 创建新的驱动模块(如
src/providers/new_provider/new_core.js)。
3. 插件系统 (Plugin Hooks)
插件系统允许你在不修改核心代码的情况下,拦截和处理请求/响应流。
- 核心路径:
src/plugins/ - 钩子点:
onContentGenerated: 生成内容后的回调。onStreamChunk: 流式分块被发送到客户端前的拦截。onUnaryResponse: 非流式响应发送前的拦截。
4. 关键常量定义
在引入任何新提供商或协议前,需先在 src/utils/common.js 中定义:
MODEL_PROTOCOL_PREFIX: 协议前缀(如deepseek)。MODEL_PROVIDER: 提供商类型标识。