lobster.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. import request from '@/utils/request'
  2. // ======== 工作流执行 (Instance) ========
  3. export function listInstances(params) {
  4. return request({ url: '/workflow/lobster-exec/instance/list', method: 'get', params })
  5. }
  6. export function getInstance(instanceId) {
  7. return request({ url: `/workflow/lobster-exec/instance/${instanceId}`, method: 'get' })
  8. }
  9. export function getNodeLogs(instanceId) {
  10. return request({ url: `/workflow/lobster-exec/node-logs/${instanceId}`, method: 'get' })
  11. }
  12. export function startWorkflow(params) {
  13. return request({ url: '/workflow/lobster-exec/start', method: 'post', params })
  14. }
  15. export function executeNextNode(params) {
  16. return request({ url: '/workflow/lobster-exec/next-node', method: 'post', params })
  17. }
  18. export function pauseInstance(instanceId) {
  19. return request({ url: `/workflow/lobster-exec/pause/${instanceId}`, method: 'post' })
  20. }
  21. export function resumeInstance(instanceId) {
  22. return request({ url: `/workflow/lobster-exec/resume/${instanceId}`, method: 'post' })
  23. }
  24. export function terminateInstance(instanceId, reason) {
  25. return request({ url: `/workflow/lobster-exec/terminate/${instanceId}`, method: 'post', params: { reason } })
  26. }
  27. export function getControlMode(instanceId) {
  28. return request({ url: `/workflow/lobster-exec/control-mode/${instanceId}`, method: 'get' })
  29. }
  30. export function setControlMode(instanceId, mode) {
  31. return request({ url: `/workflow/lobster-exec/control-mode/${instanceId}`, method: 'post', params: { mode } })
  32. }
  33. export function completeHandoff(instanceId, nextNodeCode) {
  34. return request({ url: `/workflow/lobster-exec/complete-handoff/${instanceId}`, method: 'post', params: { nextNodeCode } })
  35. }
  36. // ======== 合规规则 ========
  37. export function listComplianceRules() {
  38. return request({ url: '/workflow/lobster-exec/compliance-rules', method: 'get' })
  39. }
  40. export function addComplianceRule(data) {
  41. return request({ url: '/workflow/lobster-exec/compliance-rule', method: 'post', data })
  42. }
  43. export function updateComplianceRule(id, data) {
  44. return request({ url: `/workflow/lobster-exec/compliance-rule/${id}`, method: 'put', data })
  45. }
  46. export function deleteComplianceRule(id) {
  47. return request({ url: `/workflow/lobster-exec/compliance-rule/${id}`, method: 'delete' })
  48. }
  49. // ======== 引擎核心 ========
  50. export function getEvolutionMetrics() {
  51. return request({ url: '/workflow/lobster/engine/evolution/metrics', method: 'get' })
  52. }
  53. export function analyzeEvolution(workflowId) {
  54. return request({ url: '/workflow/lobster/engine/evolution/analyze', method: 'get', params: { workflowId } })
  55. }
  56. export function applyEvolution(suggestionId) {
  57. return request({ url: '/workflow/lobster/engine/evolution/apply', method: 'post', params: { suggestionId } })
  58. }
  59. export function getHeartbeatStatus(instanceId) {
  60. return request({ url: '/workflow/lobster/engine/heartbeat/status', method: 'get', params: { instanceId } })
  61. }
  62. export function getAvailableChannels() {
  63. return request({ url: '/workflow/lobster/engine/channels', method: 'get' })
  64. }
  65. export function getNodeCapabilities() {
  66. return request({ url: '/workflow/lobster/engine/node-capabilities', method: 'get' })
  67. }
  68. export function runIntegrationTests() {
  69. return request({ url: '/workflow/lobster/engine/integration-test/run', method: 'post' })
  70. }
  71. export function testNodeTypes() {
  72. return request({ url: '/workflow/lobster/engine/integration-test/node-types', method: 'get' })
  73. }
  74. export function testDynamicExecutor() {
  75. return request({ url: '/workflow/lobster/engine/integration-test/dynamic-executor', method: 'get' })
  76. }
  77. // ======== AI生成工作流 ========
  78. export function aiGenerate(data) {
  79. return request({ url: '/workflow/lobster/ai-generator/generate', method: 'post', data })
  80. }
  81. export function getGenerateResult(recordId) {
  82. return request({ url: `/workflow/lobster/ai-generator/result/${recordId}/detail`, method: 'get' })
  83. }
  84. export function confirmGenerate(recordId, data) {
  85. return request({ url: `/workflow/lobster/ai-generator/confirm/${recordId}`, method: 'post', data })
  86. }
  87. export function confirmGenerateEdited(recordId, data) {
  88. return request({ url: `/workflow/lobster/ai-generator/confirm/${recordId}/edited`, method: 'post', data })
  89. }
  90. export function regenerateWorkflow(recordId, data) {
  91. return request({ url: `/workflow/lobster/ai-generator/regenerate/${recordId}`, method: 'post', data })
  92. }
  93. // ======== 提示词管理 ========
  94. export function listPrompts(params) {
  95. return request({ url: '/workflow/lobster/prompt/list', method: 'get', params })
  96. }
  97. export function getPrompt(id) {
  98. return request({ url: `/workflow/lobster/prompt/${id}`, method: 'get' })
  99. }
  100. export function addPrompt(data) {
  101. return request({ url: '/workflow/lobster/prompt', method: 'post', data })
  102. }
  103. export function updatePrompt(id, data) {
  104. return request({ url: `/workflow/lobster/prompt/${id}`, method: 'put', data })
  105. }
  106. export function deletePrompt(id) {
  107. return request({ url: `/workflow/lobster/prompt/${id}`, method: 'delete' })
  108. }
  109. export function getPromptCategories() {
  110. return request({ url: '/workflow/lobster/prompt/categories', method: 'get' })
  111. }
  112. export function refreshPromptCache() {
  113. return request({ url: '/workflow/lobster/prompt/refresh-cache', method: 'post' })
  114. }
  115. // ======== 销冠语料 ========
  116. export function listSalesCorpus(params) {
  117. return request({ url: '/workflow/lobster/sales-corpus/list', method: 'get', params })
  118. }
  119. export function addCorpusDialog(data) {
  120. return request({ url: '/workflow/lobster/sales-corpus/dialog', method: 'post', data })
  121. }
  122. export function batchImportCorpus(data) {
  123. return request({ url: '/workflow/lobster/sales-corpus/batch-import', method: 'post', data })
  124. }
  125. export function analyzeCorpus() {
  126. return request({ url: '/workflow/lobster/sales-corpus/analyze', method: 'post' })
  127. }
  128. export function getCorpusScenarios() {
  129. return request({ url: '/workflow/lobster/sales-corpus/scenarios', method: 'get' })
  130. }
  131. // ======== API注册中心 ========
  132. export function listApiRegistry() {
  133. return request({ url: '/workflow/lobster/api-registry/list', method: 'get' })
  134. }
  135. export function registerApi(data) {
  136. return request({ url: '/workflow/lobster/api-registry', method: 'post', data })
  137. }
  138. export function refreshApiCache() {
  139. return request({ url: '/workflow/lobster/api-registry/refresh', method: 'post' })
  140. }
  141. export function getApiCategories() {
  142. return request({ url: '/workflow/lobster/api-registry/categories', method: 'get' })
  143. }
  144. // ======== 死信队列 ========
  145. export function listDeadLetters() {
  146. return request({ url: '/workflow/lobster/dead-letter/list', method: 'get' })
  147. }
  148. export function retryAllDeadLetters() {
  149. return request({ url: '/workflow/lobster/dead-letter/retry-all', method: 'post' })
  150. }
  151. export function getDeadLetterStats() {
  152. return request({ url: '/workflow/lobster/dead-letter/stats', method: 'get' })
  153. }
  154. // ======== 节点审核 ========
  155. export function listEventAudits(params) {
  156. return request({ url: '/workflow/lobster/event-audit/list', method: 'get', params })
  157. }
  158. export function approveEvent(id) {
  159. return request({ url: `/workflow/lobster/event-audit/approve/${id}`, method: 'post' })
  160. }
  161. export function rejectEvent(id, data) {
  162. return request({ url: `/workflow/lobster/event-audit/reject/${id}`, method: 'post', data })
  163. }
  164. export function getEventAuditDetail(id) {
  165. return request({ url: `/workflow/lobster/event-audit/${id}`, method: 'get' })
  166. }
  167. // ======== 优化建议 ========
  168. export function listPendingAudit(params) {
  169. return request({ url: '/workflow/lobster/optimization/pending-audit', method: 'get', params })
  170. }
  171. export function batchAuditOptimization(data) {
  172. return request({ url: '/workflow/lobster/optimization/batch-audit', method: 'post', data })
  173. }
  174. export function auditSingleOptimization(optimizationId, approved, remark) {
  175. return request({ url: `/workflow/lobster/optimization/audit/${optimizationId}`, method: 'post', params: { approved, remark } })
  176. }
  177. export function analyzeOptimization(externalUserId, workflowId) {
  178. return request({ url: '/workflow/lobster/optimization/analyze', method: 'post', params: { externalUserId, workflowId } })
  179. }
  180. export function getOptimizationStats() {
  181. return request({ url: '/workflow/lobster/optimization/stats', method: 'get' })
  182. }
  183. export function getOptimizationConfig(params) {
  184. return request({ url: '/workflow/lobster/optimization/config', method: 'get', params })
  185. }
  186. export function setOptimizationConfig(data) {
  187. return request({ url: '/workflow/lobster/optimization/config', method: 'post', data })
  188. }
  189. // ======== 模拟对话 ========
  190. export function simulateChat(data) {
  191. return request({ url: '/workflow/simulate', method: 'post', data })
  192. }
  193. // ======== AI回复质量评分 ========
  194. export function listQualityRecords(params) {
  195. return request({ url: '/aiChatQuality/list', method: 'get', params })
  196. }
  197. export function getQualityRecord(id) {
  198. return request({ url: `/aiChatQuality/${id}`, method: 'get' })
  199. }
  200. export function submitQualityReview(data) {
  201. return request({ url: '/aiChatQuality', method: 'post', data })
  202. }
  203. export function updateQualityReview(data) {
  204. return request({ url: '/aiChatQuality', method: 'put', data })
  205. }
  206. export function deleteQualityRecord(id) {
  207. return request({ url: `/aiChatQuality/${id}`, method: 'delete' })
  208. }
  209. export function getQualityStats(params) {
  210. return request({ url: '/aiChatQuality/stats', method: 'get', params })
  211. }
  212. // ======== 工作流模板获取 ========
  213. export function getTemplateWithNodes(id) {
  214. return request({ url: `/workflow/template/${id}`, method: 'get' })
  215. }
  216. export function listAllTemplates() {
  217. return request({ url: '/workflow/lobster/template/list', method: 'get' })
  218. }
  219. // ======== 工作流模板与节点CRUD(画布编辑器) ========
  220. export function listWorkflowTemplates() {
  221. return request({ url: '/workflow/lobster/template/list', method: 'get' })
  222. }
  223. export function getWorkflowNodes(workflowId) {
  224. return request({ url: `/workflow/lobster/nodes/${workflowId}`, method: 'get' })
  225. }
  226. export function saveWorkflowNodes(data) {
  227. return request({ url: '/workflow/lobster/nodes/save', method: 'post', data })
  228. }
  229. /* ========== 渠道聚合聊天 ========== */
  230. export function getChatAggregate(params) {
  231. return request({ url: '/workflow/lobster/chat-aggregate', method: 'get', params })
  232. }
  233. export function getChatMessages(sessionId) {
  234. return request({ url: `/workflow/lobster/chat-aggregate/messages/${sessionId}`, method: 'get' })
  235. }