You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

inference.api 7.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. syntax = "v1"
  2. import (
  3. "../schedule/pcm-schedule.api"
  4. )
  5. type (
  6. /******************image inference*************************/
  7. DeployInstance {
  8. Id string `json:"id"`
  9. DeployTaskId string `json:"deployTaskId"`
  10. InstanceId string `json:"instanceId"`
  11. InstanceName string `json:"instanceName"`
  12. AdapterId string `json:"adapterId"`
  13. AdapterName string `json:"adapterName"`
  14. ClusterId string `json:"clusterId"`
  15. ClusterName string `json:"clusterName"`
  16. ModelName string `json:"modelName"`
  17. ModelType string `json:"modelType"`
  18. InferCard string `json:"inferCard"`
  19. Status string `json:"status"`
  20. CreateTime string `json:"createTime"`
  21. UpdateTime string `json:"updateTime"`
  22. ClusterType string `json:"clusterType"`
  23. }
  24. /******************image inference*************************/
  25. ModelTypesResp {
  26. ModelTypes []string `json:"types"`
  27. }
  28. ModelNamesReq {
  29. Type string `form:"type"`
  30. }
  31. ModelNamesResp {
  32. ModelNames []string `json:"models"`
  33. }
  34. /******************image inference*************************/
  35. /******************instance center*************************/
  36. InstanceCenterReq{
  37. InstanceType int32 `form:"instance_type"`
  38. InstanceClass string `form:"instance_class,optional"`
  39. InstanceName string `form:"instance_name,optional"`
  40. }
  41. InstanceCenterResp {
  42. InstanceCenterList []InstanceCenterList `json:"instanceCenterList" copier:"InstanceCenterList"`
  43. Code int32 `json:"code,omitempty"`
  44. Msg string `json:"msg,omitempty"`
  45. ErrorMsg string `json:"errorMsg,omitempty"`
  46. TotalCount int `json:"totalCount"`
  47. }
  48. InstanceCenterList {
  49. LogoPath string `json:"logo_path"`
  50. InstanceName string `json:"instance_name"`
  51. InstanceType int32 `json:"instance_type"`
  52. InstanceClass string `json:"instance_class"`
  53. InstanceClassChinese string `json:"instance_class_chinese"`
  54. Description string `json:"description"`
  55. Version string `json:"version"`
  56. }
  57. /******************instance center*************************/
  58. ImageInferenceReq {
  59. TaskName string `form:"taskName"`
  60. TaskDesc string `form:"taskDesc"`
  61. ModelType string `form:"modelType"`
  62. InstanceIds []int64 `form:"instanceIds"`
  63. Strategy string `form:"strategy,,optional"`
  64. StaticWeightMap map[string]map[string]int32 `form:"staticWeightMap,optional"`
  65. Replica int32 `form:"replicas,optional"`
  66. }
  67. ImageInferenceResp {
  68. InferResults []*ImageResult `json:"result"`
  69. }
  70. ImageResult {
  71. ClusterId string `json:"clusterId"`
  72. ClusterName string `json:"clusterName"`
  73. ImageName string `json:"imageName"`
  74. Card string `json:"card"`
  75. ImageResult string `json:"imageResult"`
  76. }
  77. InferenceTaskDetailReq{
  78. taskId int64 `form:"taskId"`
  79. }
  80. InferenceTaskDetailResp{
  81. InferenceResults []InferenceResult `json:"data"`
  82. Code int32 `json:"code,omitempty"`
  83. Msg string `json:"msg,omitempty"`
  84. }
  85. InferenceResult{
  86. imageName string `json:"imageName"`
  87. TaskName string `json:"taskName"`
  88. TaskAiName string `json:"taskAiName"`
  89. result string `json:"result"`
  90. card string `json:"card"`
  91. clusterName string `json:"clusterName"`
  92. }
  93. /******************TextToText inference*************************/
  94. TextToTextInferenceReq{
  95. TaskName string `form:"taskName"`
  96. TaskDesc string `form:"taskDesc"`
  97. ModelType string `form:"modelType"`
  98. InstanceId int64 `form:"instanceId"`
  99. }
  100. TextToTextInferenceResp{
  101. }
  102. /******************TextToImage inference*************************/
  103. TextToImageInferenceReq{
  104. TaskName string `form:"taskName"`
  105. TaskDesc string `form:"taskDesc"`
  106. ModelName string `form:"modelName"`
  107. ModelType string `form:"modelType"`
  108. AiClusterIds []string `form:"aiClusterIds"`
  109. }
  110. TextToImageInferenceResp{
  111. Result []byte `json:"result"`
  112. }
  113. /******************Deploy instance*************************/
  114. GetDeployInstanceReq{
  115. AdapterId string `form:"adapterId"`
  116. ClusterId string `form:"clusterId"`
  117. Id string `form:"id"`
  118. InstanceId string `form:"instanceId"`
  119. }
  120. GetDeployInstanceResp {
  121. Instance interface{} `json:"instance"`
  122. }
  123. DeployInstanceListReq{
  124. PageInfo
  125. }
  126. DeployInstanceListResp {
  127. PageResult
  128. }
  129. StartDeployInstanceReq {
  130. AdapterId string `form:"adapterId"`
  131. ClusterId string `form:"clusterId"`
  132. Id string `form:"id"`
  133. InstanceId string `form:"instanceId"`
  134. }
  135. StartDeployInstanceResp {
  136. }
  137. StopDeployInstanceReq {
  138. AdapterId string `form:"adapterId"`
  139. ClusterId string `form:"clusterId"`
  140. Id string `form:"id"`
  141. InstanceId string `form:"instanceId"`
  142. }
  143. StopDeployInstanceResp {
  144. }
  145. DeployInstanceStatReq {
  146. }
  147. DeployInstanceStatResp {
  148. Running int32 `json:"running"`
  149. Total int32 `json:"total"`
  150. }
  151. InferenceTaskStatReq {}
  152. InferenceTaskStatResp {
  153. Running int32 `json:"running"`
  154. Total int32 `json:"total"`
  155. }
  156. StartAllByDeployTaskIdReq {
  157. Id string `json:"deployTaskId"`
  158. }
  159. StartAllByDeployTaskIdResp {
  160. }
  161. StopAllByDeployTaskIdReq {
  162. Id string `json:"deployTaskId"`
  163. }
  164. StopAllByDeployTaskIdResp {
  165. }
  166. GetRunningInstanceReq {
  167. Id string `form:"deployTaskId"`
  168. AdapterId string `form:"adapterId"`
  169. }
  170. GetRunningInstanceResp {
  171. List interface{} `json:"list"`
  172. }
  173. GetDeployTasksByTypeReq {
  174. ModelType string `form:"modelType"`
  175. }
  176. GetDeployTasksByTypeResp {
  177. List interface{} `json:"list"`
  178. }
  179. CreateDeployTaskReq {
  180. TaskName string `form:"taskName"`
  181. TaskDesc string `form:"taskDesc"`
  182. ModelName string `form:"modelName"`
  183. ModelType string `form:"modelType"`
  184. AdapterClusterMap map[string][]string `form:"adapterClusterMap"`
  185. }
  186. CreateDeployTaskResp {
  187. }
  188. GetAdaptersByModelReq {
  189. ModelName string `form:"modelName"`
  190. ModelType string `form:"modelType"`
  191. }
  192. GetAdaptersByModelResp {
  193. Adapters []*AdapterAvail `json:"adapters"`
  194. }
  195. AdapterAvail {
  196. AdapterId string `json:"adapterId"`
  197. AdapterName string `json:"adapterName"`
  198. Clusters []*ClusterAvail `json:"clusters"`
  199. }
  200. ClusterAvail {
  201. ClusterId string `json:"clusterId"`
  202. ClusterName string `json:"clusterName"`
  203. }
  204. // 推理任务
  205. CreateInferenceTaskReq {
  206. Name string `json:"name"`
  207. Description string `json:"description,optional"`
  208. Token string `json:"token,optional"`
  209. UserIp string `json:"userIp,optional"`
  210. JobResources JobResources `json:"jobResources"`
  211. DataDistributes DataDistribute `json:"dataDistributes"`
  212. }
  213. CreateInferenceTaskResp {
  214. TaskId string `json:"taskId"`
  215. }
  216. )

PCM is positioned as Software stack over Cloud, aiming to build the standards and ecology of heterogeneous cloud collaboration for JCC in a non intrusive and autonomous peer-to-peer manner.