1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DifyのPerplexity Searchを使う

Last updated at Posted at 2024-09-04

以下の続編です。

Dify v0.7.3で、Perplexity Searchという新たなツールが追加されました。

前の記事で説明した「モデルプロバイダー」としての使い方とは異なり、Perplexity Searchは「ツール」として使います。
そのため、Perplexityの応答を処理するために、さらにもう1つのLLMが必要になるように思えます。
有料のGPT-4o-mini APIなどとの組み合わせなどでも良いですが、ここでは、無課金でローカルLLMとの組み合わせで進めます。

大まかな手順

APIキーの登録

まずは、ツールから、PerplexityのAPIキーを登録していきます。

「ツール」を押します。
スクリーンショット 2024-09-04 16.37.00.png

「Perplexity」を押します。
スクリーンショット 2024-09-04 16.37.42.png

「認証する」を押します。
スクリーンショット 2024-09-04 16.38.43.png

APIキーを入力してから、「保存」を押します。
スクリーンショット 2024-09-04 16.39.29.png

認証済みとなったら完了です。
スクリーンショット 2024-09-04 16.40.13.png

作り方

Perplexity Searchツールは、以下で使用できる様です。

  • チャットフロー
  • エージェント
  • ワークフロー

上記をどのように使い分けるかは調べていません。
が、チャットフローとエージェントは、(私の作り方が悪いのか)上手くいかないケースがありました。
なので、ここではワークフローだけで説明します。

ワークフローで使う

スタジオに行きます。
スクリーンショット 2024-09-04 16.41.35.png

「最初から作成」を押します。
スクリーンショット 2024-09-04 16.42.09.png

「ワークフロー」を選択し、適当な名前を付けて、「作成する」を押します。
スクリーンショット 2024-09-04 16.50.28.png

開始ブロックの次のブロックに、ツールから、Perplexity Searchを選びます。
スクリーンショット 2024-09-04 16.53.14.png

Perplexity Searchのブロックが追加されますが、まだ入力変数がありません。
なので、まずは「開始ブロック」を押します。
スクリーンショット 2024-09-04 16.56.01.png

入力フィールドにある「+」を押します。
スクリーンショット 2024-09-04 16.58.07.png

入力フィールドを追加が表示されます。
「段落」を押して、変数名に「query」、ラベル名に「Perplexityへの質問」、最大長は好きな長さにして、保存を押します。
スクリーンショット 2024-09-04 17.02.32.png

Perplexity Searchのブロックを再度押して、「/」を入力します。
開始ブロックの「query」が押せる状態になってますので、押します。
スクリーンショット 2024-09-04 17.03.10.png

次にモデルを選びます。大きなモデルほど精度は良くなりますが、応答速度が遅く、APIコストも上昇します。
ひとまず中間のLargeを選びました。
スクリーンショット 2024-09-04 17.05.15.png

一番下にある「次のブロックを選択」を押します。
スクリーンショット 2024-09-04 17.07.21.png

「LLM」を押します。
スクリーンショット 2024-09-04 17.08.43.png

Perplexity Searchの出力を処理するLLMを選びます。
ここではローカルで動かしているOllamaで動作するLLMにしました。
スクリーンショット 2024-09-04 20.10.17.png

ここで選んだAya 23というLLMは、Cohereの研究機関が主導して開発しているマルチリンガル(多言語対応)のオープンモデルです。

Aya 23は、日本語を含む23もの言語に対応しています:
アラビア語、中国語(簡体字および繁体字)、チェコ語、オランダ語、英語、フランス語、ドイツ語、ギリシャ語、ヘブライ語、ヒンディー語、インドネシア語、イタリア語、日本語、韓国語、ペルシャ語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、スペイン語、トルコ語、ウクライナ語、ベトナム語
Aya 23は、Ollamaで簡単に導入できます。

話を戻して、ローカルLLMのシステムプロンプトを入力します。
Perplexityへの質問と回答をローカルLLMに与えて、よしなに回答を作ってもらいます。
スクリーンショット 2024-09-04 17.30.59.png

SYSTEM
与えられ内容にもとづいて日本語の回答を生成する。

### 質問 ###
(ここには開始ブロックの変数queryを入れる)

### 回答 ###
(ここにはPerplexity Searchブロックの変数textを入れる)

「次のブロックを選択」を押します。
スクリーンショット 2024-09-04 17.21.07.png

「終了」ブロックを選びます。
スクリーンショット 2024-09-04 17.22.06.png

出力変数の「+」を押します。
スクリーンショット 2024-09-05 5.49.20.png

LLMブロックの変数textを指定します。
スクリーンショット 2024-09-05 5.48.53.png

以上でワークフローの作成は完了です。

動作確認

全体のフローは以下のような感じになります。
スクリーンショット 2024-09-04 17.55.07.png

上にある再生ボタンを押すと、Test Runが開きます。
スクリーンショット 2024-09-04 17.56.17.png

試しに、現在開催中のパリ・パラリンピックの状況を聞いてみます。
ちなみに今日は2024年9月4日です。
スクリーンショット 2024-09-04 17.38.13.png

それらしい回答が戻りました。
スクリーンショット 2024-09-04 17.38.57.png

リリース

うまく動いたら、リリースしてみましょう。
右上の「公開する」を押して、「アプリを実行」を押します。
スクリーンショット 2024-09-04 17.50.41.png

別の質問を入力して実行します。
スクリーンショット 2024-09-04 17.49.07.png

うまく動いたら成功です。
普段新聞などで見かける首相動静とは一味違い、自然な文章になっています。
LLMを介したせいですね。

まとめ

最近は毎週のようにDifyはバージョンアップされており、機能の幅がどんどん広がっています。

無課金のローカルLLMと、(Proの無料期間が終わるまで)Perplexity APIの組み合わせで、何か面白いものが作れそうです。

参考資料

公式の使い方は以下になります。

1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?