Laravel10 APIでDifyのナレッジを操作する方法

DifyナレッジのAPIキーを取得

ページ上部の「ナレッジ」をクリック

Dify ナレッジ

「API」をクリック

Dify ナレッジAPI

ページ右の「APIキー」をクリック

Dify ナレッジAPI取得ボタン

「新しいシークレットキーを作成」をクリック

Dify ナレッジ APIシークレットキー作成ボタン

コピーして「OK」をクリック

Dify ナレッジ APIシークレットキー作成確認

操作したいデータセットid(ナレッジid)を取得

対象のナレッジを選択

Dify ナレッジ一覧

ナレッジを選択後のURLからデータセットidを抽出

Dify ナレッジURL

サンプルソース

ナレッジリストの取得

use Illuminate\Support\Facades\Http;

        $dify_knowledge_api_key = "DifyナレッジAPIキー";
        $dify_dataset_id = "データセットid";

        $response = Http::withHeaders([
            'Authorization' => 'Bearer ' . $dify_knowledge_api_key,
        ])->get('https://api.dify.ai/v1/datasets/' . $dify_dataset_id . '/documents');

        // レスポンスの取得
        $responseBody = $response->json();

        return $responseBody['data'];

ナレッジの登録

use Illuminate\Support\Facades\Http;

        $dify_knowledge_api_key = "DifyナレッジAPIキー";
        $dify_dataset_id = "データセットid";

        $response = Http::withHeaders([
            'Authorization' => 'Bearer ' . $dify_knowledge_api_key,
            'Content-Type' => 'application/json',
        ])->post('https://api.dify.ai/v1/datasets/' . $dify_dataset_id . '/document/create_by_text', [
            'name' => "ファイル名(タイトル)",
            'text' => "ナレッジ",
            'indexing_technique' => 'high_quality',
            'process_rule' => [
                'mode' => 'automatic',
            ],
        ]);

        // レスポンスの取得
        $responseBody = $response->json();

        // document_id取得
        $dify_document_id = $responseBody['document']['id'];

返ってくるdocument_idを使って更新や削除を行う

ナレッジの更新

use Illuminate\Support\Facades\Http;

        $dify_knowledge_api_key = "DifyナレッジAPIキー";
        $dify_dataset_id = "データセットid";
        $document_id = "ドキュメントid";

        $response = Http::withHeaders([
            'Authorization' => 'Bearer ' . $dify_knowledge_api_key,
            'Content-Type' => 'application/json',
        ])->post('https://api.dify.ai/v1/datasets/' . $dify_dataset_id . '/documents/' . $document_id . '/update_by_text', [
            'name' => "ファイル名(タイトル)",
            'text' => "ナレッジ",
        ]);

        // レスポンスの取得
        $responseBody = $response->json();

ナレッジの削除

use Illuminate\Support\Facades\Http;

        $dify_knowledge_api_key = "DifyナレッジAPIキー";
        $dify_dataset_id = "データセットid";
        $document_id = "ドキュメントid";

        $response = Http::withHeaders([
            'Authorization' => 'Bearer ' . $dify_knowledge_api_key,
        ])->delete('https://api.dify.ai/v1/datasets/' . $dify_dataset_id . '/documents/' . $document_id);

        // レスポンスの取得
        $responseBody = $response->json();

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です