2
1

ローカルでfirecrawlを動かしてDifyに接続して遊んだ

Posted at

はじめに

Difyの機能としてfirecrawlというクローラーと接続してナレッジを構築できるようなのでやってみた。クローリングが出来ればデータ収集が楽ちんになりそうなので期待。

firecrawlとは

所謂クローラー。指定したURLからWebサイトをクロールして、LLMが扱いやすいようなクリーンなmarkdown形式、または構造化データに変換してくれる。SaaS版とOSS版がある。今回は両方使ってみた。

構築手順

Dify

前回の記事で作ったものを使用。省略。

SaaS版 firecrawlを使う方法

下記のページにサインアップする

API KeysページからKeyを発行する

Difyのナレッジを作成する際に「ウェブサイトから同期」を選択して発行したアプリキーを入力する。
image.png

Base URLには何も入れなくてOK
これで準備完了。

SaaS版は最大500回までクローリング出来る

firecrawlをセルフホストする方法

ここを参考にセットアップした。

OSS版のfirecrawlリポジトリ

リポジトリからクローン

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

ディレクトリに移動して、.envファイルをコピー

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

.envファイルを編集。編集した環境半数は以下の2つ

  • TEST_API_KEY: 任意のAPIキーを設定
    • fc-XXXXXXという形式であれば問題ない
  • USE_DB_AUTHENTICATION: falseに設定
    • データベース認証の有無だが、supabaseをセットアップして使用する必要があるみたいなので今回は不要

.envファイルの編集が終わったらコンテナを起動

docker compose up -d

以下のコマンドで動作確認が出来る。Hello, world!と返ってきたらOK。

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

firecrawlが起動出来たらローカルで起動しているDifyと接続する。

SaaS版と同様にナレッジの「ウェブサイトから同期」を選択して、firecrawlのセットアップをする。
そして先ほど.envに書き込んだAPIキーを入力。
Base URLにはhttp://host.docker.internal:3002を入力。
image.png

http://host.docker.internalを指定すると、ホストマシン上で動作しているサービスにアクセスすることが出来る。Docker desktopの機能らしい。

ナレッジの構築

firecrawlが接続出来たら実際にクローリングしてナレッジを構築してみる。
今回はhttps://www.firecrawl.dev/をクローリングして、サポートbotに使えそうなナレッジを作る。

image.png

OPTIONSで、サブページのクロールや、最大クロールページ数制限、クロールするページの階層の深さなどが設定できる。SaaS版を使用している場合は特にページ数制限をしておいた方が良いが、今回はOSS版で回しているので好き放題クロールしてもらう。

するとこんな感じでクロールの結果が表示される。
image.png

後はいつも通り、チャンキングやembeddingの設定をして終わり。

おわりに

思ったより簡単に出来た。とても嬉しい。
これをDifyと合わせてAzure上で動かしたりしたいが、まだ完全にセルフホストが出来る訳ではないような文章がfirecrawlのREADMEに書いてあったので、出来なさそう。今後に期待。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1