windows runner fixes (#637)
This commit is contained in:
parent
76db4a49cf
commit
9771b1ec51
1 changed files with 7 additions and 4 deletions
11
llm/llama.go
11
llm/llama.go
|
@ -64,27 +64,29 @@ func chooseRunners(workDir, runnerType string) []ModelRunner {
|
||||||
runnerAvailable := false // if no runner files are found in the embed, this flag will cause a fast fail
|
runnerAvailable := false // if no runner files are found in the embed, this flag will cause a fast fail
|
||||||
for _, r := range runners {
|
for _, r := range runners {
|
||||||
// find all the files in the runner's bin directory
|
// find all the files in the runner's bin directory
|
||||||
files, err := fs.Glob(llamaCppEmbed, filepath.Join(filepath.Dir(r), "*"))
|
files, err := fs.Glob(llamaCppEmbed, path.Join(path.Dir(r), "*"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// this is expected, ollama may be compiled without all runners packed in
|
// this is expected, ollama may be compiled without all runners packed in
|
||||||
log.Printf("%s runner not found: %v", r, err)
|
log.Printf("%s runner not found: %v", r, err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
runnerAvailable = true
|
|
||||||
|
|
||||||
for _, f := range files {
|
for _, f := range files {
|
||||||
|
runnerAvailable = true
|
||||||
|
|
||||||
srcFile, err := llamaCppEmbed.Open(f)
|
srcFile, err := llamaCppEmbed.Open(f)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("read llama runner %s: %v", f, err)
|
log.Fatalf("read llama runner %s: %v", f, err)
|
||||||
}
|
}
|
||||||
defer srcFile.Close()
|
defer srcFile.Close()
|
||||||
|
|
||||||
// create the directory in case it does not exist
|
// create the directory in case it does not exist, filepath.Dir() converts the file path to the OS's format
|
||||||
destPath := filepath.Join(workDir, filepath.Dir(f))
|
destPath := filepath.Join(workDir, filepath.Dir(f))
|
||||||
if err := os.MkdirAll(destPath, 0o755); err != nil {
|
if err := os.MkdirAll(destPath, 0o755); err != nil {
|
||||||
log.Fatalf("create runner temp dir %s: %v", filepath.Dir(f), err)
|
log.Fatalf("create runner temp dir %s: %v", filepath.Dir(f), err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// create the path to the destination file, filepath.Base() converts the file path to the OS's format
|
||||||
destFile := filepath.Join(destPath, filepath.Base(f))
|
destFile := filepath.Join(destPath, filepath.Base(f))
|
||||||
|
|
||||||
_, err = os.Stat(destFile)
|
_, err = os.Stat(destFile)
|
||||||
|
@ -111,7 +113,8 @@ func chooseRunners(workDir, runnerType string) []ModelRunner {
|
||||||
// return the runners to try in priority order
|
// return the runners to try in priority order
|
||||||
localRunnersByPriority := []ModelRunner{}
|
localRunnersByPriority := []ModelRunner{}
|
||||||
for _, r := range runners {
|
for _, r := range runners {
|
||||||
localRunnersByPriority = append(localRunnersByPriority, ModelRunner{Path: path.Join(workDir, r)})
|
// clean the ModelRunner paths so that they match the OS we are running on
|
||||||
|
localRunnersByPriority = append(localRunnersByPriority, ModelRunner{Path: filepath.Clean(path.Join(workDir, r))})
|
||||||
}
|
}
|
||||||
|
|
||||||
return localRunnersByPriority
|
return localRunnersByPriority
|
||||||
|
|
Loading…
Reference in a new issue