memory leak

This commit is contained in:
2026-02-05 15:14:47 +03:00
parent b894cbd9c3
commit 0fded455b8
22 changed files with 420 additions and 170 deletions

View File

@@ -61,12 +61,12 @@ type OpenAIAPI struct {
}
func NewOpenAIAPI(baseURL, token, model string) *OpenAIAPI {
logger := slog.CreateLogger()
level := slog.FATAL
if os.Getenv("DEBUG") == "true" {
level = slog.DEBUG
}
logger = logger.Prefix("AI").Level(level)
logger := slog.CreateLogger().Prefix("AI").Level(level)
logger = logger.AddWriter(logger.CreateJsonStdoutWriter())
proxy, err := url.Parse(os.Getenv("HTTPS_PROXY"))
if err != nil {
logger.Error(err)
@@ -147,16 +147,22 @@ func (o *OpenAIAPI) DoRequest(url string, params any, retries int) ([]byte, erro
// {"error":{"message":"openai_error","type":"bad_response_status_code","param":"","code":"bad_response_status_code"}}
if errorData, ok := tempData["error"]; ok {
o.Logger.Error(errorData)
errorPayload := errorData.(map[string]interface{})
code := errorPayload["code"].(string)
if code == "bad_response_status_code" {
if retries >= 3 {
return responseBody, BadResponseErr
if x, ok := errorData.(bool); ok {
o.Logger.Errorf("[%d %s] %v", res.StatusCode, res.Status, x)
} else if errorPayload, ok := errorData.(map[string]interface{}); ok {
code := errorPayload["code"].(string)
if code == "bad_response_status_code" {
if retries >= 3 {
return responseBody, BadResponseErr
}
o.Logger.Debug("Retrying because of bad response status code")
return o.DoRequest(url, params, retries+1)
}
o.Logger.Debug("Retrying because of bad response status code")
return o.DoRequest(url, params, retries+1)
return nil, errors.New(code)
}
return nil, errors.New(code)
o.Logger.Errorln("Unknown error", errorData)
return nil, errors.New(string(responseBody))
}
return responseBody, err