新增对 OpenAI Responses API 端点的部分支持,包括请求转换、流式响应处理和供应商适配。主要变更: - 新增 OpenAIResponsesApiService 核心服务实现 - 实现 Claude/Gemini 到 Responses API 的双向协议转换(能聊天,不能调用工具) - 添加流式响应状态管理和事件生成机制 - 扩展路由支持 /v1/responses 端点 - 更新文档说明配置方法和使用示例
27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
import { MODEL_PROTOCOL_PREFIX } from './common.js';
|
|
import { GeminiStrategy } from './gemini/gemini-strategy.js';
|
|
import { OpenAIStrategy } from './openai/openai-strategy.js';
|
|
import { ClaudeStrategy } from './claude/claude-strategy.js';
|
|
import { ResponsesAPIStrategy } from './openai/openai-responses-strategy.js';
|
|
|
|
/**
|
|
* Strategy factory that returns the appropriate strategy instance based on the provider protocol.
|
|
*/
|
|
class ProviderStrategyFactory {
|
|
static getStrategy(providerProtocol) {
|
|
switch (providerProtocol) {
|
|
case MODEL_PROTOCOL_PREFIX.GEMINI:
|
|
return new GeminiStrategy();
|
|
case MODEL_PROTOCOL_PREFIX.OPENAI:
|
|
return new OpenAIStrategy();
|
|
case MODEL_PROTOCOL_PREFIX.OPENAI_RESPONSES:
|
|
return new ResponsesAPIStrategy();
|
|
case MODEL_PROTOCOL_PREFIX.CLAUDE:
|
|
return new ClaudeStrategy();
|
|
default:
|
|
throw new Error(`Unsupported provider protocol: ${providerProtocol}`);
|
|
}
|
|
}
|
|
}
|
|
|
|
export { ProviderStrategyFactory };
|