From 6da4567e378f9c1c543715d300e2815ef81bb2fb Mon Sep 17 00:00:00 2001 From: Matthew Campbell Date: Thu, 11 May 2023 15:08:24 +0700 Subject: [PATCH 1/3] fix upload api to copy data out of the file instead off of disk --- api/openai.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/api/openai.go b/api/openai.go index 6279a69c627f..216b5a776cc7 100644 --- a/api/openai.go +++ b/api/openai.go @@ -5,6 +5,7 @@ import ( "bytes" "encoding/json" "fmt" + "io" "net/http" "os" "path" @@ -14,7 +15,6 @@ import ( model "github.com/go-skynet/LocalAI/pkg/model" "github.com/go-skynet/LocalAI/pkg/whisper" "github.com/gofiber/fiber/v2" - "github.com/otiai10/copy" "github.com/rs/zerolog/log" "github.com/valyala/fasthttp" ) @@ -409,16 +409,28 @@ func transcriptEndpoint(cm ConfigMerger, debug bool, loader *model.ModelLoader, if err != nil { return c.Status(http.StatusBadRequest).JSON(fiber.Map{"error": err.Error()}) } + f, err := file.Open() + if err != nil { + return c.Status(http.StatusBadRequest).JSON(fiber.Map{"error": err.Error()}) + } + defer f.Close() log.Debug().Msgf("Audio file: %+v", file) dir, err := os.MkdirTemp("", "whisper") + if err != nil { return err } defer os.RemoveAll(dir) dst := filepath.Join(dir, path.Base(file.Filename)) - if err := copy.Copy(file.Filename, dst); err != nil { + dst_file, err := os.Create(dst) + if err != nil { + return c.Status(http.StatusBadRequest).JSON(fiber.Map{"error": err.Error()}) + } + + if _, err := io.Copy(dst_file, f); err != nil { + log.Debug().Msgf("Audio file6 %+v - %+v - err %+v", file.Filename, dst, err) return err } @@ -426,7 +438,7 @@ func transcriptEndpoint(cm ConfigMerger, debug bool, loader *model.ModelLoader, tr, err := whisper.Transcript(filepath.Join(loader.ModelPath, config.Model), dst, input.Language) if err != nil { - return err + return c.Status(http.StatusBadRequest).JSON(fiber.Map{"error": err.Error()}) } log.Debug().Msgf("Trascribed: %+v", tr) From 8d4bcc4aeff8be5115f0a423c5265ddd79e07c7f Mon Sep 17 00:00:00 2001 From: Matthew Campbell Date: Thu, 11 May 2023 15:38:13 +0700 Subject: [PATCH 2/3] typo --- api/openai.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/openai.go b/api/openai.go index 216b5a776cc7..3a5d48b048c4 100644 --- a/api/openai.go +++ b/api/openai.go @@ -430,7 +430,7 @@ func transcriptEndpoint(cm ConfigMerger, debug bool, loader *model.ModelLoader, } if _, err := io.Copy(dst_file, f); err != nil { - log.Debug().Msgf("Audio file6 %+v - %+v - err %+v", file.Filename, dst, err) + log.Debug().Msgf("Audio file %+v - %+v - err %+v", file.Filename, dst, err) return err } From 43cf25f5e9d1d2c0928b054c940264e8ce458267 Mon Sep 17 00:00:00 2001 From: Matthew Campbell Date: Thu, 11 May 2023 15:39:07 +0700 Subject: [PATCH 3/3] typo --- api/openai.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/openai.go b/api/openai.go index 3a5d48b048c4..171aa68d2460 100644 --- a/api/openai.go +++ b/api/openai.go @@ -424,12 +424,12 @@ func transcriptEndpoint(cm ConfigMerger, debug bool, loader *model.ModelLoader, defer os.RemoveAll(dir) dst := filepath.Join(dir, path.Base(file.Filename)) - dst_file, err := os.Create(dst) + dstFile, err := os.Create(dst) if err != nil { return c.Status(http.StatusBadRequest).JSON(fiber.Map{"error": err.Error()}) } - if _, err := io.Copy(dst_file, f); err != nil { + if _, err := io.Copy(dstFile, f); err != nil { log.Debug().Msgf("Audio file %+v - %+v - err %+v", file.Filename, dst, err) return err }