|
@@ -31,6 +31,27 @@ func (t *Ticket) Marshal() ([]byte, error) {
|
|
|
return protojson.Marshal(t)
|
|
|
}
|
|
|
|
|
|
+func (t *Ticket) AddMessage(m *Message) error {
|
|
|
+ if m == nil {
|
|
|
+ return fmt.Errorf("illegal argument: Message must not be a nil")
|
|
|
+ }
|
|
|
+
|
|
|
+ if m.TicketId == "" {
|
|
|
+ m.TicketId = t.Id
|
|
|
+ }
|
|
|
+
|
|
|
+ if m.Id == "" {
|
|
|
+ m.Id = uuid.NewString()
|
|
|
+ }
|
|
|
+
|
|
|
+ if m.Date == 0 {
|
|
|
+ m.Date = time.Now().UnixMilli()
|
|
|
+ }
|
|
|
+
|
|
|
+ t.Thread = append(t.Thread, m)
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func (t *Ticket) AddGPTResponseMessage(src *openai.ChatCompletionChoice) (*Message, error) {
|
|
|
var (
|
|
|
message = &Message{
|
|
@@ -49,7 +70,9 @@ func (t *Ticket) AddGPTResponseMessage(src *openai.ChatCompletionChoice) (*Messa
|
|
|
}
|
|
|
|
|
|
message.Raw = string(buf)
|
|
|
- t.Thread = append(t.Thread, message)
|
|
|
+ if err = t.AddMessage(message); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
|
|
|
return message, nil
|
|
|
}
|