<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      交個(gè)朋友吧

      Dify使用事項(xiàng)

      安裝部署

      • 內(nèi)網(wǎng)環(huán)境下以docker形式部署
      1. 需在外網(wǎng)環(huán)境下通過docker部署完成,具體參考:https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose

      安裝完成后通過docker ps能看到有以下容器:

      image-20250412152427349

      1. 9個(gè)容器逐個(gè)打包
      # 舉例
      docker save -o docker-db-1.tar postgres:15-alpine
      
      1. 9個(gè)壓縮包和源碼文件遷移到內(nèi)網(wǎng)機(jī)器,需確保docker和docker compose均已安裝
      # 舉例
      docker load -i docker-db-1.tar
      
      1. 執(zhí)行docker images查看鏡像,若名稱有變化,則需要在docker/docker-compose.yaml中修改
      2. 在源碼docker文件夾下執(zhí)行docker compose up -d啟動(dòng)服務(wù)
      • 源碼部署

      源碼部署可能會(huì)出現(xiàn)跨域問題

      • docker部署,如何修改前端?

      在源碼部署中修改前端代碼,npm run build編譯后,生成.next文件,將其打包更新到docker-web-1容器中,重啟容器即可

      docker cp /path/on/host my_container:/path/in/container
      docker restart docker-web-1
      
      • 源碼部署時(shí),前端代碼編譯時(shí)可能會(huì)出錯(cuò),需要重新下載依賴
      rm -rf node_modules
      rm -f package-lock.json
      npm cache clean --force
      npm install
      

      API調(diào)用工作流

      字符串輸出

      【開始】輸入中字段類型為文本段落時(shí):

      image-20250412154304993

      '''
      python
      '''
      
      import requests
      import json
      
      API_KEY = "******"
      text_input = '''
      A: 嗨,親愛的!今天過得怎么樣?
      B: 嗨,親愛的!今天過得還不錯(cuò),謝謝關(guān)心。你今天工作忙嗎?
      '''
      
      # 確保變量名與 workflow 中定義的變量一致
      data = {
          "inputs": {
              "input": text_input  # 假設(shè) workflow 中定義的變量名為 "input"
          },
          "response_mode": "blocking",	# 這里是塊模式輸出
          "user": "abc-123"
      }
      
      url = "https://api.dify.ai/v1/workflows/run"
      headers = {
          "Authorization": f"Bearer {API_KEY}",
          "Content-Type": "application/json"
      }
      
      response = requests.post(url, headers=headers, json=data)
      
      if response.status_code == 200:
          print("workflow 執(zhí)行成功")
          print("響應(yīng)內(nèi)容:", response.json()['data']['outputs']['output'])
      else:
          print(f"workflow 執(zhí)行失敗,狀態(tài)碼: {response.status_code}")
          print("錯(cuò)誤信息:", response.text)
      

      文件上傳

      【開始】輸入中字段類型為單文件時(shí):

      image-20250412154404970

      '''
      python
      '''
      import requests,json
      
      class DifyAPI:
          def __init__(self, api_key):
              self.api_key = api_key
              self.upload_url = "https://api.dify.ai/v1/files/upload"
              self.workflow_url = "https://api.dify.ai/v1/workflows/run"
      
          def upload_file(self, local_file_path, user):
              """
              上傳文件
              """
              # 替換為你的實(shí)際文件類型
              file_type = 'application/txt'  # 可以根據(jù)實(shí)際情況修改為 jpeg、jpg、webp、gif 等
      
              # 設(shè)置請(qǐng)求頭
              headers = {
                  'Authorization': f'Bearer {self.api_key}'
              }
      
              # 打開本地文件
              with open(local_file_path, 'rb') as file:
                  # 構(gòu)建表單數(shù)據(jù)
                  files = {
                      'file': (local_file_path, file, file_type)
                  }
                  data = {
                      'user': user
                  }
      
                  # 發(fā)送 POST 請(qǐng)求
                  response = requests.post(self.upload_url, headers=headers, files=files, data=data)
      
              # 檢查響應(yīng)狀態(tài)碼
              if response.status_code == 201:
                  print("文件上傳成功")
                  print(json.dumps(response.json(),indent=4))
                  file_id = response.json()['id']
                  return file_id
              else:
                  print(f"文件上傳失敗,狀態(tài)碼: {response.status_code}")
                  print(response.text)
                  return None
      
          def run_workflow(self, file_id, user, response_mode="blocking"):
              """
              運(yùn)行工作流
              """
              # 認(rèn)證
              headers = {
                  "Authorization": f"Bearer {self.api_key}",
                  "Content-Type": "application/json"
              }
      
              # 構(gòu)建請(qǐng)求數(shù)據(jù)
              data = {
                  "inputs": {
                      "file": {
                          "transfer_method": "local_file",  # 本地還是網(wǎng)絡(luò)
                          "upload_file_id": file_id,  # 文件ID
                          "type": "document"  # 類型
                      }
                  },
                  "response_mode": response_mode,
                  "user": user
              }
      
              try:
                  print("\n運(yùn)行工作流...")
                  response = requests.post(self.workflow_url, headers=headers, json=data)
                  if response.status_code == 200:
                      print("工作流執(zhí)行成功")
                      return response.json()
                  else:
                      print(f"工作流執(zhí)行失敗,狀態(tài)碼: {response.status_code}")
                      return {"status": "error", "message": f"Failed to execute workflow, status code: {response.status_code}"}
              except Exception as e:
                  print(f"發(fā)生錯(cuò)誤: {str(e)}")
                  return {"status": "error", "message": str(e)}
      
      # 使用示例
      if __name__ == "__main__":
          api_key = "*******"
          file_path = "1.txt"	# 這里上傳的是text文件
          user = "difyuser"
      
          dify_api = DifyAPI(api_key)
      
          # 上傳文件
          file_id = dify_api.upload_file(file_path, user)
          if file_id:
              # 文件上傳成功,繼續(xù)運(yùn)行工作流
              result = dify_api.run_workflow(file_id, user)
              print(json.dumps(result, indent=4, ensure_ascii=False))
              # print(result)
          else:
              print("文件上傳失敗,無法執(zhí)行工作流")
      

      圖片上傳

      image

      import requests
      
      API_KEY = "app-MrNL5pmejGA3BOYqJig2805o"
      # 文件上傳 主要得到上傳后的ID(后面可以復(fù)用
      def upload_file(local_file_path,user):
          """
          上傳文件
          """
          # 替換為你的實(shí)際文件類型
          file_type =  'image/png'# 可以根據(jù)實(shí)際情況修改為 jpeg、jpg、webp、gif 等
      
          # API 端點(diǎn)
          url = 'https://api.dify.ai/v1/files/upload'
      
          # 設(shè)置請(qǐng)求頭
          headers = {
              'Authorization': f'Bearer {API_KEY}'
          }
      
          # 打開本地文件
          with open(local_file_path, 'rb') as file:
              # 構(gòu)建表單數(shù)據(jù)
              files = {
                  'file': (local_file_path, file, file_type)
              }
              data = {
                  'user': user
              }
      
              # 發(fā)送 POST 請(qǐng)求
              response = requests.post(url, headers=headers, files=files, data=data)
      
          # 檢查響應(yīng)狀態(tài)碼
          if response.status_code == 201:
              print("文件上傳成功")
              print(response.json())
              id = response.json()['id']
              return id
          else:
              print(f"文件上傳失敗,狀態(tài)碼: {response.status_code}")
              print(response.text)
      
      
      
      # 把上傳的文件ID作為參數(shù)
      def run_workflow(file_id, user, response_mode="blocking"):
          # API地址
          workflow_url = "https://api.dify.ai/v1/workflows/run"
          # 認(rèn)證
          headers = {
              "Authorization": f"Bearer {API_KEY}",
              "Content-Type": "application/json"
          }
      
          # 第一個(gè)調(diào)用的demo里面有提到 參數(shù)再inputs里面
          # type很重要
          # 這里面其實(shí)也可以是網(wǎng)絡(luò)圖片transfer_method:remote_url
          data = {
              "inputs": {
                  "input": {
                      "transfer_method": "local_file",  # 本地還是網(wǎng)絡(luò)
                      "upload_file_id": file_id,  # 文件ID
                      "type": "image"  # 類型
                  }
              },
              "response_mode": response_mode,
              "user": user
          }
      
          try:
              print("運(yùn)行工作流...")
              response = requests.post(workflow_url, headers=headers, json=data)
              if response.status_code == 200:
                  print("工作流執(zhí)行成功")
                  return response.json()['data']['outputs']['files']
              else:
                  print(f"工作流執(zhí)行失敗,狀態(tài)碼: {response.status_code}")
                  return {"status": "error", "message": f"Failed to execute workflow, status code: {response.status_code}"}
          except Exception as e:
              print(f"發(fā)生錯(cuò)誤: {str(e)}")
              return {"status": "error", "message": str(e)}
      
      
      # 使用示例
      file_path = "test.png"
      user = "difyuser"
      
      # 上傳文件
      file_id = upload_file(file_path, user)
      if file_id:
          # 文件上傳成功,繼續(xù)運(yùn)行工作流
          result = run_workflow(file_id, user)
          print(result)
      else:
          print("文件上傳失敗,無法執(zhí)行工作流")
      

      image

      image

      參考學(xué)習(xí)

      posted @ 2025-04-12 15:50  PamShao  閱讀(402)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产大陆av一区二区三区| 中文字幕国产日韩精品| 国产精品区一二三四久久| 国产欧美日韩亚洲一区二区三区| 湖北省| 人人妻人人妻人人片色av| 国产精品久久国产精麻豆99网站 | 在线免费成人亚洲av| 好紧好爽午夜视频| 日韩免费美熟女中文av| 亚洲av成人精品免费看| 日韩乱码人妻无码中文字幕视频| 亚洲欧美日韩国产精品一区二区| 不卡乱辈伦在线看中文字幕| 亚洲国产精品日韩AV专区| 欧美成人黄在线观看| 久久精品国产熟女亚洲av| 亚洲一区二区三区在线| 女同另类激情在线三区| 亚洲国内精品一区二区| 色综合视频一区二区三区| 四虎库影成人在线播放| 精品人妻av综合一区二区| 国产精品香港三级国产av| 一区二区三区在线 | 欧洲| 小污女小欲女导航| 国产精品99久久久久久董美香 | 无码专区视频精品老司机| 亚洲成色精品一二三区| 亚洲爆乳精品无码一区二区| 久久97超碰色中文字幕蜜芽| 亚洲国产欧美一区二区好看电影| 天堂中文最新版在线官网在线| 国产精一区二区黑人巨大| 五月丁香啪啪| 国产婷婷综合在线视频| 欧美男男作爱videos可播放| 国内不卡不区二区三区| 国产精品日韩av在线播放| 国产免费性感美女被插视频| 日本高清中文字幕免费一区二区|