30 lines
562 B
Go
30 lines
562 B
Go
package resources
|
|
|
|
import (
|
|
"fmt"
|
|
"path/filepath"
|
|
)
|
|
|
|
func GetModel(modelType string) (string, error) {
|
|
fileURL := fmt.Sprintf("https://huggingface.co/ggerganov/whisper.cpp/resolve/main/%s", modelType)
|
|
filePath := modelType
|
|
|
|
isModelFileExists := IsFileExists(filePath)
|
|
|
|
if !isModelFileExists {
|
|
fmt.Println("Model not found.")
|
|
err := DownloadFile(fileURL, filePath)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
}
|
|
|
|
absPath, err := filepath.Abs(filePath)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
fmt.Printf("Model found: %s\n", absPath)
|
|
return filePath, nil
|
|
}
|