From 08b141beba4be2e80abc67157027518c2443ef91 Mon Sep 17 00:00:00 2001 From: glzjin Date: Fri, 11 Aug 2023 22:24:11 +0800 Subject: [PATCH] fix: update tiktoken-go's version to fix resource consumption problem (#392, close #161) --- controller/relay-audio.go | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 controller/relay-audio.go diff --git a/controller/relay-audio.go b/controller/relay-audio.go new file mode 100644 index 00000000..ae58f439 --- /dev/null +++ b/controller/relay-audio.go @@ -0,0 +1,44 @@ +package controller + +import ( + "bytes" + "io" + "log" + "net/http" + + "github.com/dhowden/tag" + "github.com/gin-gonic/gin" +) + +func getMetadata(data []byte) tag.Metadata { + r := bytes.NewReader(data) // create a bytes.Reader from the data + m, err := tag.ReadFrom(r) // read the metadata from the reader + if err != nil { + log.Fatal(err) + } + return m +} + +func relayAudioHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode { + // Get form-data file + file, _, err := c.Request.FormFile("file") + if err != nil { + return errorWrapper(err, "err_get_audio_file", http.StatusBadRequest) + } + defer file.Close() + + // Read the file data + data, err := io.ReadAll(file) + if err != nil { + return errorWrapper(err, "err_read_audio_file", http.StatusBadRequest) + } + + // Get metadata + m := getMetadata(data) + + // To json + + log.Print(m.Raw()) + + return nil +}