s_chat_assistant.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package schema
  2. import (
  3. "time"
  4. )
  5. // ChatAssistant ChatAssistant对象
  6. type ChatAssistant struct {
  7. RecordID string `json:"record_id"` // 记录id
  8. OrgId string `json:"org_id"` // 组织id
  9. UserId string `json:"user_id"` // 所属用户id
  10. Name string `json:"name"` // 助手名称
  11. Desc string `json:"desc"` // 描述
  12. Source int `json:"source"` // 来源 1 h5 2 钉钉机器人
  13. RagChatId string `json:"rag_chat_id"` // rag_chat_id
  14. Datasets Datasets `json:"datasets"` // 绑定的知识库id
  15. CreatedAt time.Time `json:"created_at"` // 创建时间
  16. CreatorId string `json:"creator_id"` // 创建人id
  17. CreatorName string `json:"creator_name"` // 创建人名称
  18. Sessions ChatSessions `json:"sessions"` // 会话列
  19. }
  20. // ChatAssistantQueryParam 查询条件
  21. type ChatAssistantQueryParam struct {
  22. OrgId string
  23. LikeName string
  24. RecordIDs []string
  25. CreatorId string // 创建者id
  26. UserId string // 所属用户id
  27. }
  28. // ChatAssistantQueryOptions ChatAssistant对象查询可选参数项
  29. type ChatAssistantQueryOptions struct {
  30. PageParam *PaginationParam // 分页参数
  31. }
  32. type ChatAssistants []*ChatAssistant
  33. // ChatAssistantQueryResult ChatAssistant对象查询结果
  34. type ChatAssistantQueryResult struct {
  35. Data ChatAssistants
  36. PageResult *PaginationResult
  37. }
  38. // AssistantPermissionStatus 对话助手知识库权限比对结果
  39. type AssistantPermissionStatus struct {
  40. Synced bool `json:"synced"` // 助手已绑定的知识库是否与用户当前可访问的一致
  41. NeedCreate bool `json:"need_create"` // 用户还没有 h5 助手,需要创建
  42. AssistantId string `json:"assistant_id"` // 现有 h5 助手 id(若存在)
  43. CurrentDatasetIds []string `json:"current_dataset_ids"` // 用户当前可访问的知识库 id
  44. BoundDatasetIds []string `json:"bound_dataset_ids"` // 助手已绑定的知识库 id
  45. Added []string `json:"added"` // 相较助手需要新增的 KB id
  46. Removed []string `json:"removed"` // 相较助手需要移除的 KB id
  47. }
  48. // FillCreator 填充创建者信息
  49. func (a ChatAssistants) FillCreator(users Users) {
  50. for _, v := range a {
  51. for _, u := range users {
  52. if v.CreatorId == u.RecordID {
  53. v.CreatorName = u.RealName
  54. continue
  55. }
  56. }
  57. }
  58. }
  59. // FillDatasetId 填充知识库id
  60. func (a ChatAssistants) FillDatasetId(data ChatDatasets) {
  61. for _, v := range a {
  62. for _, d := range data {
  63. if v.RecordID == d.ChatAssistantId {
  64. v.Datasets = append(v.Datasets, &Dataset{RecordID: d.DatasetId})
  65. continue
  66. }
  67. }
  68. }
  69. }
  70. // FillDatasetId 填充知识库id
  71. func (a ChatAssistants) FillDataset(data Datasets) {
  72. for _, v := range a {
  73. for _, d := range v.Datasets {
  74. for _, d2 := range data {
  75. if d.RecordID == d2.RecordID {
  76. d.Name = d2.Name
  77. d.OrgId = d2.OrgId
  78. d.RagDataId = d2.RagDataId
  79. d.FileCount = d2.FileCount
  80. continue
  81. }
  82. }
  83. }
  84. }
  85. }
  86. // FillDatasetId 填充知识库id
  87. func (a ChatAssistants) FillSession(sessions ChatSessions) {
  88. for _, v := range a {
  89. for _, s := range sessions {
  90. if v.RecordID == s.AssistantId {
  91. v.Sessions = append(v.Sessions, s)
  92. continue
  93. }
  94. }
  95. }
  96. }