AIClient-2-API/src/provider-strategies.js
hex2077 dfe7ce914e feat(api): 添加 OpenAI Responses API 支持
新增对 OpenAI Responses API 端点的部分支持,包括请求转换、流式响应处理和供应商适配。主要变更:

- 新增 OpenAIResponsesApiService 核心服务实现
- 实现 Claude/Gemini 到 Responses API 的双向协议转换(能聊天,不能调用工具)
- 添加流式响应状态管理和事件生成机制
- 扩展路由支持 /v1/responses 端点
- 更新文档说明配置方法和使用示例
2025-10-16 23:26:36 +08:00

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 };