Ver Fonte

fix: ChatGPT messages history for stream

0xJacky há 1 ano atrás
pai
commit
6c8bfd267a
3 ficheiros alterados com 24 adições e 19 exclusões
  1. 14 4
      api/streams/streams.go
  2. 2 3
      model/stream.go
  3. 8 12
      query/streams.gen.go

+ 14 - 4
api/streams/streams.go

@@ -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,
 	})
 }
 

+ 2 - 3
model/stream.go

@@ -2,7 +2,6 @@ package model
 
 type Stream struct {
 	Model
-	Path            string                    `json:"path"`
-	Advanced        bool                      `json:"advanced"`
-	ChatGPTMessages ChatGPTCompletionMessages `json:"chatgpt_messages" gorm:"serializer:json"`
+	Path     string `json:"path"`
+	Advanced bool   `json:"advanced"`
 }

+ 8 - 12
query/streams.gen.go

@@ -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()
 
@@ -44,14 +43,13 @@ func newStream(db *gorm.DB, opts ...gen.DOOption) stream {
 type stream struct {
 	streamDo
 
-	ALL             field.Asterisk
-	ID              field.Int
-	CreatedAt       field.Time
-	UpdatedAt       field.Time
-	DeletedAt       field.Field
-	Path            field.String
-	Advanced        field.Bool
-	ChatGPTMessages field.Field
+	ALL       field.Asterisk
+	ID        field.Int
+	CreatedAt field.Time
+	UpdatedAt field.Time
+	DeletedAt field.Field
+	Path      field.String
+	Advanced  field.Bool
 
 	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 {