37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { BaseExtension, ExtensionTypeEnum } from '../extension'
|
|
import {
|
|
GpuSetting,
|
|
HuggingFaceRepoData,
|
|
ImportingModel,
|
|
Model,
|
|
ModelInterface,
|
|
OptionType,
|
|
} from '../../types'
|
|
|
|
/**
|
|
* Model extension for managing models.
|
|
*/
|
|
export abstract class ModelExtension extends BaseExtension implements ModelInterface {
|
|
/**
|
|
* Model extension type.
|
|
*/
|
|
type(): ExtensionTypeEnum | undefined {
|
|
return ExtensionTypeEnum.Model
|
|
}
|
|
|
|
abstract downloadModel(
|
|
model: Model,
|
|
gpuSettings?: GpuSetting,
|
|
network?: { proxy: string; ignoreSSL?: boolean }
|
|
): Promise<void>
|
|
abstract cancelModelDownload(modelId: string): Promise<void>
|
|
abstract deleteModel(modelId: string): Promise<void>
|
|
abstract saveModel(model: Model): Promise<void>
|
|
abstract getDownloadedModels(): Promise<Model[]>
|
|
abstract getConfiguredModels(): Promise<Model[]>
|
|
abstract importModels(models: ImportingModel[], optionType: OptionType): Promise<void>
|
|
abstract updateModelInfo(modelInfo: Partial<Model>): Promise<Model>
|
|
abstract fetchHuggingFaceRepoData(repoId: string): Promise<HuggingFaceRepoData>
|
|
abstract getDefaultModel(): Promise<Model>
|
|
}
|