diff --git a/proxy/process.go b/proxy/process.go index 0969d1c..fa31c18 100644 --- a/proxy/process.go +++ b/proxy/process.go @@ -8,6 +8,7 @@ import ( "net/http" "net/url" "os/exec" + "strconv" "strings" "sync" "syscall" @@ -439,6 +440,12 @@ func (p *Process) ProxyRequest(w http.ResponseWriter, r *http.Request) { return } req.Header = r.Header.Clone() + + contentLength, err := strconv.ParseInt(req.Header.Get("content-length"), 10, 64) + if err == nil { + req.ContentLength = contentLength + } + resp, err := client.Do(req) if err != nil { http.Error(w, err.Error(), http.StatusBadGateway) diff --git a/proxy/proxymanager.go b/proxy/proxymanager.go index dad43ec..9763722 100644 --- a/proxy/proxymanager.go +++ b/proxy/proxymanager.go @@ -371,6 +371,7 @@ func (pm *ProxyManager) proxyOAIHandler(c *gin.Context) { // dechunk it as we already have all the body bytes see issue #11 c.Request.Header.Del("transfer-encoding") + c.Request.Header.Del("content-length") c.Request.Header.Add("content-length", strconv.Itoa(len(bodyBytes))) if err := processGroup.ProxyRequest(realModelName, c.Writer, c.Request); err != nil {