このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。Dify コンソールを介さず、自分のコードから ナレッジベース を構築・管理できます。ナレッジベースを作成し、ドキュメントとチャンクを取り込み、メタデータとタグで整理し、検索や RAG のために直接クエリできます。
1 つのナレッジベース API キーは、キーを作成したアカウントから見えるすべてのナレッジベースにアクセスできます。データの意図しない漏えいを防ぐため、キーは慎重に管理してください。
API エンドポイントとキーの取得
ナレッジ 画面右上の サービスAPI をクリックすると、API 設定パネルが開きます。ここから以下を行えます。- サービスAPI エンドポイントをコピーします。すべてのナレッジ API リクエストのベース URL です。
- APIキー をクリックしてキーを作成・管理します。
ナレッジベースの API アクセス管理
既定では、すべてのナレッジベースが API からアクセス可能です。特定のナレッジベースへのアクセスを制限するには、対象のナレッジベースを開き、左下の API アクセス をクリックしてトグルをオフにします。ナレッジベースの作成と管理
- 空のナレッジベースを作成:ドキュメントを含まないナレッジベースを作成します。
- ナレッジベースリストを取得:キーワードやタグで絞り込めるページネーション付きリストを返します。
- ナレッジベース詳細を取得:埋め込みモデル、検索設定、ドキュメント統計を返します。
- ナレッジベースを更新:名前、権限、埋め込みモデル、検索設定を変更します。リクエストで指定したフィールドのみを更新します。
- ナレッジベースを削除:ナレッジベースとその中のすべてのドキュメントを完全に削除します。
- ナレッジベースからチャンクを取得 / テスト検索:ナレッジベースを検索し、最も関連性の高いチャンクを返します。本番検索と検索テストの両方に同じエンドポイントを使います。
ドキュメントの追加と更新
ドキュメントの作成は非同期です。作成後、インデックスが完了するまでポーリングします。ナレッジベースの作成
空のナレッジベースを作成 を呼び出します。既存のナレッジベースをそのまま使うこともできます。
ドキュメントの追加
テキストからドキュメントを作成 または ファイルからドキュメントを作成 を呼び出します。どちらも
batch ID を返します。ナレッジベース作成時に indexing_technique(検索用に内容をインデックスする方法)を設定しなかった場合は、この最初のドキュメントで設定します。以降のドキュメントには自動的に引き継がれます。インデックス状況のポーリング
batch ID を使って ドキュメント埋め込みステータス(進捗)を取得 をポーリングします。indexing_status が completed または error になるまで待ちます。処理は waiting、parsing、cleaning、splitting、indexing の順に進みます。- ナレッジベースのドキュメントリストを取得:キーワードやインデックスステータスで絞り込めるページネーション付きリストを返します。
- ドキュメント詳細を取得:インデックスステータス、メタデータ、処理統計を返します。
metadataクエリパラメータで、メタデータフィールドを含める・省略する・のみ返すのいずれかを指定できます。 - ドキュメントをダウンロード:ドキュメントの元ファイルに対する署名付きダウンロード URL を返します。
- ドキュメントを一括ダウンロード(ZIP):ファイルからアップロードしたドキュメントを最大 100 件、1 つのアーカイブにまとめます。
- ドキュメントを更新:新しいファイルをアップロードして内容を置き換え、インデックスを再実行します。これがファイルベースのドキュメントを更新する標準的な方法です。
- テキストでドキュメントを更新:ドキュメントのテキスト内容、名前、処理設定をインラインで更新します。内容が変わるとインデックスを再実行します。
- ファイルでドキュメントを更新:置き換え用のファイルをアップロードするための非推奨のエイリアスです。代わりに「ドキュメントを更新」を使用してください。
- ドキュメントステータスを一括更新:複数のドキュメントを一度に有効化・無効化・アーカイブ・アーカイブ解除します。
- ドキュメントを削除:ドキュメントとその中のすべてのチャンクを完全に削除します。
チャンクと子チャンクの管理
- ドキュメントにチャンクを追加:チャンクを手動でドキュメントに追加します(アップロードされた内容は、インデックス処理が自動でチャンク化します)。各チャンクには
contentが必須で、Q&A モードのドキュメントではanswerも必須です。 - チャンク一覧を取得:キーワードやステータスで絞り込めるページネーション付きリストを返します。
- ドキュメント内のチャンク詳細を取得:チャンクの内容、キーワード、インデックスステータスを返します。
- ドキュメント内のチャンクを更新:チャンクの内容、キーワード、回答を変更し、そのチャンクのインデックスを再実行します。
- ドキュメント内のチャンクを削除:チャンクを完全に削除します。
hierarchical_model)のドキュメントでは、子チャンクは親チャンクの配下に置かれます。API から作成・更新した子チャンクは常に customized になり、インデックス処理が自動生成する automatic とは区別されます。
- 子チャンクを作成:親チャンクの下に子チャンクを追加します。
- 子チャンク一覧を取得:親チャンク配下の子チャンクをページネーション付きで返します。
- 子チャンクを更新:子チャンクの内容を変更します。
- 子チャンクを削除:子チャンクを完全に削除します。
メタデータフィールドの管理
メタデータフィールドはドキュメントに構造化情報を付与し、検索時のフィルタリングに使えます。- メタデータフィールドを作成:
string、number、timeのいずれかの型でカスタムフィールドを追加します。 - メタデータフィールドリストを取得:カスタムフィールドと組み込みフィールドの両方を、使用ドキュメント数とともに返します。
- メタデータフィールドを更新:カスタムフィールドの名前を変更します。
- メタデータフィールドを削除:カスタムフィールドを削除します。対象ドキュメントはその値を失います。
- 組み込みメタデータフィールドを取得:
document_name、uploader、upload_dateなど、システム提供のフィールドを返します。 - 組み込みメタデータフィールドを更新:ナレッジベースごとに組み込みフィールドの有効・無効を切り替えます。
- ドキュメントメタデータを一括更新:1 回の呼び出しで複数のドキュメントにメタデータのキーと値を設定します。
タグによるナレッジベースの整理
タグはワークスペース単位で管理され、個々のナレッジベースには依存しません。- ナレッジベースタグを作成:ナレッジベースを整理するためのタグを作成します。
- ナレッジベースタグリストを取得:ワークスペース内のすべてのタグを返します。
- ナレッジベースタグを変更:タグの名前を変更します。
- ナレッジベースタグを削除:紐づいていたすべてのナレッジベースからタグを外します。ナレッジベース自体は削除されません。
- タグをナレッジベースにバインド:1 つ以上のタグをナレッジベースにバインドします。1 つのナレッジベースに複数のタグを付けられます。
- タグとナレッジベースのバインドを解除:ナレッジベースからタグを外します。
- ナレッジベースにバインドされたタグを取得:ナレッジベースに現在バインドされているタグを返します。
利用可能なモデルの取得
- 利用可能なモデルを取得:指定した
model_typeで利用できるモデルを返します。ナレッジベースの設定では、text-embeddingで埋め込みモデルを、rerankでリランクモデルを照会します。
ナレッジパイプラインの実行
ナレッジパイプラインは、データソースからデータを取り込みドキュメントに変換するワークフローです。- パイプラインファイルをアップロード:パイプラインが処理するファイルをアップロードします。
- データソースプラグインリストを取得:パイプラインに設定されたデータソースノードを返します。既定では公開版を、
is_published=falseを指定すると下書き版を返します。 - データソースノードを実行:単一のデータソースノードを実行し、結果をストリーミングで返します。1 つのステップを個別にテストする際に便利です。
- パイプラインを実行:
streamingまたはblockingモードでパイプライン全体を実行します。is_publishedで公開版と下書きのどちらを実行するかを指定します。