- 添加 Codex OAuth 提供商支持,包括核心服务、适配器和策略实现 - 在用量管理页面新增支持用量查询的提供商列表显示 - 为 Codex 添加专用的用量查询接口和格式化显示 - 更新 Docker 配置以暴露 Codex OAuth 回调端口 1455 - 完善多语言文档,记录 Codex 配置和使用方法 - 修复流式响应中工具调用的 finish_reason 处理逻辑 - 增强 AI 监控插件对数组类型 chunk 的处理能力
33 lines
1.5 KiB
JavaScript
33 lines
1.5 KiB
JavaScript
import { MODEL_PROTOCOL_PREFIX } from '../utils/common.js';
|
|
import { GeminiStrategy } from '../providers/gemini/gemini-strategy.js';
|
|
import { OpenAIStrategy } from '../providers/openai/openai-strategy.js';
|
|
import { ClaudeStrategy } from '../providers/claude/claude-strategy.js';
|
|
import { ResponsesAPIStrategy } from '../providers/openai/openai-responses-strategy.js';
|
|
import { CodexResponsesAPIStrategy } from '../providers/openai/codex-responses-strategy.js';
|
|
import { ForwardStrategy } from '../providers/forward/forward-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();
|
|
case MODEL_PROTOCOL_PREFIX.CODEX:
|
|
return new CodexResponsesAPIStrategy();
|
|
case MODEL_PROTOCOL_PREFIX.FORWARD:
|
|
return new ForwardStrategy();
|
|
default:
|
|
throw new Error(`Unsupported provider protocol: ${providerProtocol}`);
|
|
}
|
|
}
|
|
}
|
|
|
|
export { ProviderStrategyFactory };
|