Files
youchat_proxy/provider.mjs
T

52 lines
1.6 KiB
JavaScript

import YouProvider from './you_providers/youProvider.mjs';
import PerplexityProvider from './perplexity_providers/perplexityProvider.mjs';
import HappyApiProvider from './happyapi_providers/happyApi.mjs';
import {config as youConfig} from './config.mjs';
import {config as perplexityConfig} from './perplexityConfig.mjs';
class ProviderManager {
constructor() {
// 根据环境变量初始化提供者
const activeProvider = process.env.ACTIVE_PROVIDER || 'you';
switch (activeProvider) {
case 'you':
this.provider = new YouProvider(youConfig);
break;
case 'perplexity':
this.provider = new PerplexityProvider(perplexityConfig);
break;
case 'happyapi':
this.provider = new HappyApiProvider();
break;
default:
throw new Error('Invalid ACTIVE_PROVIDER. Use "you", "perplexity", or "happyapi".');
}
console.log(`Initialized with ${activeProvider} provider.`);
}
async init() {
await this.provider.init(this.provider.config);
console.log(`Provider initialized.`);
}
async getCompletion(params) {
return this.provider.getCompletion(params);
}
getCurrentProvider() {
return this.provider.constructor.name;
}
getLogger() {
return this.provider.logger;
}
getSessionManager() {
return this.provider.sessionManager;
}
}
export default ProviderManager;