「DifyでPowerPoint(PPT)をPDFに自動変換したい」
「契約書や資料のフォーマット変換を自動化したい」
Dify単体ではファイルのフォーマット変換はできませんが、外部のAPIと連携することで実現可能です。
この記事では、GitHubで公開されているツール「No.1-Any2Pdf」を利用して自前の変換APIサーバーを構築し、Difyと連携させる方法を解説します。
STEP 1:変換APIサーバーの構築
まずは、ローカル環境(またはVPSなど)にPDF変換用のサーバーを立ち上げます。
※この作業にはPython環境が必要です。
リポジトリのクローンと準備
ターミナル(コマンドプロンプト)を開き、以下のコマンドを実行してツールをダウンロードします。
git clone https://github.com/engchina/No.1-any2pdf cd No.1-any2pdf
※事前にLibreOfficeなどの依存ソフトウェアのインストールが必要です。詳細はリポジトリのREADMEをご確認ください。
必要なライブラリのインストール
PythonでWebサーバーを動かすためのライブラリ「Flask」などをインストールします。
pip install -r requirements.txt
※ 途中で Do you want to continue? [Y/n] と聞かれたら、y を入力して Enter を押してください。
または
pip install flask
サーバーの起動
以下のコマンドでAPIサーバーを起動します。
python3 run_api_server.py
エラーが出ずに起動すれば、http://localhost:5000(または指定したIP)でAPIが利用可能になります。
起動したがタイムアウトする場合
これは、APIサーバーが外部(Dify)からのアクセスを拒否しているか、ポートが開いていないことが原因です。
以下の3点を確認・設定してください。
① APIサーバーの起動設定を変更する(必須)
PythonのFlaskサーバーは、デフォルトでは localhost (127.0.0.1) からのアクセスしか受け付けません。外部(Dify)からアクセスさせるには、0.0.0.0 で起動する必要があります。
No.1-any2pdf フォルダ内の run_api_server.py を開き、最後の行あたりを以下のように書き換えてください。
変更前:
app.run(port=5000)
# または app.run(host='127.0.0.1', port=5000)
変更後:
# host='0.0.0.0' を追加することで、外部からのアクセスを許可します
app.run(host='0.0.0.0', port=5000)
書き換えたら、一度サーバーを停止(Ctrl+C)し、再度 python run_api_server.py で起動し直してください。
② ファイアウォール(ポート開放)の確認
IPアドレス(163.44…)から推測するとVPS等のサーバーをご利用かと思います。 サーバーの管理画面(AWSならSecurity Group、その他VPSならファイアウォール設定)で、ポート 5000 番へのアクセス(インバウンド)を許可してください。
Ubuntu内部のファイアウォール(ufw)が有効な場合は、以下も実行します。
sudo ufw allow 5000
③ URLの確認
ログに出ているURL http://163.44.113.144:5000/api/convert/office は、ブラウザのアドレスバーに直接入力してアクセスできますか? (GETメソッドではないためエラー画面が出るかもしれませんが、「接続拒否」にならなければサーバーまでは到達しています)
STEP 2:Difyワークフローの作成
Dify側で、ファイルをアップロードしてAPIに投げるフローを作成します。
1. 開始ノードの設定(ファイルアップロード)
「開始」ノードで、ユーザーがPPTファイルをアップロードできるように設定します。
- 入力フィールドを追加:「単一ファイル」を選択
- 変数名:
file - 許可するファイルタイプ:
.ppt,.pptx

2. HTTPリクエストノードの追加
作成したAPIサーバーへファイルを送信する設定を行います。
- URL:
http://(サーバーIP):5000/api/convert/office - メソッド:
POST - Body:「form-data」を選択し、Keyに
file、Typeに「File」、Valueに開始ノードの変数{{file}}を設定します。

3. 回答ノードの追加
APIから返ってきたPDFファイルをユーザーに表示します。
回答ノードで、HTTPリクエストノードの出力(body)を選択します。
動作テスト
実際にPPTファイルをアップロードして、PDFに変換されるかテストしてみましょう。
- 正常に動作すれば、アップロードしたPPTがPDFに変換されて返却されます。

まとめ:ファイル変換の自動化を実現
この仕組みを使えば、Dify上で「PPTをアップロードするだけでPDFが返ってくる」アプリが完成します。
請求書発行や資料配布のフローに組み込むことで、手作業での変換・保存の手間を大幅に削減できるでしょう。
【推奨】業務システム化に有効なアイテム
生成AIを学ぶ



システム化のパートナー



VPSサーバの選定





コメント