|
|
|
|
@ -238,84 +238,81 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
|
|
|
|
|
</CodeGroup>
|
|
|
|
|
<CodeGroup title="ファイルアップロードのサンプルコード">
|
|
|
|
|
```json {{ title: 'ファイルアップロードのサンプルコード' }}
|
|
|
|
|
{
|
|
|
|
|
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("ファイルをアップロードしています...")
|
|
|
|
|
with open(file_path, 'rb') as file:
|
|
|
|
|
files = {
|
|
|
|
|
'file': (file_path, file, 'text/plain') # ファイルが適切な MIME タイプでアップロードされていることを確認してください
|
|
|
|
|
}
|
|
|
|
|
data = {
|
|
|
|
|
"user": user,
|
|
|
|
|
"type": "TXT" # ファイルタイプをTXTに設定します
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
response = requests.post(upload_url, headers=headers, files=files, data=data)
|
|
|
|
|
if response.status_code == 201: # 201 は作成が成功したことを意味します
|
|
|
|
|
print("ファイルが正常にアップロードされました")
|
|
|
|
|
return response.json().get("id") # アップロードされたファイルIDを取得する
|
|
|
|
|
else:
|
|
|
|
|
print(f"ファイルのアップロードに失敗しました。ステータス コード: {response.status_code}")
|
|
|
|
|
return None
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(f"エラーが発生しました: {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("ファイルをアップロードしています...")
|
|
|
|
|
with open(file_path, 'rb') as file:
|
|
|
|
|
files = {
|
|
|
|
|
'file': (file_path, file, 'text/plain') # ファイルが適切な MIME タイプでアップロードされていることを確認してください
|
|
|
|
|
}
|
|
|
|
|
data = {
|
|
|
|
|
"user": user,
|
|
|
|
|
"type": "TXT" # ファイルタイプをTXTに設定します
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
response = requests.post(upload_url, headers=headers, files=files, data=data)
|
|
|
|
|
if response.status_code == 201: # 201 は作成が成功したことを意味します
|
|
|
|
|
print("ファイルが正常にアップロードされました")
|
|
|
|
|
return response.json().get("id") # アップロードされたファイルIDを取得する
|
|
|
|
|
else:
|
|
|
|
|
print(f"ファイルのアップロードに失敗しました。ステータス コード: {response.status_code}")
|
|
|
|
|
return None
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(f"エラーが発生しました: {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("ワークフローを実行...")
|
|
|
|
|
response = requests.post(workflow_url, headers=headers, json=data)
|
|
|
|
|
if response.status_code == 200:
|
|
|
|
|
print("ワークフローが正常に実行されました")
|
|
|
|
|
return response.json()
|
|
|
|
|
else:
|
|
|
|
|
print(f"ワークフローの実行がステータス コードで失敗しました: {response.status_code}")
|
|
|
|
|
return {"status": "error", "message": f"Failed to execute workflow, status code: {response.status_code}"}
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(f"エラーが発生しました: {str(e)}")
|
|
|
|
|
return {"status": "error", "message": str(e)}
|
|
|
|
|
|
|
|
|
|
# 使用例
|
|
|
|
|
file_path = "{your_file_path}"
|
|
|
|
|
user = "difyuser"
|
|
|
|
|
|
|
|
|
|
# ファイルをアップロードする
|
|
|
|
|
file_id = upload_file(file_path, user)
|
|
|
|
|
if file_id:
|
|
|
|
|
# ファイルは正常にアップロードされました。ワークフローの実行を続行します
|
|
|
|
|
result = run_workflow(file_id, user)
|
|
|
|
|
print(result)
|
|
|
|
|
else:
|
|
|
|
|
print("ファイルのアップロードに失敗し、ワークフローを実行できません")
|
|
|
|
|
data = {
|
|
|
|
|
"inputs": {
|
|
|
|
|
"orig_mail": {
|
|
|
|
|
"transfer_method": "local_file",
|
|
|
|
|
"upload_file_id": file_id,
|
|
|
|
|
"type": "document"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"response_mode": response_mode,
|
|
|
|
|
"user": user
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
try:
|
|
|
|
|
print("ワークフローを実行...")
|
|
|
|
|
response = requests.post(workflow_url, headers=headers, json=data)
|
|
|
|
|
if response.status_code == 200:
|
|
|
|
|
print("ワークフローが正常に実行されました")
|
|
|
|
|
return response.json()
|
|
|
|
|
else:
|
|
|
|
|
print(f"ワークフローの実行がステータス コードで失敗しました: {response.status_code}")
|
|
|
|
|
return {"status": "error", "message": f"Failed to execute workflow, status code: {response.status_code}"}
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(f"エラーが発生しました: {str(e)}")
|
|
|
|
|
return {"status": "error", "message": str(e)}
|
|
|
|
|
|
|
|
|
|
# 使用例
|
|
|
|
|
file_path = "{your_file_path}"
|
|
|
|
|
user = "difyuser"
|
|
|
|
|
|
|
|
|
|
# ファイルをアップロードする
|
|
|
|
|
file_id = upload_file(file_path, user)
|
|
|
|
|
if file_id:
|
|
|
|
|
# ファイルは正常にアップロードされました。ワークフローの実行を続行します
|
|
|
|
|
result = run_workflow(file_id, user)
|
|
|
|
|
print(result)
|
|
|
|
|
else:
|
|
|
|
|
print("ファイルのアップロードに失敗し、ワークフローを実行できません")
|
|
|
|
|
```
|
|
|
|
|
</CodeGroup>
|
|
|
|
|
</Col>
|
|
|
|
|
|