package schema import "time" // Dataset Dataset对象 type Dataset struct { RecordID string `json:"record_id"` // 记录id OrgId string `json:"org_id"` // 归属组织id(共享知识库可为空) OrgName string `json:"org_name"` // 归属组织名称 Name string `json:"name"` // 名称 Type int `json:"type"` // 1 公共/共享 2 企业 3 个人 Status bool `json:"status"` // 状态 FileCount int `json:"file_count"` // 文件数量 Files DatasetFiles `json:"files"` // 文件列表 RagDataId string `json:"rag_data_id"` // ragFlow知识库id CreatorId string `json:"creator_id"` // 创建人id CreatorName string `json:"creator_name"` // 创建人名称 CreatedAt time.Time `json:"created_at"` // 创建时间 Sequence int `json:"sequence"` // 排序值 } // DatasetQueryParam 查询条件 type DatasetQueryParam struct { OrgId string LikeName string RecordIds []string Type int // 0 表示不按类型筛选 Types []int // 按多种类型筛选 } // DatasetQueryOptions Dataset对象查询可选参数项 type DatasetQueryOptions struct { PageParam *PaginationParam // 分页参数 } type Datasets []*Dataset // DatasetQueryResult Dataset对象查询结果 type DatasetQueryResult struct { Data Datasets PageResult *PaginationResult } func (a Datasets) ToRecordIds() []string { recordIds := make([]string, len(a)) for k, v := range a { recordIds[k] = v.RecordID } return recordIds } func (a Datasets) ToRagDataIds() []string { Ids := make([]string, len(a)) for k, v := range a { Ids[k] = v.RagDataId } return Ids } func (a Datasets) ToOrgIds() []string { Ids := make([]string, len(a)) for k, v := range a { Ids[k] = v.OrgId } return Ids } // FillCreator 填充创建者信息 func (a Datasets) FillCreator(users Users) { for _, o := range a { for _, u := range users { if o.CreatorId == u.RecordID { o.CreatorName = u.RealName continue } } } } // ToMap func (a Datasets) ToMap() map[string]*Dataset { m := make(map[string]*Dataset) for _, item := range a { m[item.RecordID] = item } return m } // AvailableDatasets 可用知识库(按 type 分桶) // 业务场景: // - 新建企业:查询全部公共/共享知识库(PublicDatasets) // - 为企业新增管理员/员工:查询该企业可访问的全部知识库 // (被分配的共享 PublicDatasets + 企业自建 OrgDatasets) type AvailableDatasets struct { PublicDatasets Datasets `json:"public_datasets"` // 公共/共享(type=1) OrgDatasets Datasets `json:"org_datasets"` // 企业自建(type=2) }