クラウドのDifyでローカルのFirecrawlを使用する

概要

Difyは、AIアプリケーションを作成するためのノーコードツールです。

Firecrawlは、Webサイトをクロールしてデータを抽出するツールです。

そしてDifyは、Firecrawlを使用してWebサイトのデータを取得し、RAGを構築することができます。今回はここの設定についての解説です。

Dify

DifyもFirecrawlも、OSS版とSaaS版が提供されています。

その中でも今回は、SaaS版のDifyOSS版のFirecrawlを使用する場合の設定の仕方を記載します。

設定方法

Firecrawlの設定

こちらのFirecrawlのリポジトリをクローンして使用します。

https://github.com/mendableai/firecrawl

git clone https://github.com/mendableai/firecrawl.git

ディレクトリを移動し、.env.exampleをコピーして.envを作成します。

cd firecrawl
cp ./apps/api/.env.example ./.env

.envファイルは以下の2行のみを編集します。

USE_DB_AUTHENTICATION=false
TEST_API_KEY=fc-test
  • DBの認証は不要なので、USE_DB_AUTHENTICATIONfalseにします。
  • APIキーはfc-から始まる文字であれば何でも可です。

次に、Dockerコンテナの作成を行います。

Docker Desktopを使用している場合は、アプリの起動を忘れずに行ってください。

docker compose up -d

アプリが動いているかを確認します。

Hello, world!と表示されれば、Firecrawlの設定は完了です。

curl -X GET http://localhost:3002/test

Difyの設定

config

データソースの設定からFirecrawlの設定を行います。

APIキーには先ほどのfc-testと入力します。

Base URLには、もしDifyもローカルで動かしているのならhttp://host.docker.internal:3002と設定すれば良いですが、SaaS版の場合は追加で設定が必要なので詳しくみていきましょう。

Base URLの設定

ローカルのFirecrawlを、Cloudflare Tunnelを使用して一時的に外部からHTTPSでアクセスできるURLにします。

まずはCloudflareをインストールします。

# Macの場合
brew install cloudflared

一時トンネルを張ります。

cloudflared tunnel --url http://localhost:3002

すると、https://<ランダム>.trycloudflare.comというURLが作成されます。

このURLをDifyのBase URLに設定すればOKです。

config

これで接続することができます!

蛇足

もし常時同じURLを使用したい場合は、独自ドメインを使用して永続トンネルを張ることで実現できると思います。