AgentApi.ts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. import r from '@/utils/request'
  2. import { getRequestId } from '@/utils/misc'
  3. export interface StandardResponse {
  4. code: number
  5. message: string
  6. data: any,
  7. meta: any
  8. records: any
  9. }
  10. const URL_GET_JOB = '/api/agent/job'
  11. const URL_GET_QUEUE = '/api/agent/queue'
  12. const URL_GET_FILE = '/api/file/browse'
  13. const URL_GET_USER = '/api/user/session'
  14. const URL_PUT_USER = '/api/user/signin'
  15. const URL_GET_CONFIG = '/api/config/do'
  16. const SUCCESS = 200
  17. const FAILED = 500
  18. const PROCESSING = 202
  19. interface RequestActionParams { // 定义Job接口
  20. name: string
  21. value: any
  22. }
  23. export interface SearchData {
  24. job_name: string,
  25. start_category: string,
  26. job_category: string,
  27. status: number,
  28. }
  29. export interface JobData {
  30. id: number
  31. start_category: string
  32. job_category: string
  33. job_name: string
  34. job_details: string
  35. job_creator: string
  36. job_status: string
  37. job_logs: string
  38. status: number
  39. executor: string
  40. created: Date
  41. updated: Date
  42. }
  43. export interface RequestBody { // 定义Job接口
  44. id: string
  45. action: string
  46. params: Array<RequestActionParams>
  47. }
  48. export interface JobData {
  49. id: number
  50. job_category: string
  51. job_name: string
  52. job_details: string
  53. job_creator: string
  54. job_status: string
  55. status: number
  56. executor: string
  57. created: Date
  58. updated: Date
  59. }
  60. export const JobCategory = {
  61. "SYSTEM_WORD": "WORD文档文字提取",
  62. "SYSTEM_OCR": "PDF文档文字提取",
  63. "SYSTEM_PDF": "PDF文档文字提取",
  64. "SYSTEM_IMAGE": "图片文字提取",
  65. "SYSTEM_CHUNKS": "文本分块",
  66. "SYSTEM_EMBEDDINGS": "文本向量化",
  67. "SYSTEM_SUMMARIZE": "文本摘要",
  68. "SYSTEM_QA": "文本问答",
  69. "SYSTEM_KB_BUILD": "知识图谱构建",
  70. "SYSTEM_KB_EXTRACT": "抽取知识",
  71. }
  72. export const JobSatus = [
  73. //primary success info warning danger
  74. { "label": "无效", "value": -1, "tag": "danger", "could_be_set": false },
  75. { "label": "准备中", "value": 0, "tag": "primary", "could_be_set": true },
  76. { "label": "运行中", "value": 1, "tag": "success", "could_be_set": false },
  77. { "label": "完成", "value": 2, "tag": "success", "could_be_set": false },
  78. { "label": "失败", "value": 3, "tag": "warning", "could_be_set": false },
  79. { "label": "取消", "value": 4, "tag": "info", "could_be_set": true },
  80. { "label": "等待", "value": 5, "tag": "info", "could_be_set": false },
  81. { "label": "暂停", "value": 6, "tag": "info", "could_be_set": true },
  82. { "label": "恢复", "value": 7, "tag": "info", "could_be_set": false },
  83. { "label": "重启", "value": 8, "tag": "info", "could_be_set": false },
  84. { "label": "跳过", "value": 9, "tag": "info", "could_be_set": true },
  85. { "label": "重试", "value": 10, "tag": "warning", "could_be_set": true },
  86. ]
  87. export function getJobCategory(category: string): string {
  88. if (category in JobCategory) {
  89. return JobCategory[category as keyof typeof JobCategory]
  90. }
  91. return category
  92. }
  93. export function searchJobs(params: SearchData, page: number = 1, page_size: number = 10): Promise<StandardResponse> {
  94. var data: RequestBody = {
  95. id: getRequestId(),
  96. action: 'search_jobs',
  97. params: [
  98. { name: 'job_status', value: params.status },
  99. { name: 'job_category', value: params.job_category },
  100. { name: 'start_category', value: params.start_category },
  101. { name: 'job_name', value: params.job_name },
  102. { name: 'page', value: page },
  103. { name: 'page_size', value: page_size },
  104. ]
  105. }
  106. return serverRequest(URL_GET_QUEUE, data)
  107. }
  108. export function getStartQueueJobs(categroy: string, name: string, page: number = 1, page_size: number = 10): Promise<StandardResponse> {
  109. var data: RequestBody = {
  110. id: getRequestId(),
  111. action: 'get_jobs_start_from_queue',
  112. params: [
  113. { name: 'queue_category', value: categroy },
  114. { name: 'queue_name', value: name },
  115. { name: 'page', value: page },
  116. { name: 'page_size', value: page_size },
  117. ]
  118. }
  119. return serverRequest(URL_GET_QUEUE, data)
  120. }
  121. export function getJobStatus(status: number): string {
  122. var result = JobSatus.find(item => item.value == status)
  123. if (result) {
  124. return result.label
  125. } else {
  126. return '未知'
  127. }
  128. }
  129. export function getJobStatusTag(status: number): string {
  130. var result = JobSatus.find(item => item.value == status)
  131. if (result) {
  132. return result.tag
  133. } else {
  134. return 'primary'
  135. }
  136. }
  137. export function serverRequest(url: string, body: RequestBody): Promise<StandardResponse> {
  138. return new Promise((resolve, reject) => {
  139. r.request<StandardResponse>({ url: url, method: 'POST', data: body }).then(result => {
  140. var response_data: StandardResponse = result as StandardResponse
  141. if (response_data.code == SUCCESS) {
  142. resolve(response_data)
  143. } else {
  144. reject(response_data)
  145. }
  146. })
  147. })
  148. }
  149. export function serverGetRequest(url: string,): Promise<StandardResponse> {
  150. return new Promise((resolve, reject) => {
  151. r.request<StandardResponse>({ url: url, method: 'GET' }).then(result => {
  152. var response_data: StandardResponse = result as StandardResponse
  153. if (response_data.code == SUCCESS) {
  154. resolve(response_data)
  155. } else {
  156. reject(response_data)
  157. }
  158. })
  159. })
  160. }
  161. export function getJob(job_id: number): Promise<StandardResponse> {
  162. var data: RequestBody = {
  163. id: getRequestId(),
  164. action: 'get_job',
  165. params: [
  166. { name: 'job_id', value: job_id },
  167. ]
  168. }
  169. return serverRequest(URL_GET_JOB, data)
  170. }
  171. export function getJobs(categroy: string, name: string, page: number = 1, page_size: number = 10): Promise<StandardResponse> {
  172. var data: RequestBody = {
  173. id: getRequestId(),
  174. action: 'get_jobs',
  175. params: [
  176. { name: 'queue_category', value: categroy },
  177. { name: 'queue_name', value: name },
  178. { name: 'page', value: page },
  179. { name: 'page_size', value: page_size },
  180. ]
  181. }
  182. return serverRequest(URL_GET_QUEUE, data)
  183. }
  184. export function getQueue(categroy: string, name: string): Promise<StandardResponse> {
  185. var data: RequestBody = {
  186. id: getRequestId(),
  187. action: 'get_queue',
  188. params: [
  189. { name: 'queue_category', value: categroy },
  190. { name: 'queue_name', value: name },
  191. ]
  192. }
  193. return serverRequest(URL_GET_QUEUE, data)
  194. }
  195. export function createJob(params: any): Promise<StandardResponse> {
  196. // console.log(params)
  197. var data: RequestBody = {
  198. id: getRequestId(),
  199. action: 'create_job',
  200. params: [
  201. { name: 'job_category', value: params['job_category'] },
  202. { name: 'job_name', value: params['job_name'] },
  203. { name: 'job_details', value: params['job_details'] },
  204. { name: 'job_creator', value: params['job_creator'] },
  205. { name: 'queue_category', value: params['queue_category'] },
  206. { name: 'queue_name', value: params['queue_name'] },
  207. ]
  208. }
  209. return serverRequest(URL_GET_JOB, data)
  210. }
  211. export function deleteJob(params: any): Promise<StandardResponse> {
  212. // console.log(params)
  213. var data: RequestBody = {
  214. id: getRequestId(),
  215. action: 'delete_job',
  216. params: [
  217. { name: 'job_id', value: params['job_id'] },
  218. ]
  219. }
  220. return serverRequest(URL_GET_JOB, data)
  221. }
  222. export function updateJobStatus(job: JobData): Promise<StandardResponse> {
  223. var data: RequestBody = {
  224. id: getRequestId(),
  225. action: 'update_job_status',
  226. params: [
  227. { name: 'job_id', value: job.id },
  228. { name: 'status', value: job.status },
  229. ]
  230. }
  231. return serverRequest(URL_GET_JOB, data)
  232. }
  233. export function updateJob(job: JobData): Promise<StandardResponse> {
  234. var data: RequestBody = {
  235. id: getRequestId(),
  236. action: 'update_job',
  237. params: [
  238. { name: 'job_id', value: job.id },
  239. { name: 'job_category', value: job.job_category },
  240. { name: 'job_name', value: job.job_name },
  241. { name: 'job_details', value: job.job_details },
  242. { name: 'job_creator', value: job.job_creator },
  243. { name: 'status', value: job.status },
  244. ]
  245. }
  246. return serverRequest(URL_GET_JOB, data)
  247. }
  248. export function putQueueJob(params: any): Promise<StandardResponse> {
  249. // console.log(params)
  250. var data: RequestBody = {
  251. id: getRequestId(),
  252. action: 'put_job',
  253. params: [
  254. { name: 'queue_category', value: params['queue_category'] },
  255. { name: 'queue_name', value: params['queue_name'] },
  256. { name: 'job_id', value: params['job_id'] },
  257. ]
  258. }
  259. return serverRequest(URL_GET_QUEUE, data)
  260. }
  261. export function browseJobFile(params: any): Promise<StandardResponse> {
  262. // console.log(params)
  263. var data: RequestBody = {
  264. id: getRequestId(),
  265. action: 'browse_job_file',
  266. params: [
  267. { name: 'job_id', value: params['job_id'] },
  268. { name: 'path', value: params['path'] },
  269. ]
  270. }
  271. return serverRequest(URL_GET_FILE, data)
  272. }
  273. export function userSignin(params: any): Promise<StandardResponse> {
  274. // console.log(params)
  275. var data: RequestBody = {
  276. id: getRequestId(),
  277. action: 'signin',
  278. params: [
  279. { name: 'username', value: params['username'] },
  280. { name: 'password', value: params['password'] },
  281. { name: 'email', value: params['email'] },
  282. { name: 'full_name', value: params['full_name'] },
  283. ]
  284. }
  285. return serverRequest(URL_PUT_USER, data)
  286. }
  287. export function userLogin(params: any): Promise<StandardResponse> {
  288. // console.log(params)
  289. var data: RequestBody = {
  290. id: getRequestId(),
  291. action: 'login',
  292. params: [
  293. { name: 'username', value: params['username'] },
  294. { name: 'password', value: params['password'] },
  295. ]
  296. }
  297. return serverRequest(URL_GET_USER, data)
  298. }
  299. export function userLogout(params: any): Promise<StandardResponse> {
  300. // console.log('logout')
  301. var data: RequestBody = {
  302. id: getRequestId(),
  303. action: 'logout',
  304. params: [{ name: 'session_id', value: params['username'] }]
  305. }
  306. return serverRequest(URL_GET_USER, data)
  307. }
  308. export function getQueueSummary(params: any): Promise<StandardResponse> {
  309. // console.log(params)
  310. var data: RequestBody = {
  311. id: getRequestId(),
  312. action: 'get_queue_summary',
  313. params: [
  314. ]
  315. }
  316. return serverRequest(URL_GET_QUEUE, data)
  317. }
  318. export function getFileContent(url: string): Promise<StandardResponse> {
  319. return serverGetRequest(url)
  320. }
  321. export function getKnowledgeBase(params: any = { name: "", pageNo: 1, pageSize: 10 }): Promise<StandardResponse> {
  322. return serverGetRequest(`/open-platform/knowledge-base/?name=${params.name}&pageNo=${params.pageNo}&pageSize=${params.pageSize}`)
  323. }
  324. export function getKnowledgeBaseFilesList(params: any): Promise<StandardResponse> {
  325. return serverGetRequest(`/open-platform/knowledge-base/${params.kbId}/files/?file_name=${params.file_name}&pageNo=${params.pageNo}&pageSize=${params.pageSize}`)
  326. }
  327. export function getConfig(params: any): Promise<StandardResponse> {
  328. console.log(params)
  329. var data: RequestBody = {
  330. id: getRequestId(),
  331. action: 'get_config',
  332. params: [
  333. { name: 'code', value: params['code'] },
  334. ]
  335. }
  336. return serverRequest(URL_GET_CONFIG, data)
  337. }
  338. export function getQueues(): Promise<StandardResponse> {
  339. var data: RequestBody = {
  340. id: getRequestId(),
  341. action: 'get_queues',
  342. params: []
  343. }
  344. return serverRequest(URL_GET_QUEUE, data)
  345. }
  346. export function setConfig(params: any): Promise<StandardResponse> {
  347. console.log(params)
  348. var data: RequestBody = {
  349. id: getRequestId(),
  350. action: 'set_config',
  351. params: [
  352. { name: 'code', value: params['code'] },
  353. { name: 'name', value: params['name'] },
  354. { name: 'content', value: params['content'] },
  355. ]
  356. }
  357. return serverRequest(URL_GET_CONFIG, data)
  358. }