s_chat_session.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package schema
  2. import "time"
  3. // ChatSession ChatSession对象
  4. type ChatSession struct {
  5. RecordID string `json:"record_id"` // 记录id
  6. Name string `json:"name"` // 名称
  7. UserId string `json:"user_id"` // 用户id
  8. AssistantId string `json:"assistant_id"` // 助手id
  9. RagChatId string `json:"rag_chat_id"` // rag_chat_id
  10. RagSessionId string `json:"rag_session_id"` // rag_session_id
  11. CreatedAt time.Time `json:"created_at"` // 创建时间
  12. CreatorId string `json:"creator_id"` // 创建人id
  13. CreatorName string `json:"creator_name"` // 创建人名称
  14. Messages ChatMessages `json:"messages"` // 聊天记录
  15. }
  16. // ChatSessionQueryParam 查询条件
  17. type ChatSessionQueryParam struct {
  18. AssistantId string
  19. RecordIDs []string
  20. }
  21. // ChatSessionQueryOptions ChatSession对象查询可选参数项
  22. type ChatSessionQueryOptions struct {
  23. PageParam *PaginationParam // 分页参数
  24. }
  25. type ChatSessions []*ChatSession
  26. // ChatSessionQueryResult ChatSession对象查询结果
  27. type ChatSessionQueryResult struct {
  28. Data ChatSessions
  29. PageResult *PaginationResult
  30. }
  31. // FillCreator 填充创建者信息
  32. func (a ChatSessions) FillCreator(users Users) {
  33. for _, v := range a {
  34. for _, u := range users {
  35. if v.CreatorId == u.RecordID {
  36. v.CreatorName = u.RealName
  37. continue
  38. }
  39. }
  40. }
  41. }
  42. // FillMessages 填充聊天记录
  43. func (a ChatSessions) FillMessages(Messages ChatMessages) {
  44. for _, v := range a {
  45. for _, m := range Messages {
  46. if v.RecordID == m.SessionId {
  47. v.Messages = append(v.Messages, m)
  48. continue
  49. }
  50. }
  51. }
  52. }