MENU

DifyでPPTをPDF変換!No.1-Any2Pdf連携

当ページのリンクには広告が含まれています。

「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」などをインストールします。

通常、開発プロジェクトのフォルダには requirements.txt というファイルがあり、そこに必要なライブラリ一覧が書かれています。もしそのファイルがあれば、以下のコマンド一発で全てインストールできます。

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が利用可能になります。

WARNING: This is a development server. Do not use it in a production deployment.
※このWARNING は、Flaskというフレームワークを使う際に必ず表示される**「定型文」ですので、今回の用途では無視して全く問題ありません。

起動したがタイムアウトする場合

これは、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}}を設定します。
HTTPリクエスト設定

3. 回答ノードの追加

APIから返ってきたPDFファイルをユーザーに表示します。

回答ノードで、HTTPリクエストノードの出力(body)を選択します。

動作テスト

実際にPPTファイルをアップロードして、PDFに変換されるかテストしてみましょう。

  • 正常に動作すれば、アップロードしたPPTがPDFに変換されて返却されます

image.png

まとめ:ファイル変換の自動化を実現

この仕組みを使えば、Dify上で「PPTをアップロードするだけでPDFが返ってくる」アプリが完成します。

請求書発行や資料配布のフローに組み込むことで、手作業での変換・保存の手間を大幅に削減できるでしょう。

【推奨】業務システム化に有効なアイテム

生成AIを学ぶ

システム化のパートナー

VPSサーバの選定


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次