Skip to content

核心扩展点

AIClient-2-API 的设计高度模块化,允许开发者通过以下三个关键扩展点来集成新模型或自定义功能:

1. 协议转换扩展 (Converter Strategy)

这是最常见的扩展点,当你需要支持一种全新的 API 协议(例如 DeepSeek 或特定平台的私有协议)时,需要在此处进行扩展。

  • 核心路径: src/converters/strategies/
  • 操作: 继承 BaseConverter,实现 toOpenAIRequesttoOpenAIResponse 等方法。
  • 注册: 在 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: 提供商类型标识。