| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  | import axios from "axios"; | 
					
						
							|  |  |  |  | export const BASE_URL = "https://api.dify.ai/v1"; | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-16 09:22:47 +08:00
										 |  |  |  | export const routes = { | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |   //  app's
 | 
					
						
							|  |  |  |  |   feedback: { | 
					
						
							|  |  |  |  |     method: "POST", | 
					
						
							|  |  |  |  |     url: (message_id) => `/messages/${message_id}/feedbacks`, | 
					
						
							|  |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   application: { | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     method: "GET", | 
					
						
							|  |  |  |  |     url: () => `/parameters`, | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |   fileUpload: { | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     method: "POST", | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |     url: () => `/files/upload`, | 
					
						
							|  |  |  |  |   }, | 
					
						
							|  |  |  |  |   textToAudio: { | 
					
						
							|  |  |  |  |     method: "POST", | 
					
						
							|  |  |  |  |     url: () => `/text-to-audio`, | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |   getMeta: { | 
					
						
							|  |  |  |  |     method: "GET", | 
					
						
							|  |  |  |  |     url: () => `/meta`, | 
					
						
							|  |  |  |  |   }, | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   // completion's
 | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   createCompletionMessage: { | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     method: "POST", | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |     url: () => `/completion-messages`, | 
					
						
							|  |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   // chat's
 | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   createChatMessage: { | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     method: "POST", | 
					
						
							| 
									
										
										
										
											2023-05-15 16:57:05 +08:00
										 |  |  |  |     url: () => `/chat-messages`, | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |   getSuggested:{ | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     method: "GET", | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |     url: (message_id) => `/messages/${message_id}/suggested`, | 
					
						
							|  |  |  |  |   }, | 
					
						
							|  |  |  |  |   stopChatMessage: { | 
					
						
							|  |  |  |  |     method: "POST", | 
					
						
							|  |  |  |  |     url: (task_id) => `/chat-messages/${task_id}/stop`, | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   }, | 
					
						
							|  |  |  |  |   getConversations: { | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     method: "GET", | 
					
						
							| 
									
										
										
										
											2023-07-18 10:18:58 +08:00
										 |  |  |  |     url: () => `/conversations`, | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |   getConversationMessages: { | 
					
						
							|  |  |  |  |     method: "GET", | 
					
						
							|  |  |  |  |     url: () => `/messages`, | 
					
						
							|  |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   renameConversation: { | 
					
						
							| 
									
										
										
										
											2024-01-29 12:57:39 +08:00
										 |  |  |  |     method: "POST", | 
					
						
							|  |  |  |  |     url: (conversation_id) => `/conversations/${conversation_id}/name`, | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2023-07-18 10:18:58 +08:00
										 |  |  |  |   deleteConversation: { | 
					
						
							|  |  |  |  |     method: "DELETE", | 
					
						
							|  |  |  |  |     url: (conversation_id) => `/conversations/${conversation_id}`, | 
					
						
							|  |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |   audioToText: { | 
					
						
							| 
									
										
										
										
											2023-11-20 17:54:01 +08:00
										 |  |  |  |     method: "POST", | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |     url: () => `/audio-to-text`, | 
					
						
							| 
									
										
										
										
											2024-04-18 11:23:18 +08:00
										 |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   // workflow‘s
 | 
					
						
							| 
									
										
										
										
											2024-04-18 11:23:18 +08:00
										 |  |  |  |   runWorkflow: { | 
					
						
							|  |  |  |  |     method: "POST", | 
					
						
							|  |  |  |  |     url: () => `/workflows/run`, | 
					
						
							|  |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |   stopWorkflow: { | 
					
						
							|  |  |  |  |     method: "POST", | 
					
						
							|  |  |  |  |     url: (task_id) => `/workflows/${task_id}/stop`, | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  | }; | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | export class DifyClient { | 
					
						
							|  |  |  |  |   constructor(apiKey, baseUrl = BASE_URL) { | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     this.apiKey = apiKey; | 
					
						
							|  |  |  |  |     this.baseUrl = baseUrl; | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   updateApiKey(apiKey) { | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     this.apiKey = apiKey; | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |   async sendRequest( | 
					
						
							|  |  |  |  |     method, | 
					
						
							|  |  |  |  |     endpoint, | 
					
						
							|  |  |  |  |     data = null, | 
					
						
							|  |  |  |  |     params = null, | 
					
						
							| 
									
										
										
										
											2023-11-20 17:54:01 +08:00
										 |  |  |  |     stream = false, | 
					
						
							|  |  |  |  |     headerParams = {} | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |   ) { | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |     const headers = { | 
					
						
							| 
									
										
										
										
											2023-11-20 17:54:01 +08:00
										 |  |  |  |       ...{ | 
					
						
							|  |  |  |  |         Authorization: `Bearer ${this.apiKey}`, | 
					
						
							|  |  |  |  |         "Content-Type": "application/json", | 
					
						
							|  |  |  |  |       }, | 
					
						
							|  |  |  |  |       ...headerParams | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     const url = `${this.baseUrl}${endpoint}`; | 
					
						
							|  |  |  |  |     let response; | 
					
						
							|  |  |  |  |     if (stream) { | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |       response = await axios({ | 
					
						
							|  |  |  |  |         method, | 
					
						
							|  |  |  |  |         url, | 
					
						
							|  |  |  |  |         data, | 
					
						
							|  |  |  |  |         params, | 
					
						
							|  |  |  |  |         headers, | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |         responseType: "stream", | 
					
						
							|  |  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |     } else { | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |       response = await axios({ | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |         method, | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |         url, | 
					
						
							| 
									
										
										
										
											2024-05-27 02:48:07 +02:00
										 |  |  |  |         ...(method !== "GET" && { data }), | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |         params, | 
					
						
							|  |  |  |  |         headers, | 
					
						
							|  |  |  |  |         responseType: "json", | 
					
						
							|  |  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     return response; | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |   messageFeedback(message_id, rating, user) { | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |     const data = { | 
					
						
							|  |  |  |  |       rating, | 
					
						
							|  |  |  |  |       user, | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.feedback.method, | 
					
						
							|  |  |  |  |       routes.feedback.url(message_id), | 
					
						
							|  |  |  |  |       data | 
					
						
							|  |  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   getApplicationParameters(user) { | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     const params = { user }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.application.method, | 
					
						
							|  |  |  |  |       routes.application.url(), | 
					
						
							|  |  |  |  |       null, | 
					
						
							|  |  |  |  |       params | 
					
						
							|  |  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-11-20 17:54:01 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   fileUpload(data) { | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.fileUpload.method, | 
					
						
							|  |  |  |  |       routes.fileUpload.url(), | 
					
						
							|  |  |  |  |       data, | 
					
						
							|  |  |  |  |       null, | 
					
						
							|  |  |  |  |       false, | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |         "Content-Type": 'multipart/form-data' | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   textToAudio(text, user, streaming = false) { | 
					
						
							|  |  |  |  |     const data = { | 
					
						
							|  |  |  |  |       text, | 
					
						
							|  |  |  |  |       user, | 
					
						
							|  |  |  |  |       streaming | 
					
						
							|  |  |  |  |     }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.textToAudio.method, | 
					
						
							|  |  |  |  |       routes.textToAudio.url(), | 
					
						
							|  |  |  |  |       data, | 
					
						
							|  |  |  |  |       null, | 
					
						
							|  |  |  |  |       streaming | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   getMeta(user) { | 
					
						
							|  |  |  |  |     const params = { user }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.meta.method, | 
					
						
							|  |  |  |  |       routes.meta.url(), | 
					
						
							|  |  |  |  |       null, | 
					
						
							|  |  |  |  |       params | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | export class CompletionClient extends DifyClient { | 
					
						
							| 
									
										
										
										
											2023-11-20 17:54:01 +08:00
										 |  |  |  |   createCompletionMessage(inputs, user, stream = false, files = null) { | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |     const data = { | 
					
						
							|  |  |  |  |       inputs, | 
					
						
							|  |  |  |  |       user, | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |       response_mode: stream ? "streaming" : "blocking", | 
					
						
							| 
									
										
										
										
											2023-11-20 17:54:01 +08:00
										 |  |  |  |       files, | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.createCompletionMessage.method, | 
					
						
							|  |  |  |  |       routes.createCompletionMessage.url(), | 
					
						
							|  |  |  |  |       data, | 
					
						
							|  |  |  |  |       null, | 
					
						
							|  |  |  |  |       stream | 
					
						
							|  |  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   } | 
					
						
							| 
									
										
										
										
											2024-04-18 11:23:18 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   runWorkflow(inputs, user, stream = false, files = null) { | 
					
						
							|  |  |  |  |     const data = { | 
					
						
							|  |  |  |  |       inputs, | 
					
						
							|  |  |  |  |       user, | 
					
						
							|  |  |  |  |       response_mode: stream ? "streaming" : "blocking", | 
					
						
							|  |  |  |  |     }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.runWorkflow.method, | 
					
						
							|  |  |  |  |       routes.runWorkflow.url(), | 
					
						
							|  |  |  |  |       data, | 
					
						
							|  |  |  |  |       null, | 
					
						
							|  |  |  |  |       stream | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | export class ChatClient extends DifyClient { | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |   createChatMessage( | 
					
						
							|  |  |  |  |     inputs, | 
					
						
							|  |  |  |  |     query, | 
					
						
							|  |  |  |  |     user, | 
					
						
							|  |  |  |  |     stream = false, | 
					
						
							| 
									
										
										
										
											2023-11-20 17:54:01 +08:00
										 |  |  |  |     conversation_id = null, | 
					
						
							|  |  |  |  |     files = null | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |   ) { | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |     const data = { | 
					
						
							|  |  |  |  |       inputs, | 
					
						
							|  |  |  |  |       query, | 
					
						
							|  |  |  |  |       user, | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |       response_mode: stream ? "streaming" : "blocking", | 
					
						
							| 
									
										
										
										
											2023-11-20 17:54:01 +08:00
										 |  |  |  |       files, | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     }; | 
					
						
							|  |  |  |  |     if (conversation_id) data.conversation_id = conversation_id; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.createChatMessage.method, | 
					
						
							|  |  |  |  |       routes.createChatMessage.url(), | 
					
						
							|  |  |  |  |       data, | 
					
						
							|  |  |  |  |       null, | 
					
						
							|  |  |  |  |       stream | 
					
						
							|  |  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |   getSuggested(message_id, user) { | 
					
						
							|  |  |  |  |     const data = { user }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.getSuggested.method, | 
					
						
							|  |  |  |  |       routes.getSuggested.url(message_id), | 
					
						
							|  |  |  |  |       data | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   stopMessage(task_id, user) { | 
					
						
							|  |  |  |  |     const data = { user }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.stopChatMessage.method, | 
					
						
							|  |  |  |  |       routes.stopChatMessage.url(task_id), | 
					
						
							|  |  |  |  |       data | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   getConversations(user, first_id = null, limit = null, pinned = null) { | 
					
						
							|  |  |  |  |     const params = { user, first_id: first_id, limit, pinned }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.getConversations.method, | 
					
						
							|  |  |  |  |       routes.getConversations.url(), | 
					
						
							|  |  |  |  |       null, | 
					
						
							|  |  |  |  |       params | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |   getConversationMessages( | 
					
						
							|  |  |  |  |     user, | 
					
						
							|  |  |  |  |     conversation_id = "", | 
					
						
							|  |  |  |  |     first_id = null, | 
					
						
							|  |  |  |  |     limit = null | 
					
						
							|  |  |  |  |   ) { | 
					
						
							|  |  |  |  |     const params = { user }; | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     if (conversation_id) params.conversation_id = conversation_id; | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     if (first_id) params.first_id = first_id; | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     if (limit) params.limit = limit; | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.getConversationMessages.method, | 
					
						
							|  |  |  |  |       routes.getConversationMessages.url(), | 
					
						
							|  |  |  |  |       null, | 
					
						
							|  |  |  |  |       params | 
					
						
							|  |  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-29 12:57:39 +08:00
										 |  |  |  |   renameConversation(conversation_id, name, user, auto_generate) { | 
					
						
							|  |  |  |  |     const data = { name, user, auto_generate }; | 
					
						
							| 
									
										
										
										
											2023-06-09 14:24:59 +08:00
										 |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.renameConversation.method, | 
					
						
							|  |  |  |  |       routes.renameConversation.url(conversation_id), | 
					
						
							|  |  |  |  |       data | 
					
						
							|  |  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-07-18 10:18:58 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   deleteConversation(conversation_id, user) { | 
					
						
							|  |  |  |  |     const data = { user }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.deleteConversation.method, | 
					
						
							|  |  |  |  |       routes.deleteConversation.url(conversation_id), | 
					
						
							|  |  |  |  |       data | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   audioToText(data) { | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.audioToText.method, | 
					
						
							|  |  |  |  |       routes.audioToText.url(), | 
					
						
							|  |  |  |  |       data, | 
					
						
							|  |  |  |  |       null, | 
					
						
							|  |  |  |  |       false, | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |         "Content-Type": 'multipart/form-data' | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | export class WorkflowClient extends DifyClient { | 
					
						
							|  |  |  |  |   run(inputs,user,stream) { | 
					
						
							| 
									
										
										
										
											2025-04-29 18:04:33 +08:00
										 |  |  |  |     const data = { | 
					
						
							|  |  |  |  |       inputs, | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |       response_mode: stream ? "streaming" : "blocking", | 
					
						
							| 
									
										
										
										
											2025-04-29 18:04:33 +08:00
										 |  |  |  |       user | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2025-04-29 18:04:33 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 20:21:08 +08:00
										 |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |         routes.runWorkflow.method, | 
					
						
							|  |  |  |  |         routes.runWorkflow.url(), | 
					
						
							|  |  |  |  |         data, | 
					
						
							|  |  |  |  |         null, | 
					
						
							|  |  |  |  |         stream | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   stop(task_id, user) { | 
					
						
							|  |  |  |  |     const data = { user }; | 
					
						
							|  |  |  |  |     return this.sendRequest( | 
					
						
							|  |  |  |  |       routes.stopWorkflow.method, | 
					
						
							|  |  |  |  |       routes.stopWorkflow.url(task_id), | 
					
						
							|  |  |  |  |       data | 
					
						
							|  |  |  |  |     ); | 
					
						
							|  |  |  |  |   } | 
					
						
							| 
									
										
										
										
											2025-04-29 18:04:33 +08:00
										 |  |  |  | } |