12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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 {
- m := &Message{
- Id: uuid.NewString(),
- Provider: MessageProvider_EmailMessageProvider,
- Body: string(src.Value),
- Raw: string(src.Value),
- Date: src.Timestamp.UnixMilli(),
- Headers: []*Message_Header{},
- }
- for _, h := range src.Headers {
- m.Headers = append(m.Headers, &Message_Header{
- Key: h.Key,
- Value: string(h.Value),
- })
- }
- 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()
- }
- func (m *Message) GetBitmap() bitmap.Bitmap {
- return bitmap.FromBytes(m.Flags)
- }
|