package schema import ( "time" ) // ChatAssistant ChatAssistant对象 type ChatAssistant struct { RecordID string `json:"record_id"` // 记录id OrgId string `json:"org_id"` // 组织id UserId string `json:"user_id"` // 所属用户id Name string `json:"name"` // 助手名称 Desc string `json:"desc"` // 描述 Source int `json:"source"` // 来源 1 h5 2 钉钉机器人 RagChatId string `json:"rag_chat_id"` // rag_chat_id Datasets Datasets `json:"datasets"` // 绑定的知识库id CreatedAt time.Time `json:"created_at"` // 创建时间 CreatorId string `json:"creator_id"` // 创建人id CreatorName string `json:"creator_name"` // 创建人名称 Sessions ChatSessions `json:"sessions"` // 会话列 } // ChatAssistantQueryParam 查询条件 type ChatAssistantQueryParam struct { OrgId string LikeName string RecordIDs []string CreatorId string // 创建者id UserId string // 所属用户id } // ChatAssistantQueryOptions ChatAssistant对象查询可选参数项 type ChatAssistantQueryOptions struct { PageParam *PaginationParam // 分页参数 } type ChatAssistants []*ChatAssistant // ChatAssistantQueryResult ChatAssistant对象查询结果 type ChatAssistantQueryResult struct { Data ChatAssistants PageResult *PaginationResult } // AssistantPermissionStatus 对话助手知识库权限比对结果 type AssistantPermissionStatus struct { Synced bool `json:"synced"` // 助手已绑定的知识库是否与用户当前可访问的一致 NeedCreate bool `json:"need_create"` // 用户还没有 h5 助手,需要创建 AssistantId string `json:"assistant_id"` // 现有 h5 助手 id(若存在) CurrentDatasetIds []string `json:"current_dataset_ids"` // 用户当前可访问的知识库 id BoundDatasetIds []string `json:"bound_dataset_ids"` // 助手已绑定的知识库 id Added []string `json:"added"` // 相较助手需要新增的 KB id Removed []string `json:"removed"` // 相较助手需要移除的 KB id } // FillCreator 填充创建者信息 func (a ChatAssistants) FillCreator(users Users) { for _, v := range a { for _, u := range users { if v.CreatorId == u.RecordID { v.CreatorName = u.RealName continue } } } } // FillDatasetId 填充知识库id func (a ChatAssistants) FillDatasetId(data ChatDatasets) { for _, v := range a { for _, d := range data { if v.RecordID == d.ChatAssistantId { v.Datasets = append(v.Datasets, &Dataset{RecordID: d.DatasetId}) continue } } } } // FillDatasetId 填充知识库id func (a ChatAssistants) FillDataset(data Datasets) { for _, v := range a { for _, d := range v.Datasets { for _, d2 := range data { if d.RecordID == d2.RecordID { d.Name = d2.Name d.OrgId = d2.OrgId d.RagDataId = d2.RagDataId d.FileCount = d2.FileCount continue } } } } } // FillDatasetId 填充知识库id func (a ChatAssistants) FillSession(sessions ChatSessions) { for _, v := range a { for _, s := range sessions { if v.RecordID == s.AssistantId { v.Sessions = append(v.Sessions, s) continue } } } }