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 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 s := query.Stream
stream, err := s.Where(s.Path.Eq(path)).FirstOrInit() stream, err := s.Where(s.Path.Eq(path)).FirstOrInit()
@ -120,7 +132,7 @@ func GetStream(c *gin.Context) {
Enabled: enabled, Enabled: enabled,
Name: name, Name: name,
Config: string(origContent), Config: string(origContent),
ChatGPTMessages: stream.ChatGPTMessages, ChatGPTMessages: chatgpt.Content,
}) })
return return
} }
@ -133,8 +145,6 @@ func GetStream(c *gin.Context) {
return return
} }
c.Set("maybe_error", "nginx_config_syntax_error")
c.JSON(http.StatusOK, Stream{ c.JSON(http.StatusOK, Stream{
ModifiedAt: file.ModTime(), ModifiedAt: file.ModTime(),
Advanced: stream.Advanced, Advanced: stream.Advanced,
@ -142,7 +152,7 @@ func GetStream(c *gin.Context) {
Name: name, Name: name,
Config: nginxConfig.FmtCode(), Config: nginxConfig.FmtCode(),
Tokenized: nginxConfig, Tokenized: nginxConfig,
ChatGPTMessages: stream.ChatGPTMessages, ChatGPTMessages: chatgpt.Content,
}) })
} }

View file

@ -2,7 +2,6 @@ package model
type Stream struct { type Stream struct {
Model Model
Path string `json:"path"` Path string `json:"path"`
Advanced bool `json:"advanced"` 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.DeletedAt = field.NewField(tableName, "deleted_at")
_stream.Path = field.NewString(tableName, "path") _stream.Path = field.NewString(tableName, "path")
_stream.Advanced = field.NewBool(tableName, "advanced") _stream.Advanced = field.NewBool(tableName, "advanced")
_stream.ChatGPTMessages = field.NewField(tableName, "chat_gpt_messages")
_stream.fillFieldMap() _stream.fillFieldMap()
@ -44,14 +43,13 @@ func newStream(db *gorm.DB, opts ...gen.DOOption) stream {
type stream struct { type stream struct {
streamDo streamDo
ALL field.Asterisk ALL field.Asterisk
ID field.Int ID field.Int
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
Path field.String Path field.String
Advanced field.Bool Advanced field.Bool
ChatGPTMessages field.Field
fieldMap map[string]field.Expr fieldMap map[string]field.Expr
} }
@ -74,7 +72,6 @@ func (s *stream) updateTableName(table string) *stream {
s.DeletedAt = field.NewField(table, "deleted_at") s.DeletedAt = field.NewField(table, "deleted_at")
s.Path = field.NewString(table, "path") s.Path = field.NewString(table, "path")
s.Advanced = field.NewBool(table, "advanced") s.Advanced = field.NewBool(table, "advanced")
s.ChatGPTMessages = field.NewField(table, "chat_gpt_messages")
s.fillFieldMap() s.fillFieldMap()
@ -91,14 +88,13 @@ func (s *stream) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
} }
func (s *stream) fillFieldMap() { 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["id"] = s.ID
s.fieldMap["created_at"] = s.CreatedAt s.fieldMap["created_at"] = s.CreatedAt
s.fieldMap["updated_at"] = s.UpdatedAt s.fieldMap["updated_at"] = s.UpdatedAt
s.fieldMap["deleted_at"] = s.DeletedAt s.fieldMap["deleted_at"] = s.DeletedAt
s.fieldMap["path"] = s.Path s.fieldMap["path"] = s.Path
s.fieldMap["advanced"] = s.Advanced s.fieldMap["advanced"] = s.Advanced
s.fieldMap["chat_gpt_messages"] = s.ChatGPTMessages
} }
func (s stream) clone(db *gorm.DB) stream { func (s stream) clone(db *gorm.DB) stream {