route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
56 lines • 1.89 kB
TypeScript
/**
* 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