refactor: add system config key 'user_init_calls' to init the new register user's api calls

This commit is contained in:
RockYang 2023-06-15 10:06:21 +08:00
parent 01d61ab19b
commit 1e84332119
5 changed files with 23 additions and 9 deletions

View File

@ -43,5 +43,5 @@ type ApiError struct {
}
}
const PROMPT_MSG = "prompt" // prompt message
const REPLY_MSG = "reply" // reply message
const PromptMsg = "prompt" // prompt message
const ReplyMsg = "reply" // reply message

View File

@ -33,7 +33,7 @@ type Session struct {
// ChatConfig 系统默认的聊天配置
type ChatConfig struct {
ApiURL string `json:"api_url"`
ApiURL string `json:"api_url,omitempty"`
Model string `json:"model"` // 默认模型
Temperature float32 `json:"temperature"`
MaxTokens int `json:"max_tokens"`
@ -43,9 +43,12 @@ type ChatConfig struct {
}
type SystemConfig struct {
Title string `json:"title"`
AdminTitle string `json:"admin_title"`
Models []string `json:"models"`
Title string `json:"title"`
AdminTitle string `json:"admin_title"`
Models []string `json:"models"`
UserInitCalls int `json:"user_init_calls"` // 新用户注册默认总送多少次调用
}
var GptModels = []string{"gpt-3.5-turbo", "gpt-3.5-turbo-16k", "gpt-3.5-turbo-0613", "gpt-3.5-turbo-16k-0613", "gpt-4", "gpt-4-0613", "gpt-4-32k", "gpt-4-32k-0613"}
const UserInitCalls = 1000

View File

@ -167,7 +167,7 @@ func (h *ChatHandler) sendMessage(ctx context.Context, session types.ChatSession
if res.Error == nil {
for _, msg := range historyMessages {
ms := types.Message{Role: "user", Content: msg.Content}
if msg.Type == types.REPLY_MSG {
if msg.Type == types.ReplyMsg {
ms.Role = "assistant"
}
chatCtx = append(chatCtx, ms)
@ -276,7 +276,7 @@ func (h *ChatHandler) sendMessage(ctx context.Context, session types.ChatSession
UserId: userVo.Id,
ChatId: session.ChatId,
RoleId: role.Id,
Type: types.PROMPT_MSG,
Type: types.PromptMsg,
Icon: user.Avatar,
Content: prompt,
Tokens: token,
@ -297,7 +297,7 @@ func (h *ChatHandler) sendMessage(ctx context.Context, session types.ChatSession
UserId: userVo.Id,
ChatId: session.ChatId,
RoleId: role.Id,
Type: types.REPLY_MSG,
Type: types.ReplyMsg,
Icon: role.Icon,
Content: message.Content,
Tokens: token,

View File

@ -52,6 +52,7 @@ func (h *ConfigHandler) Update(c *gin.Context) {
resp.SUCCESS(c, config)
}
// Get 获取指定的系统配置
func (h *ConfigHandler) Get(c *gin.Context) {
key := c.Query("key")
var config model.Config

View File

@ -85,6 +85,16 @@ func (h *UserHandler) Register(c *gin.Context) {
ApiKey: "",
}),
}
// 初始化调用次数
var cfg model.Config
h.db.Where("marker = ?", "system").First(&cfg)
var config types.SystemConfig
err := utils.JsonDecode(cfg.Config, &config)
if err != nil || config.UserInitCalls <= 0 {
user.Calls = types.UserInitCalls
} else {
user.Calls = config.UserInitCalls
}
res := h.db.Create(&user)
if res.Error != nil {
resp.ERROR(c, "保存数据失败")