Chore: request cleanup

This commit is contained in:
Grail Finder
2025-12-18 15:22:03 +03:00
parent 8cdec5e544
commit 5f852418d8

62
bot.go
View File

@@ -330,59 +330,19 @@ func fetchLCPModels() ([]string, error) {
// sendMsgToLLM expects streaming resp // sendMsgToLLM expects streaming resp
func sendMsgToLLM(body io.Reader) { func sendMsgToLLM(body io.Reader) {
choseChunkParser() choseChunkParser()
var req *http.Request req, err := http.NewRequest("POST", cfg.CurrentAPI, body)
var err error if err != nil {
// Capture and log the request body for debugging logger.Error("newreq error", "error", err)
if _, ok := body.(*io.LimitedReader); ok { if err := notifyUser("error", "apicall failed:"+err.Error()); err != nil {
// If it's a LimitedReader, we need to handle it differently logger.Error("failed to notify", "error", err)
logger.Debug("request body type is LimitedReader", "parser", chunkParser, "link", cfg.CurrentAPI)
req, err = http.NewRequest("POST", cfg.CurrentAPI, body)
if err != nil {
logger.Error("newreq error", "error", err)
if err := notifyUser("error", "apicall failed:"+err.Error()); err != nil {
logger.Error("failed to notify", "error", err)
}
streamDone <- true
return
} }
req.Header.Add("Accept", "application/json") streamDone <- true
req.Header.Add("Content-Type", "application/json") return
req.Header.Add("Authorization", "Bearer "+chunkParser.GetToken())
req.Header.Set("Accept-Encoding", "gzip")
} else {
// For other reader types, capture and log the body content
bodyBytes, err := io.ReadAll(body)
if err != nil {
logger.Error("failed to read request body for logging", "error", err)
// Create request with original body if reading fails
req, err = http.NewRequest("POST", cfg.CurrentAPI, bytes.NewReader(bodyBytes))
if err != nil {
logger.Error("newreq error", "error", err)
if err := notifyUser("error", "apicall failed:"+err.Error()); err != nil {
logger.Error("failed to notify", "error", err)
}
streamDone <- true
return
}
} else {
// Log the request body for debugging
logger.Debug("sending request to API", "api", cfg.CurrentAPI, "body", string(bodyBytes))
// Create request with the captured body
req, err = http.NewRequest("POST", cfg.CurrentAPI, bytes.NewReader(bodyBytes))
if err != nil {
logger.Error("newreq error", "error", err)
if err := notifyUser("error", "apicall failed:"+err.Error()); err != nil {
logger.Error("failed to notify", "error", err)
}
streamDone <- true
return
}
}
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Bearer "+chunkParser.GetToken())
req.Header.Set("Accept-Encoding", "gzip")
} }
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Bearer "+chunkParser.GetToken())
req.Header.Set("Accept-Encoding", "gzip")
// nolint // nolint
resp, err := httpClient.Do(req) resp, err := httpClient.Do(req)
if err != nil { if err != nil {