Difyのナレッジの仕組みとナレッジAPIでできること
Difyではナレッジと呼ばれる仕組みでRAGを管理します。
そしてこのナレッジをAPIで操作する仕組みが提供されています。公式ドキュメントは以下のとおりです。
APIを使ってナレッジを操作することで、DifyのワークフローやGASなどの外部ツールからナレッジを編集できるため、処理の幅が広がります。
この記事ではDifyのナレッジの仕組みや、ナレッジAPIでできることをまとめました。ナレッジAPIを使ってみたい人は、ぜひ参考にしてみてください。
Difyにおけるナレッジの仕組み
Difyのナレッジベースは、複数のドキュメントを集約し、1つのアプリケーションに統合することで、ユーザーの質問に対して正確な回答を提供する仕組みです。
これにより、外部知識を大言語モデルに提供し、効率的な情報検索が可能になります。
Difyのナレッジベースは、以下の3つの階層で構成されています。
データセット
ドキュメント
セグメント
図にすると以下のようなイメージです。
データセット:情報の大きな箱
データセットは、ナレッジベースの最上位層です。これは、特定のテーマや目的に関連する情報をまとめた大きな箱のようなものです。
例えば、「製品マニュアル」や「顧客サポートFAQ」といったように定義されます。
ドキュメント:情報のまとまり
ドキュメントは、データセットの中に含まれる個々の情報のまとまりです。
例えば、「製品マニュアル」というデータセットの中に、「製品A使用説明書」「製品Bトラブルシューティング」といったドキュメントが含まれます。
セグメント:情報の最小単位
セグメントは、ドキュメントの中の個々の情報の断片です。AIが効率的に情報を処理できるよう、ドキュメントは適切な大きさのセグメントに分割されます。
例えば、「製品A使用説明書」というドキュメントの中に、「各部の名称」「電源の入れ方」「基本操作」といったセグメントが含まれます。
DifyのナレッジAPIでできること
DifyのナレッジAPIを使用すると、データセット、ドキュメント、セグメントに対して以下の操作が可能です。
作成、追加
一覧取得
更新
削除
それぞれの操作について詳細を説明します。
なお、具体的なAPIの指定方法は公式ドキュメントを参照してください。
作成、追加
DifyのナレッジAPIでは、新しいデータセットやドキュメントを作成できます。
用意されているAPIの種類は以下のとおりです。
空のデータセットを作成する
指定のデータセットにドキュメントを作成する
テキストからドキュメントを作成する
ファイルからドキュメントを作成する
指定のデータセット、ドキュメントにセグメントを追加する
POSTリクエストを使用し、必要な情報(名前など)をJSON形式で送信します。
一覧取得
APIを使用して、既存のデータセットやドキュメントの一覧を取得することもできます。
これにより、どのデータセットやドキュメントが存在するかを確認できます。
用意されているAPIの種類は以下のとおりです。
データセットの一覧を取得する
指定のデータセットのドキュメント一覧を取得する
指定のデータセットのドキュメント埋め込みステータスを取得する
指定のデータセット、ドキュメントのセグメント一覧を取得する
GETリクエストを送信することで、現在存在するデータセットのリストを取得できます。
更新
既存のデータセットやドキュメントは、APIを通じて更新することも可能です。
用意されているAPIの種類は以下のとおりです。
テキストを指定して既存のドキュメントを更新する
ファイルを指定して既存のドキュメントを更新する
既存のセグメントを更新する
※ドキュメントの場合、セグメントの更新と追加の両方ができるのかは未検証です。今後検証していく予定です。
削除
不要になったデータセットやドキュメントは削除できます。
用意されているAPIの種類は以下のとおりです。
既存のデータセットを削除する
既存のドキュメントを削除する
既存のセグメントを削除する
DELETEリクエストを使用して特定のデータセットを削除します。
まとめ
Difyのナレッジは、データセット>ドキュメント>セグメントの階層構造で情報を管理しています。
ナレッジAPIを使用することで、この構造を外部から操作し、データセットの維持管理を自動化できます。
ナレッジAPIの具体的な使い方についても記事を更新していく予定です。
まずは今回紹介した内容を参考にナレッジの仕組みやナレッジAPIでできることを押さえておきましょう。
\\\ ココナラ出品しています ///
DifyやGASを使ったAIアプリ作成をはじめ、Dify導入支援やプログラミングサポートなど幅広く承っております。
相談だけでもOKですのでお気軽にお問い合わせください。
また、XのDMでも相談を承っております。フォロー&絡み大歓迎です!
>> Xアカウントはこちら(@tama_itengnner)