memory leak fix
This commit is contained in:
2
main.go
2
main.go
@@ -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)
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user