Files
st-react/server/model/app/preset.go
Echo f4e166c5ee 🎉 初始化项目
Signed-off-by: Echo <1711788888@qq.com>
2026-02-27 21:52:00 +08:00

45 lines
1.6 KiB
Go

package app
import (
"gorm.io/datatypes"
"gorm.io/gorm"
)
// AIPreset AI预设配置模型
type AIPreset struct {
gorm.Model
UserID uint `json:"userId" gorm:"not null;index:idx_preset_user"`
Name string `json:"name" gorm:"not null;size:100"`
Description string `json:"description" gorm:"size:500"`
IsPublic bool `json:"isPublic" gorm:"default:false;index:idx_preset_public"`
IsDefault bool `json:"isDefault" gorm:"default:false"`
// Sampling Parameters (stored as individual fields for query efficiency)
Temperature float64 `json:"temperature" gorm:"default:1.0"`
TopP float64 `json:"topP" gorm:"default:1.0"`
TopK int `json:"topK" gorm:"default:0"`
FrequencyPenalty float64 `json:"frequencyPenalty" gorm:"default:0"`
PresencePenalty float64 `json:"presencePenalty" gorm:"default:0"`
MaxTokens int `json:"maxTokens" gorm:"default:2000"`
RepetitionPenalty float64 `json:"repetitionPenalty" gorm:"default:1.0"`
MinP float64 `json:"minP" gorm:"default:0"`
TopA float64 `json:"topA" gorm:"default:0"`
// Prompt Configuration (stored as JSON for flexibility)
SystemPrompt string `json:"systemPrompt" gorm:"type:text"`
StopSequences datatypes.JSON `json:"stopSequences" gorm:"type:jsonb"`
// SillyTavern Extensions (for full compatibility)
Extensions datatypes.JSON `json:"extensions" gorm:"type:jsonb"`
// Usage Statistics
UseCount int `json:"useCount" gorm:"default:0"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
}
// TableName 指定表名
func (AIPreset) TableName() string {
return "ai_presets"
}