49
server/model/app/ai_character.go
Normal file
49
server/model/app/ai_character.go
Normal file
@@ -0,0 +1,49 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"gorm.io/datatypes"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// AICharacter 角色卡模型
|
||||
type AICharacter struct {
|
||||
ID uint `gorm:"primarykey" json:"id"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
|
||||
|
||||
// 基本信息
|
||||
UserID uint `gorm:"index;not null" json:"userId"` // 所属用户ID
|
||||
Name string `gorm:"type:varchar(100);not null" json:"name"` // 角色名称
|
||||
Avatar string `gorm:"type:text" json:"avatar"` // 头像URL或Base64
|
||||
Creator string `gorm:"type:varchar(100)" json:"creator"` // 创建者
|
||||
Version string `gorm:"type:varchar(50)" json:"version"` // 角色版本
|
||||
IsPublic bool `gorm:"default:false" json:"isPublic"` // 是否公开
|
||||
|
||||
// SillyTavern V2 格式字段
|
||||
Description string `gorm:"type:text" json:"description"` // 角色描述
|
||||
Personality string `gorm:"type:text" json:"personality"` // 性格特征
|
||||
Scenario string `gorm:"type:text" json:"scenario"` // 场景设定
|
||||
FirstMes string `gorm:"type:text" json:"firstMes"` // 第一条消息
|
||||
MesExample string `gorm:"type:text" json:"mesExample"` // 消息示例
|
||||
CreatorNotes string `gorm:"type:text" json:"creatorNotes"` // 创建者备注
|
||||
SystemPrompt string `gorm:"type:text" json:"systemPrompt"` // 系统提示词
|
||||
PostHistoryInstructions string `gorm:"type:text" json:"postHistoryInstructions"` // 历史后指令
|
||||
Tags datatypes.JSON `gorm:"type:jsonb" json:"tags"` // 标签数组
|
||||
AlternateGreetings datatypes.JSON `gorm:"type:jsonb" json:"alternateGreetings"` // 备用问候语
|
||||
CharacterBook datatypes.JSON `gorm:"type:jsonb" json:"characterBook"` // 角色书
|
||||
Extensions datatypes.JSON `gorm:"type:jsonb" json:"extensions"` // 扩展数据
|
||||
Spec string `gorm:"type:varchar(50);default:'chara_card_v2'" json:"spec"` // 规范名称
|
||||
SpecVersion string `gorm:"type:varchar(50);default:'2.0'" json:"specVersion"` // 规范版本
|
||||
|
||||
// 统计信息
|
||||
UseCount int `gorm:"default:0" json:"useCount"` // 使用次数
|
||||
FavoriteCount int `gorm:"default:0" json:"favoriteCount"` // 收藏次数
|
||||
}
|
||||
|
||||
// TableName 指定表名
|
||||
func (AICharacter) TableName() string {
|
||||
return "ai_characters"
|
||||
}
|
||||
Reference in New Issue
Block a user