以下の続編です。
Dify v0.7.3で、Perplexity Searchという新たなツールが追加されました。
前の記事で説明した「モデルプロバイダー」としての使い方とは異なり、Perplexity Searchは「ツール」として使います。
そのため、Perplexityの応答を処理するために、さらにもう1つのLLMが必要になるように思えます。
有料のGPT-4o-mini APIなどとの組み合わせなどでも良いですが、ここでは、無課金でローカルLLMとの組み合わせで進めます。
大まかな手順
APIキーの登録
まずは、ツールから、PerplexityのAPIキーを登録していきます。
作り方
Perplexity Searchツールは、以下で使用できる様です。
- チャットフロー
- エージェント
- ワークフロー
上記をどのように使い分けるかは調べていません。
が、チャットフローとエージェントは、(私の作り方が悪いのか)上手くいかないケースがありました。
なので、ここではワークフローだけで説明します。
ワークフローで使う
「ワークフロー」を選択し、適当な名前を付けて、「作成する」を押します。
開始ブロックの次のブロックに、ツールから、Perplexity Searchを選びます。
Perplexity Searchのブロックが追加されますが、まだ入力変数がありません。
なので、まずは「開始ブロック」を押します。
入力フィールドを追加が表示されます。
「段落」を押して、変数名に「query」、ラベル名に「Perplexityへの質問」、最大長は好きな長さにして、保存を押します。
Perplexity Searchのブロックを再度押して、「/」を入力します。
開始ブロックの「query」が押せる状態になってますので、押します。
次にモデルを選びます。大きなモデルほど精度は良くなりますが、応答速度が遅く、APIコストも上昇します。
ひとまず中間のLargeを選びました。
Perplexity Searchの出力を処理するLLMを選びます。
ここではローカルで動かしているOllamaで動作するLLMにしました。
ここで選んだAya 23というLLMは、Cohereの研究機関が主導して開発しているマルチリンガル(多言語対応)のオープンモデルです。
Aya 23は、日本語を含む23もの言語に対応しています:
アラビア語、中国語(簡体字および繁体字)、チェコ語、オランダ語、英語、フランス語、ドイツ語、ギリシャ語、ヘブライ語、ヒンディー語、インドネシア語、イタリア語、日本語、韓国語、ペルシャ語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、スペイン語、トルコ語、ウクライナ語、ベトナム語
Aya 23は、Ollamaで簡単に導入できます。
話を戻して、ローカルLLMのシステムプロンプトを入力します。
Perplexityへの質問と回答をローカルLLMに与えて、よしなに回答を作ってもらいます。
与えられ内容にもとづいて日本語の回答を生成する。
### 質問 ###
(ここには開始ブロックの変数queryを入れる)
### 回答 ###
(ここにはPerplexity Searchブロックの変数textを入れる)
以上でワークフローの作成は完了です。
動作確認
試しに、現在開催中のパリ・パラリンピックの状況を聞いてみます。
ちなみに今日は2024年9月4日です。
リリース
うまく動いたら、リリースしてみましょう。
右上の「公開する」を押して、「アプリを実行」を押します。
うまく動いたら成功です。
普段新聞などで見かける首相動静とは一味違い、自然な文章になっています。
LLMを介したせいですね。
まとめ
最近は毎週のようにDifyはバージョンアップされており、機能の幅がどんどん広がっています。
無課金のローカルLLMと、(Proの無料期間が終わるまで)Perplexity APIの組み合わせで、何か面白いものが作れそうです。
参考資料
公式の使い方は以下になります。