memory leak fix

This commit is contained in:
2026-02-05 16:42:19 +03:00
parent d994e87276
commit 95c125c322
3 changed files with 22 additions and 9 deletions

View File

@@ -31,7 +31,7 @@ func main() {
plugins.RegisterLogs(bot) plugins.RegisterLogs(bot)
plugins.RegisterEconomy(bot) plugins.RegisterEconomy(bot)
plugins.RegisterRelations(bot) //plugins.RegisterRelations(bot)
plugins.RegisterWaifus(bot) plugins.RegisterWaifus(bot)
plugins.RegisterRP(bot) plugins.RegisterRP(bot)
plugins.RegisterAi(bot) plugins.RegisterAi(bot)

View File

@@ -17,7 +17,7 @@ func RegisterAdmin(b *laniakea.Bot) {
} }
func AdminMiddleware() *laniakea.PluginMiddleware { func AdminMiddleware() *laniakea.PluginMiddleware {
return laniakea.NewPluginMiddleware(func(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) bool { m := laniakea.NewPluginMiddleware(func(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) bool {
rep := psql.NewUserRepository(db) rep := psql.NewUserRepository(db)
u, err := rep.GetById(ctx.FromID) u, err := rep.GetById(ctx.FromID)
if err != nil { if err != nil {
@@ -25,6 +25,7 @@ func AdminMiddleware() *laniakea.PluginMiddleware {
} }
return u.Group.IsAdmin return u.Group.IsAdmin
}) })
return m
} }
func test(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) { func test(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {

View File

@@ -61,12 +61,14 @@ type OpenAIAPI struct {
} }
func NewOpenAIAPI(baseURL, token, model string) *OpenAIAPI { func NewOpenAIAPI(baseURL, token, model string) *OpenAIAPI {
logger := slog.CreateLogger()
level := slog.FATAL level := slog.FATAL
if os.Getenv("DEBUG") == "true" { if os.Getenv("DEBUG") == "true" {
level = slog.DEBUG level = slog.DEBUG
} }
logger := slog.CreateLogger().Prefix("AI").Level(level) logger = logger.Prefix("AI").Level(level)
logger = logger.AddWriter(logger.CreateJsonStdoutWriter()) // FIXME Leak here
//logger = logger.AddWriter(logger.CreateJsonStdoutWriter())
proxy, err := url.Parse(os.Getenv("HTTPS_PROXY")) proxy, err := url.Parse(os.Getenv("HTTPS_PROXY"))
if err != nil { if err != nil {
logger.Error(err) logger.Error(err)
@@ -146,11 +148,7 @@ 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"}} // {"error":{"message":"openai_error","type":"bad_response_status_code","param":"","code":"bad_response_status_code"}}
if errorData, ok := tempData["error"]; ok { if errorData, ok := tempData["error"]; ok {
o.Logger.Error(errorData) if errorPayload, ok := errorData.(map[string]interface{}); ok {
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) code := errorPayload["code"].(string)
if code == "bad_response_status_code" { if code == "bad_response_status_code" {
if retries >= 3 { if retries >= 3 {
@@ -165,6 +163,20 @@ func (o *OpenAIAPI) DoRequest(url string, params any, retries int) ([]byte, erro
return nil, errors.New(string(responseBody)) return nil, errors.New(string(responseBody))
} }
//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
// }
// o.Logger.Debug("Retrying because of bad response status code")
// return o.DoRequest(url, params, retries+1)
// }
// return nil, errors.New(code)
//}
return responseBody, err return responseBody, err
} }