かなりニッチなニーズだと思いますが、Dify のワークフローの中で、例えば、ログインしているユーザー別にナレッジの内容を変えたい!というようなニーズがあった場合、現在のDifyでは、ユーザーの数だけ分岐を作る必要があり、現実的ではありません。
そのうち、標準機能で、引数でナレッジを切り替えられるようになる予感はしますが、その間の付け焼き刃として無理やり
切り替えることができるツールを作ったので公開します。
解決する問題
現状、Knowledge Retrieval は、ワークフローを作るときに固定で指定する必要があります。
問題を解決するために作ったツール (Search-Knowledge-By-Id)
ナレッジを指定して検索できるようになります。
DATASET_ID とは、作ったナレッジをブラウザで開いたときにアドレスバーに表示される
https://dify.microai.jp/datasets/{{dataset_id}}/documents
の {{dataset_id}}
の部分です。
Search-Knowledge-By-Id の使ったチャットボット例
引数の説明
最初に書いたように 無理やり
です。
Difyの管理用機能を使用するため、管理者のアカウント情報が必要です。
- DIFY_APIS_USER_NAME : 管理者のログインID
- DIFY_APIS_USER_PASSWORD : 管理者のパスワード
- DIFY_HOST : ご自身のDifyのURL 例: https://dify.xxxx.xx
- DATASET_ID : ナレッジのIDです。ブラウザでナレッジを開いたときアドレスバーに表示されています。例: ec61be38-51c2-4040-a064-7c31ec151ddd
- SEARCH_QUERY : 検索する内容(ユーザーのチャットの内容そのまま)
- TOP_K : 検索結果を何件返すか?の数値
ツールのダウンロード
インポートしてお使いください。
ご利用は、自己責任でお願いいたします🙇♂