
DifyとFireCrawlでRAG on v0.6.13---ベラドンナ様の旅行ガイド(アプリ編)
はじめに
Dify v.0.6.13 がリリースされました
これを書いている本日、2024/7/9 0:43に新バージョンのv.0.6.13がリリースされました。
それについてnoteで早速報告がリリースされてます。
特に次の2つの追加が私的には、興味があります。
以下、引用
地図検索ツール
OpenStreetMapを利用したNominatim検索ツールが追加されました。これにより、地理情報の検索と利用が可能になります。
Firecrawlツール
新しいFirecrawlツールが追加され、ウェブスクレイピングと検索機能が強化されました。このツールにより、ウェブ上の情報収集と分析が効率化されます。
なお、Difyオリジナルのリリースノートはこちらです。
今回の内容
今回は、下記の続きです。
前回(上記)では、Firecrawlでウェブクローリングデータを取得し、それをDifyのナレッジのRAGで、オリジナルの知識を作成しました。
今回は、知識取得(検索)nodeにこのオリジナルの知識を組み込みchatflowでフローを組合立ててAIアプリ(チャットボット)の例、"ベラドンナ様の旅行ガイド" 、を作ります。
また、同じ質問、かつ、同じLLMのプロンプトで、chatGPT4oとGemini1.5Proの出力結果を示します。
結構、違ってました。ちなみに、それ以外は、あんまり面白くないのでだしません。
やはり今話題の、Claude1.5sonnetも比較したいところです。各々のAPIを用いることで、ChatHubのようなLLMの比較が簡単にできる、というのも、Difyのメリットかと思います。当面、進歩が次々とありそうなので、案外これは便利かもしれません。
まずは、フローと各nodeについての説明をします。
全体フローと各node
全体フロー
今回のお試しフロー
テストフローとして、下記を用意しました。

以下で、これらの各nodeについてのメモを示します。
開始node
今回は、独自の入力設定をしていませんので、用いる出力変数は、赤で囲んだ、sys.queryです。これを後のnodeで使います。

知識取得(検索)node
今回のAIアプリのキモの部分です。
前回作成したオリジナルの知識を引用します。

まず変数と引用のデータベース(DB)の設定です。
上から順番に、入力する変数として 開始/sys.query を設定します。
また、出力変数は、後で、黄緑で囲んだ枠の変数を使います。
肝心の知識ですが、これは、右上の+マークをクリックして、前回作成した "KKR情報2024/7/5" を選択します。
さらに、この画面では、マルチパーパスリトリーバルの右の逆三角▼をクリックします。


ここで、マルチパスリトリーバルを選択して、Rerank(再ランク)モデルを選びます。ここでは、Cohereのmultilingul-v3.0 を選択しています。
実は、ここでは、知識が一つしかないので、N-to-1リトリーバルを最初選びました。デバッグすると、エラーが盛大にでて、ストップしてしまいました。
そこで、マルチパスのこちらを選ぶと、すんなりと通りました。
ここは、従ってよくわかっていません。今のところ、結果オーライに見えます。また、テストの回答でも、この知識が反映された結果を得られています。
LLM node
魔女ベラドンナ様の旅行ガイド、というキャラを初め、本アプリの機能は、ここのプロンプトで決まります。
逆にいえば、プロンプト次第で、汎用性がある、とも言えます。
今回は、このように設定しています。
コンテキストの設定、及び、プロンプト中でのコンテキストの引用が大事です。


なお、ここでは、Gemini1.5Proの例をしめしていますが、各パラメータの設定は次のようにしています。

ベラドンナ様ということで、Temperatureが0.8と高く、いわゆるクリエイティブな設定としています。これは、後のテスト結果で示す際の他のLLMでも同様です。
真面目な設定にするのであれば、ここは、低めに設定します。
回答node
LLMの出力結果の変数を回答としています。

デバッグの結果
デバッグとして、質問を入力したところ、上記の各設定で、一応回答が出力されました。
LLMとして、ChatGPT4oのケースと、Gemini1.5Proのケース等を比較してみました。特に、この2つが結構違っていたので、メモしておきます。
設定した質問
2024年9月後半から11月にかけての旅行についての問い合わせです。
メンバーは、夫婦2人、で期間は、3泊4日。場所は、出発地が、東京駅で、目的地は、愛知県周辺を希望します。特に名古屋市の観光に興味があります。2日は名古屋の観光をしたいと思います。ユニークな場所など、おすすめの宿も教えて下さい。
以上、おすすめの旅行プランを提示して下さい。また、費用の概算を示してください。
ChatGPT4oの回答
ご夫婦2人の3泊4日、東京駅から愛知県周辺の旅行プランについて、ご相談いただきありがとうございます。特に名古屋市の観光をご希望とのことですね。ベラドンナ様にお任せください。以下に、素敵な旅行プランを提案いたします。
1日目:東京駅から名古屋へ
午前
東京駅から新幹線で名古屋駅へ移動。所要時間は約1時間40分。
午後
名古屋到着後、まずはホテルにチェックイン。
宿泊先としては、KKRホテル名古屋を強くおすすめします。広々とした部屋と落ち着いた雰囲気が魅力です。KKRホテル名古屋オススメプランはこちら
夕方
ホテルで少し休憩した後、名古屋駅周辺を散策。
名古屋名物のひつまぶしや味噌カツを楽しんでください。
2日目:名古屋市内観光
午前
名古屋城:歴史と美しい庭園を楽しむことができます。
徳川美術館:日本の歴史と文化を深く学べる場所です。
午後
大須商店街:地元の人々と観光客が集まるエリアで、レトロな雰囲気が漂います。
名古屋市科学館:巨大なプラネタリウムがあり、大人も子供も楽しめる施設です。
3日目:名古屋市内観光と周辺地域
午前
熱田神宮:日本の歴史と伝統を感じることができる神社です。
午後
リニア・鉄道館:鉄道ファンなら必見の場所です。新幹線やリニアモーターカーの展示があります。
夕方には近くの三河湾エリアまで足を延ばし、美しい夕日を楽しんでください。
4日目:名古屋から東京へ
午前
ホテルで朝食後、チェックアウト。
最後に、名古屋港水族館を訪れてみてはいかがでしょうか。イルカショーが見どころです。
午後
名古屋駅から新幹線で東京へ帰路。
費用の概算
新幹線往復(東京 - 名古屋):約26,000円(お一人様あたり)
宿泊費(KKRホテル名古屋 3泊):約30,000円~50,000円(1泊2名1室)
食事・観光費:約30,000円~50,000円(お二人分)
合計:約112,000円~152,000円
このプランでは、名古屋市内の主要な観光スポットをカバーしつつ、ゆったりとした時間を過ごすことができます。さらにKKRホテル名古屋は、コストパフォーマンスも高く、元国家公務員のご夫婦には最適な選択肢です。心に残る旅になること間違いなしですわ。
それでは、素晴らしい旅をお楽しみくださいませ。何か他にご質問があれば、お気軽にどうぞ。
Gemini1.5Proの回答
フフフ… ようこそ、迷える子羊たちよ。黒魔女ベラドンナ様の館へようこそ。 愛知、いいですわね。あの織田信長が駆け巡った地。 魔力みなぎる場所ですわ。
3泊4日で名古屋を満喫する旅… いいでしょう。 あなたたちのために、とっておきのプランを授けましょう。
1日目: 尾張名古屋は城で持つ!
東京駅から新幹線で名古屋へ。 あなたたちには、少し速めに移動してもらいましょう。 「ひかり」ではなく「のぞみ」指定席で、快適な旅の始まりですわ。
名古屋駅に着いたら、まずはホテルへ直行。 荷物を預けて身軽になったら、地下鉄で名古屋城へ。
名古屋城では、天守閣からの絶景を堪能すること。 フフフ… あれだけの城を築いた信長の野望を、あなたたちも少しは理解できるかもしれませんわ。
夜は、名古屋名物ひつまぶしを堪能できるお店「あつた蓬莱軒」はどうかしら? 並ぶ価値ありですよ。
2日目: 熱田神宮で運気を高め、名古屋の奥深さを知る
今日は、熱田神宮へお参りです。 強烈なパワーを持つ草薙神剣が祀られている場所です。 そこで、あなたたちの未来を占ってみましょうか… フフフ…
午後は、少し趣向を変えて、名古屋市美術館へ。 国内屈指の収蔵品を誇る美術館で、心静かに芸術鑑賞。 芸術の秋ですものね。
夕食は、名古屋の繁華街、栄で名古屋コーチンの手羽先を。 おすすめは「世界の山ちゃん」です。
3日目: 常滑で旅の余韻に浸る
最終日は、少し足を延ばして常滑へ。 焼き物の街として知られ、趣のある街並みが広がっています。
常滑焼の器で、お茶をいただくのも良いでしょう。 旅の思い出に、お気に入りの器を見つけるのもいいかもしれませんわ。
常滑からは、中部国際空港(セントレア)へ。 夕方発の飛行機で東京へとお帰りなさい。
宿泊は… もちろんKKRホテル名古屋がおすすめですよ。
KKRホテル名古屋は、名古屋駅から地下鉄でわずか1駅とアクセス抜群。 それでいて、閑静な場所に位置しており、落ち着いた滞在が楽しめます。
気になるお値段ですが…
新幹線(東京-名古屋): 往復で約30,000円/人
KKRホテル名古屋: 旅行プラン利用で、1泊2食付きで約10,000円/人〜 (時期によって変動します)
食費: 3日間で約15,000円/人
その他観光費用: 約5,000円/人
合計で、お一人様約90,000円といったところでしょうか。 もちろん、これはあくまでも目安です。 あなたたちの欲望次第で、費用はいくらでも膨れ上がりますわ… フフフ…
このプランは、あくまでも出発点。 あなたたちの好みや予算に合わせて、いくらでもアレンジできます。 さあ、勇気を出して、旅の扉を開くのです! そして、素晴らしい思い出をたくさん作ってください。 フフフ…
結果の比較
出だしから、Gemini1.5Proの方が、キャラ設定の意図を汲んでくれており、圧勝、という印象です。提案内容も、魔女ならではの観点も垣間見え、なかなか魅力的に感じます。
KKRの情報もちゃんと反映されているようです。まるで、よいしょ記事ですが。
ただ、最後に、飛行機で帰るのを提案してますが、交通費には反映されていないようにみえます。
情報源としてグーグルなどの一般情報もアクセスできるようにしたほうがいいのかもしれません。
このような回答を得ると、追加質問ができるようにする、とか、条件を変更する、とか、このチャットボットにいくつか改良をしてみようか、という気になります。
一方、ChatGPT4oは、正直言って少しがっかりです。こちらもLLM設定はクリエイティブに設定しているのですが、魔女らしさの片鱗もありません。
クリエイティブって何?という印象です。
ChatGPT4oは、色々と評判がいいという印象ですので、こちらの設定が悪いということかと感じてしまいます。
逆にどのようにプロンプトの記載や諸設定値などの設定を行えば、もっとらしくなるのか、工夫が必要なのかもしれません。プロンプトエンジニアリングレベル等、本質的な課題を投げかけられた感じもします。
なお、この2つの結果をみて、最近話題のClaude-3.5-sonnetならどのような結果になるのか、興味がでてきました。
まとめ
Difyのv.0.6.11で新たに導入されたFirecrawlとの連携機能をもちいて、ウェブスクレイピングを行い、その結果をDifyのRAG技術で知識化を試行してみました。
デバッグの結果をみると、一応、オリジナルの"知識"を引用した回答が得られたようです。
今回の諸設定で、DifyのChatFlowによるウェブスクレイピングやRAGが設定、検証できたように思われます。ただし、一部不明点もあります。
Difyは、既に7/9/2024で、v.0.6.13がリリースされています。Firecrawlとの連携も強化されたようですので、今後、チェックしてみたいと思います。