* chore: add react developer tools to electron * feat: add small convert modal * feat: separate modals and add hugging face extension * feat: fully implement hugging face converter * fix: forgot to uncomment this... * fix: typo * feat: try hf-to-gguf script first and then use convert.py HF-to-GGUF has support for some unusual models maybe using convert.py first would be better but we can change the usage order later * fix: pre-install directory changed * fix: sometimes exit code is undefined * chore: download additional files for qwen * fix: event handling changed * chore: add one more necessary package * feat: download gguf-py from llama.cpp * fix: cannot interpret wildcards on GNU tar Co-authored-by: hiento09 <136591877+hiento09@users.noreply.github.com> --------- Co-authored-by: hiento09 <136591877+hiento09@users.noreply.github.com>
31 lines
1.0 KiB
TypeScript
31 lines
1.0 KiB
TypeScript
import { BaseExtension, ExtensionTypeEnum } from '../extension'
|
|
import { HuggingFaceInterface, HuggingFaceRepoData, Quantization } from '../types/huggingface'
|
|
import { Model } from '../types/model'
|
|
|
|
/**
|
|
* Hugging Face extension for converting HF models to GGUF.
|
|
*/
|
|
export abstract class HuggingFaceExtension extends BaseExtension implements HuggingFaceInterface {
|
|
interrupted = false
|
|
/**
|
|
* Hugging Face extension type.
|
|
*/
|
|
type(): ExtensionTypeEnum | undefined {
|
|
return ExtensionTypeEnum.HuggingFace
|
|
}
|
|
|
|
abstract downloadModelFiles(
|
|
repoID: string,
|
|
repoData: HuggingFaceRepoData,
|
|
network?: { ignoreSSL?: boolean; proxy?: string }
|
|
): Promise<void>
|
|
abstract convert(repoID: string): Promise<void>
|
|
abstract quantize(repoID: string, quantization: Quantization): Promise<void>
|
|
abstract generateMetadata(
|
|
repoID: string,
|
|
repoData: HuggingFaceRepoData,
|
|
quantization: Quantization
|
|
): Promise<void>
|
|
abstract cancelConvert(repoID: string, repoData: HuggingFaceRepoData): Promise<void>
|
|
}
|