dataset.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package fastgpt
  2. import (
  3. "errors"
  4. "time"
  5. )
  6. type DatasetResp struct {
  7. Code int `json:"code"`
  8. StatusText string `json:"statusText"`
  9. Message string `json:"message"`
  10. Data string `json:"data"`
  11. }
  12. type DatasetReq struct {
  13. ParentID string `json:"parentId,optional"`
  14. Type string `json:"type,optional"`
  15. Avatar string `json:"avatar,optional"`
  16. Name string `json:"name"`
  17. Intro string `json:"intro,optional"`
  18. VectorModel string `json:"vectorModel"`
  19. AgentModel string `json:"agentModel"`
  20. }
  21. type DatasetInfo struct {
  22. ID string `json:"_id"`
  23. ParentID string `json:"parentId,optional"`
  24. TeamID string `json:"teamId,optional"`
  25. TmbID string `json:"tmbId,optional"`
  26. Type string `json:"type,optional"`
  27. Status string `json:"status,optional"`
  28. Avatar string `json:"avatar,optional"`
  29. Name string `json:"name,optional"`
  30. VectorModel struct {
  31. Model string `json:"model"`
  32. Name string `json:"name"`
  33. Avatar string `json:"avatar"`
  34. CharsPointsPrice uint64 `json:"charsPointsPrice"`
  35. DefaultToken uint64 `json:"defaultToken"`
  36. MaxToken uint64 `json:"maxToken"`
  37. Weight uint64 `json:"weight"`
  38. DefaultConfig struct {
  39. } `json:"defaultConfig"`
  40. DbConfig struct {
  41. } `json:"dbConfig"`
  42. QueryConfig struct {
  43. } `json:"queryConfig"`
  44. } `json:"vectorModel,optional"`
  45. AgentModel struct {
  46. Model string `json:"model"`
  47. Name string `json:"name"`
  48. Avatar string `json:"avatar"`
  49. MaxContext uint64 `json:"maxContext"`
  50. MaxResponse uint64 `json:"maxResponse"`
  51. QuoteMaxToken uint64 `json:"quoteMaxToken"`
  52. MaxTemperature float64 `json:"maxTemperature"`
  53. CharsPointsPrice uint64 `json:"charsPointsPrice"`
  54. Censor bool `json:"censor"`
  55. Vision bool `json:"vision"`
  56. DatasetProcess bool `json:"datasetProcess"`
  57. UsedInClassify bool `json:"usedInClassify"`
  58. UsedInExtractFields bool `json:"usedInExtractFields"`
  59. UsedInToolCall bool `json:"usedInToolCall"`
  60. UsedInQueryExtension bool `json:"usedInQueryExtension"`
  61. ToolChoice bool `json:"toolChoice"`
  62. FunctionCall bool `json:"functionCall"`
  63. CustomCQPrompt string `json:"customCQPrompt"`
  64. CustomExtractPrompt string `json:"customExtractPrompt"`
  65. DefaultSystemChatPrompt string `json:"defaultSystemChatPrompt"`
  66. DefaultConfig struct {
  67. } `json:"defaultConfig"`
  68. } `json:"agentModel,optional"`
  69. Intro string `json:"intro,optional"`
  70. Permission struct {
  71. Value int64 `json:"value"`
  72. IsOwner bool `json:"isOwner"`
  73. HasManagePer bool `json:"hasManagePer"`
  74. HasWritePer bool `json:"hasWritePer"`
  75. HasReadPer bool `json:"hasReadPer"`
  76. } `json:"permission,optional"`
  77. DefaultPermission uint64 `json:"defaultPermission.optional"`
  78. UpdateTime time.Time `json:"updateTime,optional"`
  79. V uint64 `json:"__v,optional"`
  80. }
  81. type DatasetList struct {
  82. Code int `json:"code"`
  83. StatusText string `json:"statusText"`
  84. Message string `json:"message"`
  85. Data []DatasetInfo `json:"data"`
  86. }
  87. type DatasetDetail struct {
  88. Code int `json:"code"`
  89. StatusText string `json:"statusText"`
  90. Message string `json:"message"`
  91. Data DatasetInfo `json:"data"`
  92. }
  93. // GetDatasetDetail 获取数据集详情
  94. func GetDatasetDetail(id string) (dataset *DatasetDetail, err error) {
  95. resp, err := NewResty().
  96. R().
  97. SetResult(&dataset).
  98. SetQueryParam("id", id).
  99. Get("core/dataset/detail")
  100. if err != nil {
  101. return nil, err
  102. }
  103. if resp.IsError() {
  104. return nil, errors.New(resp.String())
  105. }
  106. return
  107. }
  108. // GetDatasetList 获取数据集列表
  109. func GetDatasetList(parentId string) (datasetList *DatasetList, err error) {
  110. resp, err := NewResty().
  111. R().
  112. SetResult(&datasetList).
  113. SetBody(map[string]string{"parentId": parentId}).
  114. Post("core/dataset/list")
  115. if err != nil {
  116. return nil, err
  117. }
  118. if resp.IsError() {
  119. return nil, errors.New(resp.String())
  120. }
  121. return
  122. }
  123. // CreateDataset 创建数据集
  124. func CreateDataset(data *DatasetReq) (dataset *DatasetResp, err error) {
  125. data.Type = "dataset"
  126. if data.Avatar == "" {
  127. data.Avatar = "/icon/logo.svg"
  128. }
  129. resp, err := NewResty().
  130. R().
  131. SetResult(&dataset).
  132. SetBody(*data).
  133. Post("core/dataset/create")
  134. if err != nil {
  135. return nil, err
  136. }
  137. if resp.IsError() {
  138. return nil, errors.New(resp.String())
  139. }
  140. return
  141. }
  142. // CreateDatasetFolder 创建数据集目录
  143. func CreateDatasetFolder(data *DatasetReq) (*DatasetResp, error) {
  144. data.Type = "folder"
  145. data.Avatar = "/imgs/files/folder.svg"
  146. return CreateDataset(data)
  147. }
  148. // DeleteDataset 删除数据集
  149. func DeleteDataset(id string) (dataset *DatasetResp, err error) {
  150. resp, err := NewResty().
  151. R().
  152. SetResult(&dataset).
  153. SetQueryParam("id", id).
  154. Delete("core/dataset/delete")
  155. if err != nil {
  156. return nil, err
  157. }
  158. if resp.IsError() {
  159. return nil, errors.New(resp.String())
  160. }
  161. return
  162. }