|
@@ -238,84 +238,81 @@ Workflow applications offers non-session support and is ideal for translation, a
|
|
|
</CodeGroup>
|
|
|
<CodeGroup title="File upload sample code">
|
|
|
```json {{ title: 'File upload sample code' }}
|
|
|
- {
|
|
|
- import requests
|
|
|
- import json
|
|
|
+ import requests
|
|
|
+ import json
|
|
|
|
|
|
- def upload_file(file_path, user):
|
|
|
- upload_url = "https://api.dify.ai/v1/files/upload"
|
|
|
- headers = {
|
|
|
- "Authorization": "Bearer app-xxxxxxxx",
|
|
|
- }
|
|
|
-
|
|
|
- try:
|
|
|
- print("Upload file...")
|
|
|
- with open(file_path, 'rb') as file:
|
|
|
- files = {
|
|
|
- 'file': (file_path, file, 'text/plain') # Make sure the file is uploaded with the appropriate MIME type
|
|
|
- }
|
|
|
- data = {
|
|
|
- "user": user,
|
|
|
- "type": "TXT" # Set the file type to TXT
|
|
|
- }
|
|
|
-
|
|
|
- response = requests.post(upload_url, headers=headers, files=files, data=data)
|
|
|
- if response.status_code == 201: # 201 means creation is successful
|
|
|
- print("File uploaded successfully")
|
|
|
- return response.json().get("id") # Get the uploaded file ID
|
|
|
- else:
|
|
|
- print(f"File upload failed, status code: {response.status_code}")
|
|
|
- return None
|
|
|
- except Exception as e:
|
|
|
- print(f"Error occurred: {str(e)}")
|
|
|
- return None
|
|
|
-
|
|
|
- def run_workflow(file_id, user, response_mode="blocking"):
|
|
|
- workflow_url = "https://api.dify.ai/v1/workflows/run"
|
|
|
- headers = {
|
|
|
- "Authorization": "Bearer app-xxxxxxxxx",
|
|
|
- "Content-Type": "application/json"
|
|
|
- }
|
|
|
-
|
|
|
- data = {
|
|
|
- "inputs": {
|
|
|
- "orig_mail": {
|
|
|
- "transfer_method": "local_file",
|
|
|
- "upload_file_id": file_id,
|
|
|
- "type": "document"
|
|
|
- }
|
|
|
- },
|
|
|
- "response_mode": response_mode,
|
|
|
- "user": user
|
|
|
- }
|
|
|
+ def upload_file(file_path, user):
|
|
|
+ upload_url = "https://api.dify.ai/v1/files/upload"
|
|
|
+ headers = {
|
|
|
+ "Authorization": "Bearer app-xxxxxxxx",
|
|
|
+ }
|
|
|
+
|
|
|
+ try:
|
|
|
+ print("Upload file...")
|
|
|
+ with open(file_path, 'rb') as file:
|
|
|
+ files = {
|
|
|
+ 'file': (file_path, file, 'text/plain') # Make sure the file is uploaded with the appropriate MIME type
|
|
|
+ }
|
|
|
+ data = {
|
|
|
+ "user": user,
|
|
|
+ "type": "TXT" # Set the file type to TXT
|
|
|
+ }
|
|
|
+
|
|
|
+ response = requests.post(upload_url, headers=headers, files=files, data=data)
|
|
|
+ if response.status_code == 201: # 201 means creation is successful
|
|
|
+ print("File uploaded successfully")
|
|
|
+ return response.json().get("id") # Get the uploaded file ID
|
|
|
+ else:
|
|
|
+ print(f"File upload failed, status code: {response.status_code}")
|
|
|
+ return None
|
|
|
+ except Exception as e:
|
|
|
+ print(f"Error occurred: {str(e)}")
|
|
|
+ return None
|
|
|
+
|
|
|
+ def run_workflow(file_id, user, response_mode="blocking"):
|
|
|
+ workflow_url = "https://api.dify.ai/v1/workflows/run"
|
|
|
+ headers = {
|
|
|
+ "Authorization": "Bearer app-xxxxxxxxx",
|
|
|
+ "Content-Type": "application/json"
|
|
|
+ }
|
|
|
|
|
|
- try:
|
|
|
- print("Run Workflow...")
|
|
|
- response = requests.post(workflow_url, headers=headers, json=data)
|
|
|
- if response.status_code == 200:
|
|
|
- print("Workflow execution successful")
|
|
|
- return response.json()
|
|
|
- else:
|
|
|
- print(f"Workflow execution failed, status code: {response.status_code}")
|
|
|
- return {"status": "error", "message": f"Failed to execute workflow, status code: {response.status_code}"}
|
|
|
- except Exception as e:
|
|
|
- print(f"Error occurred: {str(e)}")
|
|
|
- return {"status": "error", "message": str(e)}
|
|
|
-
|
|
|
- # Usage Examples
|
|
|
- file_path = "{your_file_path}"
|
|
|
- user = "difyuser"
|
|
|
-
|
|
|
- # Upload files
|
|
|
- file_id = upload_file(file_path, user)
|
|
|
- if file_id:
|
|
|
- # The file was uploaded successfully, and the workflow continues to run
|
|
|
- result = run_workflow(file_id, user)
|
|
|
- print(result)
|
|
|
- else:
|
|
|
- print("File upload failed and workflow cannot be executed")
|
|
|
+ data = {
|
|
|
+ "inputs": {
|
|
|
+ "orig_mail": {
|
|
|
+ "transfer_method": "local_file",
|
|
|
+ "upload_file_id": file_id,
|
|
|
+ "type": "document"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "response_mode": response_mode,
|
|
|
+ "user": user
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ try:
|
|
|
+ print("Run Workflow...")
|
|
|
+ response = requests.post(workflow_url, headers=headers, json=data)
|
|
|
+ if response.status_code == 200:
|
|
|
+ print("Workflow execution successful")
|
|
|
+ return response.json()
|
|
|
+ else:
|
|
|
+ print(f"Workflow execution failed, status code: {response.status_code}")
|
|
|
+ return {"status": "error", "message": f"Failed to execute workflow, status code: {response.status_code}"}
|
|
|
+ except Exception as e:
|
|
|
+ print(f"Error occurred: {str(e)}")
|
|
|
+ return {"status": "error", "message": str(e)}
|
|
|
+
|
|
|
+ # Usage Examples
|
|
|
+ file_path = "{your_file_path}"
|
|
|
+ user = "difyuser"
|
|
|
+
|
|
|
+ # Upload files
|
|
|
+ file_id = upload_file(file_path, user)
|
|
|
+ if file_id:
|
|
|
+ # The file was uploaded successfully, and the workflow continues to run
|
|
|
+ result = run_workflow(file_id, user)
|
|
|
+ print(result)
|
|
|
+ else:
|
|
|
+ print("File upload failed and workflow cannot be executed")
|
|
|
```
|
|
|
</CodeGroup>
|
|
|
</Col>
|