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

35
database/psql/ai.go Normal file
View File

@@ -0,0 +1,35 @@
package psql
import (
"git.nix13.pw/scuroneko/laniakea"
"github.com/vinovest/sqlx"
)
type AIModel struct {
ID string
Key string
Name string
ContextSize int `db:"context_size"`
}
type AIRepository struct {
db *sqlx.DB
}
func newAiRepository(db *sqlx.DB) *AIRepository {
return &AIRepository{db}
}
func NewAIRepository(db *laniakea.DatabaseContext) *AIRepository {
return newAiRepository(db.PostgresSQL)
}
func (rep *AIRepository) GetModel(id string) (*AIModel, error) {
model := new(AIModel)
err := rep.db.Get(model, "SELECT * FROM ai_models WHERE id=$1;", id)
return model, err
}
func (rep *AIRepository) GetAllModels() ([]*AIModel, error) {
models := make([]*AIModel, 0)
err := rep.db.Select(&models, "SELECT * FROM ai_models ORDER BY id;")
return models, err
}

View File

@@ -21,12 +21,6 @@ type RPScenario struct {
Description string
Prompt string
}
type RPModel struct {
ID string
Key string
Name string
ContextSize int `db:"context_size"`
}
type RPSetting struct {
ID int
Name string
@@ -41,7 +35,7 @@ type RPUser struct {
SelectedPreset string `db:"selected_preset"`
Preset *RPPreset
SelectedModel string `db:"selected_model"`
Model *RPModel
Model *AIModel
CompressMethod string `db:"compress_method"`
CompressLimit int `db:"compress_limit"`
@@ -72,7 +66,8 @@ func (rep *RPRepository) CreateUser(id int64) (*RPUser, error) {
if err != nil {
return user, err
}
user.Model, err = rep.GetModel(user.SelectedModel)
aiRep := newAiRepository(rep.db)
user.Model, err = aiRep.GetModel(user.SelectedModel)
return user, err
}
func (rep *RPRepository) GetUser(id int64) (*RPUser, error) {
@@ -85,7 +80,8 @@ func (rep *RPRepository) GetUser(id int64) (*RPUser, error) {
if err != nil {
return user, err
}
user.Model, err = rep.GetModel(user.SelectedModel)
aiRep := newAiRepository(rep.db)
user.Model, err = aiRep.GetModel(user.SelectedModel)
return user, err
}
func (rep *RPRepository) UpdateUser(user *RPUser) error {
@@ -133,17 +129,6 @@ func (rep *RPRepository) GetScenario(id int) (*RPScenario, error) {
return scenario, err
}
func (rep *RPRepository) GetModel(id string) (*RPModel, error) {
model := new(RPModel)
err := rep.db.Get(model, "SELECT * FROM rp_models WHERE id=$1;", id)
return model, err
}
func (rep *RPRepository) GetAllModels() ([]*RPModel, error) {
models := make([]*RPModel, 0)
err := rep.db.Select(&models, "SELECT * FROM rp_models ORDER BY id;")
return models, err
}
func (rep *RPRepository) GetAllSettings() ([]*RPSetting, error) {
settings := make([]*RPSetting, 0)
err := rep.db.Select(&settings, "SELECT * FROM rp_settings ORDER BY id;")