Compare commits

...

2 commits

Author SHA1 Message Date
Jeffrey Morgan 9e8b58bd1f
Merge 89d2bb3ad5 into 31b8c6a214 2025-12-05 10:31:44 +01:00
Sos Pogosyan 31b8c6a214
fix(api): correct Content-Type header for /api/chat and /api/generate when using cloud models (#13279)
---------

Co-authored-by: Pogosyan Sos <sos_pogosyan@MacBook-Pro-Sos.local>
Co-authored-by: Patrick Devine <patrick@infrahq.com>
2025-12-04 21:33:07 -08:00

View file

@ -262,6 +262,12 @@ func (s *Server) GenerateHandler(c *gin.Context) {
slog.Warn("embedded messages in the model not supported with '/api/generate'; try '/api/chat' instead") slog.Warn("embedded messages in the model not supported with '/api/generate'; try '/api/chat' instead")
} }
contentType := "application/x-ndjson"
if req.Stream != nil && !*req.Stream {
contentType = "application/json; charset=utf-8"
}
c.Header("Content-Type", contentType)
fn := func(resp api.GenerateResponse) error { fn := func(resp api.GenerateResponse) error {
resp.Model = origModel resp.Model = origModel
resp.RemoteModel = m.Config.RemoteModel resp.RemoteModel = m.Config.RemoteModel
@ -303,12 +309,6 @@ func (s *Server) GenerateHandler(c *gin.Context) {
return return
} }
contentType := "application/json; charset=utf-8"
if req.Stream != nil && *req.Stream {
contentType = "application/x-ndjson"
}
c.Header("Content-Type", contentType)
return return
} }
@ -1939,6 +1939,12 @@ func (s *Server) ChatHandler(c *gin.Context) {
} }
} }
contentType := "application/x-ndjson"
if req.Stream != nil && !*req.Stream {
contentType = "application/json; charset=utf-8"
}
c.Header("Content-Type", contentType)
fn := func(resp api.ChatResponse) error { fn := func(resp api.ChatResponse) error {
resp.Model = origModel resp.Model = origModel
resp.RemoteModel = m.Config.RemoteModel resp.RemoteModel = m.Config.RemoteModel
@ -1980,12 +1986,6 @@ func (s *Server) ChatHandler(c *gin.Context) {
return return
} }
contentType := "application/json; charset=utf-8"
if req.Stream != nil && *req.Stream {
contentType = "application/x-ndjson"
}
c.Header("Content-Type", contentType)
return return
} }