| 
					
				 | 
			
			
				@@ -14,8 +14,27 @@ Write your code with sdk: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - completion generate with `blocking` response_mode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+```python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from dify_client import CompletionClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+api_key = "your_api_key" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Initialize CompletionClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+completion_client = CompletionClient(api_key) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Create Completion Message using CompletionClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+completion_response = completion_client.create_completion_message(inputs={"query": "What's the weather like today?"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                                  response_mode="blocking", user="user_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+completion_response.raise_for_status() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+result = completion_response.json() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+print(result.get('answer')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import json 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- completion using vision model, like gpt-4-vision 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+```python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from dify_client import CompletionClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 api_key = "your_api_key" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -23,19 +42,31 @@ api_key = "your_api_key" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Initialize CompletionClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 completion_client = CompletionClient(api_key) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+files = [{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "type": "image", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "transfer_method": "remote_url", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "url": "your_image_url" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# files = [{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#     "type": "image", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#     "transfer_method": "local_file", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#     "upload_file_id": "your_file_id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# }] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Create Completion Message using CompletionClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-completion_response = completion_client.create_completion_message(inputs={}, query="Hello", response_mode="blocking", user="user_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+completion_response = completion_client.create_completion_message(inputs={"query": "Describe the picture."}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                                  response_mode="blocking", user="user_id", files=files) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 completion_response.raise_for_status() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-result = completion_response.text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-result = json.loads(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+result = completion_response.json() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 print(result.get('answer')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - chat generate with `streaming` response_mode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+```python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import json 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from dify_client import ChatClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -55,10 +86,67 @@ for line in chat_response.iter_lines(decode_unicode=True): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         print(line.get('answer')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- Others 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- chat using vision model, like gpt-4-vision 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+```python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from dify_client import ChatClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+api_key = "your_api_key" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Initialize ChatClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+chat_client = ChatClient(api_key) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+files = [{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "type": "image", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "transfer_method": "remote_url", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "url": "your_image_url" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# files = [{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#     "type": "image", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#     "transfer_method": "local_file", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#     "upload_file_id": "your_file_id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# }] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Create Chat Message using ChatClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+chat_response = chat_client.create_chat_message(inputs={}, query="Describe the picture.", user="user_id", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                response_mode="blocking", files=files) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+chat_response.raise_for_status() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+result = chat_response.json() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+print(result.get("answer")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import json 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- upload file when using vision model 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+```python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from dify_client import DifyClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+api_key = "your_api_key" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Initialize Client 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+dify_client = DifyClient(api_key) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+file_path = "your_image_file_path" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+file_name = "panda.jpeg" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+mime_type = "image/jpeg" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+with open(file_path, "rb") as file: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    files = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "file": (file_name, file, mime_type) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    response = dify_client.file_upload("user_id", files) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    result = response.json() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    print(f'upload_file_id: {result.get("id")}') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- Others 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+```python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from dify_client import ChatClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 api_key = "your_api_key" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -69,32 +157,29 @@ client = ChatClient(api_key) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Get App parameters 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 parameters = client.get_application_parameters(user="user_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 parameters.raise_for_status() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-parameters = json.loads(parameters.text) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 print('[parameters]') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-print(parameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+print(parameters.json()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Get Conversation List (only for chat) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 conversations = client.get_conversations(user="user_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 conversations.raise_for_status() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-conversations = json.loads(conversations.text) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 print('[conversations]') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-print(conversations) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+print(conversations.json()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Get Message List (only for chat) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messages = client.get_conversation_messages(user="user_id", conversation_id="conversation_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messages.raise_for_status() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messages = json.loads(messages.text) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 print('[messages]') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-print(messages) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+print(messages.json()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Rename Conversation (only for chat) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-rename_conversation_response = client.rename_conversation(conversation_id="conversation_id", name="new_name", user="user_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+rename_conversation_response = client.rename_conversation(conversation_id="conversation_id", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                          name="new_name", user="user_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 rename_conversation_response.raise_for_status() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-rename_conversation_result = json.loads(rename_conversation_response.text) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 print('[rename result]') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-print(rename_conversation_result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+print(rename_conversation_response.json()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ``` 
			 |