feat(app): initialize new model management

This commit is contained in:
ItzCrazyKns
2025-10-11 17:59:27 +05:30
parent 535c0b9897
commit f39638fe02
4 changed files with 276 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
import { ModelProviderUISection, UIConfigField } from '../config/types';
import { ProviderMetadata } from './types';
import BaseModelProvider from './providers/baseProvider';
import OpenAIProvider from './providers/openai';
interface ProviderClass<T> {
new (config: T): BaseModelProvider<T>;
getProviderConfigFields(): UIConfigField[];
getProviderMetadata(): ProviderMetadata;
}
const providers: Record<string, ProviderClass<any>> = {
openai: OpenAIProvider,
};
class ModelRegistry {
constructor() {}
getUIConfigSection(): ModelProviderUISection[] {
return Object.entries(providers).map(([k, p]) => {
const configFields = p.getProviderConfigFields();
const metadata = p.getProviderMetadata();
return {
fields: configFields,
key: k,
name: metadata.name,
};
});
}
}
export default ModelRegistry;