UNPKG

route-claudecode

Version:

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

72 lines 2.22 kB
/** * 统一OpenAI非流式处理基类 (重构版) * 项目所有者: Jason Zhang * * Provider统一使用非流式调用API,然后根据需求模拟流式响应 * 遵循零硬编码、零Fallback、零静默失败原则 */ import OpenAI from 'openai'; import { BaseRequest, BaseResponse } from '@/types'; import { createOpenAITransformer } from '@/transformers/openai'; /** * 统一API处理配置接口 */ export interface APIHandlerConfig { providerName: string; openaiClient: OpenAI; transformer?: ReturnType<typeof createOpenAITransformer>; } /** * 统一的OpenAI API处理类 - 只做非流式调用 * 所有Provider都通过此类进行统一的非流式API调用 */ export declare class OpenAIAPIHandler { private config; private transformer; constructor(config: APIHandlerConfig); /** * 统一的非流式API调用 - 所有工具转换在transformer中处理 */ callAPI(request: BaseRequest): Promise<BaseResponse>; /** * 检查是否是超时错误 */ private isTimeoutError; /** * 获取provider名称 */ get providerName(): string; /** * 🔧 CRITICAL FIX: 应用响应格式兼容性修复 * 解决ModelScope/ShuaiHong等非标准API的格式问题 */ private applyResponseFormatFix; /** * 从非标准响应中提取内容 */ private extractContent; /** * 从非标准响应中提取工具调用 */ private extractToolCalls; /** * 从非标准响应中提取finish_reason */ private extractFinishReason; } /** * 流式响应模拟器 - 将非流式响应转换为流式格式 */ export declare class StreamingSimulator { /** * 将BaseResponse转换为Anthropic流式事件序列 */ static simulateStreamingResponse(response: BaseResponse, requestId: string): Generator<any, void, unknown>; } /** * 创建API处理器实例 */ export declare function createAPIHandler(config: APIHandlerConfig): OpenAIAPIHandler; export declare function createStreamingHandler(config: APIHandlerConfig): OpenAIAPIHandler; export type OpenAIStreamingHandler = OpenAIAPIHandler; //# sourceMappingURL=openai-streaming-handler.d.ts.map