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

@ -4,5 +4,4 @@ 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()
@ -51,7 +50,6 @@ type stream struct {
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 {