見出し画像

Difyのナレッジの仕組みとナレッジAPIでできること

Difyではナレッジと呼ばれる仕組みでRAGを管理します。

ナレッジ

そしてこのナレッジをAPIで操作する仕組みが提供されています。公式ドキュメントは以下のとおりです。

>> APIによるデータセットの維持

APIを使ってナレッジを操作することで、DifyのワークフローやGASなどの外部ツールからナレッジを編集できるため、処理の幅が広がります。

この記事ではDifyのナレッジの仕組みや、ナレッジAPIでできることをまとめました。ナレッジAPIを使ってみたい人は、ぜひ参考にしてみてください。


Difyにおけるナレッジの仕組み

Difyのナレッジベースは、複数のドキュメントを集約し、1つのアプリケーションに統合することで、ユーザーの質問に対して正確な回答を提供する仕組みです。

これにより、外部知識を大言語モデルに提供し、効率的な情報検索が可能になります。

Difyのナレッジベースは、以下の3つの階層で構成されています。

  1. データセット

  2. ドキュメント

  3. セグメント

図にすると以下のようなイメージです。

Difyのナレッジ構造

データセット:情報の大きな箱

データセットは、ナレッジベースの最上位層です。これは、特定のテーマや目的に関連する情報をまとめた大きな箱のようなものです。

データセット

例えば、「製品マニュアル」や「顧客サポートFAQ」といったように定義されます。

ドキュメント:情報のまとまり

ドキュメントは、データセットの中に含まれる個々の情報のまとまりです。

ドキュメント

例えば、「製品マニュアル」というデータセットの中に、「製品A使用説明書」「製品Bトラブルシューティング」といったドキュメントが含まれます。

セグメント:情報の最小単位

セグメントは、ドキュメントの中の個々の情報の断片です。AIが効率的に情報を処理できるよう、ドキュメントは適切な大きさのセグメントに分割されます。

セグメント

例えば、「製品A使用説明書」というドキュメントの中に、「各部の名称」「電源の入れ方」「基本操作」といったセグメントが含まれます。

DifyのナレッジAPIでできること

DifyのナレッジAPIを使用すると、データセット、ドキュメント、セグメントに対して以下の操作が可能です。

  • 作成、追加

  • 一覧取得

  • 更新

  • 削除

それぞれの操作について詳細を説明します。

なお、具体的な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)


いいなと思ったら応援しよう!