- 公開日:
自分専用DifyにFirecrawlもセルフホスト
- Authors
- Name
- 代表取締役 宮永邦彦
- @miyanaga
画像軽量化とWebフロントエンドのスピード改善の専門家です。Web系のIT技術大好き。
このサイトではスピード改善のリアルや、日々の技術的な気づきを共有します。
この記事はVPSでお安く自分専用のDifyを持つ方法の続きだ。
Difyは、WebクローラーであるJina ReaderまたはFirecrawlと連携することで簡単にRAGを実現できる。
Firecrawlもオープンソースでセルフホストできる。そこでDifyをインストールしたVPSにFirecrawlもインストールし、こちらもお安く実現してみた。
その手順を紹介する。
Firecrawlのセットアップ
Firecrawlをgit clone
Firecrawlのオープンソースプロジェクトをgit cloneする。
バージョン v1.0.0
執筆時点(2024年10月4日)でmain
ブランチをCloneしたところ、正常に動作しなかった。そこでタグv1.0.0
を使うことにする。
安定版については都度、確認されたい。
git clone https://github.com/mendableai/firecrawl.git -b v1.0.0
cd firecrawl
Firecrawlの.envを用意
環境変数ファイルの雛形apps/api/.env.example
を元に.env
ファイルを用意する。
cp apps/api/.env.example .env
.env
を編集し、次の2点を変更する。
USE_DB_AUTHENTICATION=false
TEST_API_KEY=fc-my-firecrawl # 任意のキー(先頭のfc-は必須)
USE_DB_AUTHENTICATION
は、詳しくわかっていないがユーザー管理をするSupabaseと連携するためのようだ。少なくとも今回は自分専用なので利用しない。
TEST_API_KEY
は後ほどDifyで指定するAPIキーである。複雑なものを指定してもよいが、fc-
という接頭辞は必須らしい。
Firecrawlを起動
Docker ComposeでFirecrawlを起動する。
docker compose up -d --build
筆者の環境では初回のビルドに5分ほどかかった。気長に待とう。
起動が完了し、少し待ってから次のようにテストレスポンスが得られたら起動は成功である。
curl -X GET http://localhost:3002/test
# 出力
Hello, world!
Firecrawlを登録する
DifyとFirecrawlのネットワーク接続
DifyとFirecrawlは異なるDocker Composeプロジェクトで動作しているので、このままではスムーズに接続できない。
次のコマンドで両者をネットワーク接続し、Difyのapi
コンテナとworker
コンテナからFirecrawlのapi
コンテナをfirecrawl
として参照可能にする。
docker network connect --link firecrawl-api-1:firecrawl firecrawl_backend docker-api-1
docker network connect --link firecrawl-api-1:firecrawl firecrawl_backend docker-worker-1
接続元について
Difyは多くのコンテナから構成されている。筆者の予想ではapi
とworker
からFirecrawlを参照できればよいと踏んで動作もしたが、もしかしたら過不足があるかもしれない。
Firecrawlの設定
DifyのWeb画面を開き、右上のメニューから設定
- 設定メニューからデータソース
- Firecrawlについての設定
ボタンを押す。
API Key
とBase URL
を指定し、保存
ボタンを押す。
API Key
は先ほど.env
ファイルに指定したfc-
から始まるキーだ。
Base URL
は、http://firecrawl:3002
とする。
Firecrawlがアクティブ
になれば連携完了である。
ウェブサイトをクロールしてベクトルデータベースにコンテンツを格納し、RAGを実現できるようになった。