Alexey Kim il y a 1 an
Parent
commit
37b40779a6
2 fichiers modifiés avec 26 ajouts et 26 suppressions
  1. 0 26
      message.go
  2. 26 0
      ticket.go

+ 0 - 26
message.go

@@ -1,14 +1,9 @@
 package ticket
 
 import (
-	"encoding/json"
-	"fmt"
 	"github.com/confluentinc/confluent-kafka-go/v2/kafka"
 	"github.com/google/uuid"
 	"github.com/kelindar/bitmap"
-	"github.com/sashabaranov/go-openai"
-	"strings"
-	"time"
 )
 
 func NewKafkaMessage(src *kafka.Message) *Message {
@@ -31,27 +26,6 @@ func NewKafkaMessage(src *kafka.Message) *Message {
 	return m
 }
 
-func NewGPTResponseMessage(tid string, src *openai.ChatCompletionChoice) (*Message, error) {
-	tid = strings.TrimSpace(tid)
-	if tid == "" {
-		return nil, fmt.Errorf("illegal argument: ticket id must not be an emptry string")
-	}
-
-	raw, err := json.Marshal(src)
-	if err != nil {
-		return nil, err
-	}
-
-	return &Message{
-		Id:       uuid.NewString(),
-		TicketId: tid,
-		Provider: MessageProvider_GptMessageProvider,
-		Body:     src.Message.Content,
-		Date:     time.Now().UnixMilli(),
-		Raw:      string(raw),
-	}, nil
-}
-
 func (m *Message) SetBitmap(flags bitmap.Bitmap) {
 	m.Flags = flags.ToBytes()
 }

+ 26 - 0
ticket.go

@@ -2,8 +2,11 @@ package ticket
 
 import (
 	_ "embed"
+	"encoding/json"
 	"fmt"
+	"github.com/google/uuid"
 	"github.com/lithammer/shortuuid/v4"
+	"github.com/sashabaranov/go-openai"
 	"google.golang.org/protobuf/encoding/protojson"
 	"time"
 )
@@ -28,6 +31,29 @@ func (t *Ticket) Marshal() ([]byte, error) {
 	return protojson.Marshal(t)
 }
 
+func (t *Ticket) AddGPTResponseMessage(src *openai.ChatCompletionChoice) (*Message, error) {
+	var (
+		message = &Message{
+			Id:       uuid.NewString(),
+			TicketId: t.Id,
+			Provider: MessageProvider_GptMessageProvider,
+			Body:     src.Message.Content,
+			Date:     time.Now().UnixMilli(),
+		}
+		buf []byte
+		err error
+	)
+
+	if buf, err = json.Marshal(src); err != nil {
+		return nil, err
+	}
+
+	message.Raw = string(buf)
+	t.Thread = append(t.Thread, message)
+
+	return message, nil
+}
+
 //goland:noinspection GoUnusedExportedFunction
 func Unmarshal(d []byte) (*Ticket, error) {
 	t := &Ticket{}