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