78
server/model/app/response/preset.go
Normal file
78
server/model/app/response/preset.go
Normal file
@@ -0,0 +1,78 @@
|
||||
package response
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"time"
|
||||
|
||||
"git.echol.cn/loser/st/server/model/app"
|
||||
)
|
||||
|
||||
// PresetResponse 预设响应
|
||||
type PresetResponse struct {
|
||||
ID uint `json:"id"`
|
||||
UserID uint `json:"userId"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
IsPublic bool `json:"isPublic"`
|
||||
IsDefault bool `json:"isDefault"`
|
||||
Temperature float64 `json:"temperature"`
|
||||
TopP float64 `json:"topP"`
|
||||
TopK int `json:"topK"`
|
||||
FrequencyPenalty float64 `json:"frequencyPenalty"`
|
||||
PresencePenalty float64 `json:"presencePenalty"`
|
||||
MaxTokens int `json:"maxTokens"`
|
||||
RepetitionPenalty float64 `json:"repetitionPenalty"`
|
||||
MinP float64 `json:"minP"`
|
||||
TopA float64 `json:"topA"`
|
||||
SystemPrompt string `json:"systemPrompt"`
|
||||
StopSequences []string `json:"stopSequences"`
|
||||
Extensions map[string]interface{} `json:"extensions"`
|
||||
UseCount int `json:"useCount"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
}
|
||||
|
||||
// PresetListResponse 预设列表响应
|
||||
type PresetListResponse struct {
|
||||
List []PresetResponse `json:"list"`
|
||||
Total int64 `json:"total"`
|
||||
Page int `json:"page"`
|
||||
PageSize int `json:"pageSize"`
|
||||
}
|
||||
|
||||
// ToPresetResponse 转换为预设响应结构
|
||||
func ToPresetResponse(preset *app.AIPreset) PresetResponse {
|
||||
var stopSequences []string
|
||||
if len(preset.StopSequences) > 0 {
|
||||
json.Unmarshal(preset.StopSequences, &stopSequences)
|
||||
}
|
||||
|
||||
var extensions map[string]interface{}
|
||||
if len(preset.Extensions) > 0 {
|
||||
json.Unmarshal(preset.Extensions, &extensions)
|
||||
}
|
||||
|
||||
return PresetResponse{
|
||||
ID: preset.ID,
|
||||
UserID: preset.UserID,
|
||||
Name: preset.Name,
|
||||
Description: preset.Description,
|
||||
IsPublic: preset.IsPublic,
|
||||
IsDefault: preset.IsDefault,
|
||||
Temperature: preset.Temperature,
|
||||
TopP: preset.TopP,
|
||||
TopK: preset.TopK,
|
||||
FrequencyPenalty: preset.FrequencyPenalty,
|
||||
PresencePenalty: preset.PresencePenalty,
|
||||
MaxTokens: preset.MaxTokens,
|
||||
RepetitionPenalty: preset.RepetitionPenalty,
|
||||
MinP: preset.MinP,
|
||||
TopA: preset.TopA,
|
||||
SystemPrompt: preset.SystemPrompt,
|
||||
StopSequences: stopSequences,
|
||||
Extensions: extensions,
|
||||
UseCount: preset.UseCount,
|
||||
CreatedAt: preset.CreatedAt,
|
||||
UpdatedAt: preset.UpdatedAt,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user