| 
					
				 | 
			
			
				@@ -9,9 +9,9 @@ class DifyClient { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     protected $base_url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     protected $client; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public function __construct($api_key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function __construct($api_key, $base_url = null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $this->api_key = $api_key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $this->base_url = "https://api.dify.ai/v1/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $this->base_url = $base_url ?? "https://api.dify.ai/v1/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $this->client = new Client([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'base_uri' => $this->base_url, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'headers' => [ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -80,6 +80,25 @@ class DifyClient { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return $multipart; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function text_to_audio($text, $user, $streaming = false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $data = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'text' => $text, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user' => $user, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'streaming' => $streaming 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $this->send_request('POST', 'text-to-audio', $data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function get_meta($user) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $params = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user' => $user 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $this->send_request('GET', 'meta',null, $params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class CompletionClient extends DifyClient { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -126,6 +145,16 @@ class ChatClient extends DifyClient { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return $this->send_request('GET', 'messages', null, $params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function stop_message($task_id, $user) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $data = ['user' => $user]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $this->send_request('POST', "chat-messages/{$task_id}/stop", $data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public function get_conversations($user, $first_id = null, $limit = null, $pinned = null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $params = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'user' => $user, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -143,4 +172,23 @@ class ChatClient extends DifyClient { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return $this->send_request('PATCH', "conversations/{$conversation_id}", $data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function audio_to_text($audio_file, $user) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $data = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user' => $user, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $options = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'multipart' => $this->prepareMultipart($data, $files) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $this->file_client->request('POST', 'audio-to-text', $options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function get_suggestions($message_id, $user) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $params = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user' => $user 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $this->send_request('GET', "messages/{$message_id}/suggested", null, $params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |