工作流概览
当客户端向 AIClient-2-API 的 API 服务发送请求时,其大致工作流程如下:
- 请求接收:
api-server.js接收到客户端请求。 - 认证与协议识别:系统验证 API 密钥,并由
api-manager.js识别请求协议(OpenAI/Gemini/Claude)。 - 请求转换 (Converter):
ConverterFactory根据识别的协议,将请求体转换为内部统一格式。 - 路由与账号调度:如果是
auto模式,系统会根据模型名从ProviderPoolManager中选择最优的提供商账号池。 - 适配器执行 (Adapter):
src/providers/adapter.js根据确定的提供商,调用对应的 Core 模块(如gemini-core.js)与实际 LLM API 通信。 - 响应转换 (Converter):LLM 返回原生响应后,转换器再次介入,将其转换为客户端期望的协议格式。
- 插件钩子触发:在响应发送前后,系统会触发插件钩子(如
onStreamChunk),允许自定义逻辑拦截处理。 - 响应发送:最终结果发送回客户端。
通过这种分层和模块化的设计,AIClient-2-API 实现了高度的灵活性和可维护性,能够轻松扩展以支持新的 LLM 或 API 格式。