fix: ChatGPT messages history for stream

This commit is contained in:
0xJacky 2023-12-15 21:52:41 +08:00
parent 2649b710bb
commit 6c8bfd267a
No known key found for this signature in database
GPG key ID: B6E4A6E4A561BAF0
3 changed files with 24 additions and 19 deletions

View file

@ -99,6 +99,18 @@ func GetStream(c *gin.Context) {
enabled = false
}
g := query.ChatGPTLog
chatgpt, err := g.Where(g.Name.Eq(path)).FirstOrCreate()
if err != nil {
api.ErrHandler(c, err)
return
}
if chatgpt.Content == nil {
chatgpt.Content = make([]openai.ChatCompletionMessage, 0)
}
s := query.Stream
stream, err := s.Where(s.Path.Eq(path)).FirstOrInit()
@ -120,7 +132,7 @@ func GetStream(c *gin.Context) {
Enabled: enabled,
Name: name,
Config: string(origContent),
ChatGPTMessages: stream.ChatGPTMessages,
ChatGPTMessages: chatgpt.Content,
})
return
}
@ -133,8 +145,6 @@ func GetStream(c *gin.Context) {
return
}
c.Set("maybe_error", "nginx_config_syntax_error")
c.JSON(http.StatusOK, Stream{
ModifiedAt: file.ModTime(),
Advanced: stream.Advanced,
@ -142,7 +152,7 @@ func GetStream(c *gin.Context) {
Name: name,
Config: nginxConfig.FmtCode(),
Tokenized: nginxConfig,
ChatGPTMessages: stream.ChatGPTMessages,
ChatGPTMessages: chatgpt.Content,
})
}

View file

@ -4,5 +4,4 @@ type Stream struct {
Model
Path string `json:"path"`
Advanced bool `json:"advanced"`
ChatGPTMessages ChatGPTCompletionMessages `json:"chatgpt_messages" gorm:"serializer:json"`
}

View file

@ -34,7 +34,6 @@ func newStream(db *gorm.DB, opts ...gen.DOOption) stream {
_stream.DeletedAt = field.NewField(tableName, "deleted_at")
_stream.Path = field.NewString(tableName, "path")
_stream.Advanced = field.NewBool(tableName, "advanced")
_stream.ChatGPTMessages = field.NewField(tableName, "chat_gpt_messages")
_stream.fillFieldMap()
@ -51,7 +50,6 @@ type stream struct {
DeletedAt field.Field
Path field.String
Advanced field.Bool
ChatGPTMessages field.Field
fieldMap map[string]field.Expr
}
@ -74,7 +72,6 @@ func (s *stream) updateTableName(table string) *stream {
s.DeletedAt = field.NewField(table, "deleted_at")
s.Path = field.NewString(table, "path")
s.Advanced = field.NewBool(table, "advanced")
s.ChatGPTMessages = field.NewField(table, "chat_gpt_messages")
s.fillFieldMap()
@ -91,14 +88,13 @@ func (s *stream) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
}
func (s *stream) fillFieldMap() {
s.fieldMap = make(map[string]field.Expr, 7)
s.fieldMap = make(map[string]field.Expr, 6)
s.fieldMap["id"] = s.ID
s.fieldMap["created_at"] = s.CreatedAt
s.fieldMap["updated_at"] = s.UpdatedAt
s.fieldMap["deleted_at"] = s.DeletedAt
s.fieldMap["path"] = s.Path
s.fieldMap["advanced"] = s.Advanced
s.fieldMap["chat_gpt_messages"] = s.ChatGPTMessages
}
func (s stream) clone(db *gorm.DB) stream {