UNPKG

route-claudecode

Version:

Advanced routing and transformation system for Claude Code outputs to multiple AI providers

56 lines 1.89 kB
/** * Unified OpenAI Client - 统一OpenAI客户端实现 * 项目所有者: Jason Zhang * * 合并Pure Client和SDK Client的功能,消除重复代码 * 遵循零硬编码、零Fallback、零沉默失败原则 * 符合六层清晰架构:Provider只做API调用,所有转换在Transformer层 */ import { BaseRequest, BaseResponse, Provider, ProviderConfig } from '@/types'; export interface UnifiedOpenAIConfig extends ProviderConfig { clientType?: 'sdk' | 'pure'; sdkOptions?: { timeout?: number; maxRetries?: number; defaultHeaders?: Record<string, string>; }; } /** * 统一OpenAI客户端 - 合并重复实现 * 基于项目记忆中的成功重构经验 */ export declare class UnifiedOpenAIClient implements Provider { readonly name: string; readonly type = "openai-unified"; readonly config: UnifiedOpenAIConfig; private openaiClient; private validatedConfig; private sessionManager; constructor(config: UnifiedOpenAIConfig, providerId: string); /** * 🎯 发送非流式请求 - 统一实现 * 假设request.metadata.openaiRequest包含已转换的OpenAI格式请求 */ sendRequest(request: BaseRequest): Promise<BaseResponse>; /** * 🎯 发送流式请求 - 统一实现 */ sendStreamRequest(request: BaseRequest): AsyncIterable<any>; /** * 🔧 健康检查 - 统一实现 */ isHealthy(): Promise<boolean>; /** * 🎯 获取支持的模型 - 统一实现 */ getSupportedModels(): Promise<string[]>; /** * 🔄 包装原始响应为BaseResponse格式 */ private wrapResponse; } /** * 🎯 工厂函数:创建统一OpenAI客户端 */ export declare function createUnifiedOpenAIClient(config: UnifiedOpenAIConfig, providerId: string): UnifiedOpenAIClient; //# sourceMappingURL=unified-client.d.ts.map