HULFT Square×Dify:RESTでファイルをナレッジに自動登録してみた

HULFT Squareが社内外のデータを収集し、DifyのナレッジベースへREST APIで自動登録して活用する手順を紹介します。DataSpiderや各種ワークフローからも横展開しやすい、シンプルな実装パターンです。なお、実環境のAPIキーやIDは伏せた形で記載しています。
※HULFTSquareにつきましては下記をご参照ください。
はじめに
本記事では、クラウド上のDify環境にナレッジ(Knowledge Base / Dataset)を用意し、HULFT Square(RESTコネクター)からファイルをアップロードしてドキュメント化する流れを解説します。ナレッジに格納した情報は、後段のチャットやRAGなどのアプリから参照・検索に活用でき、社内文書の自己解決や問合せ対応のスピードアップが期待できます。
Difyの概要と利用用途
Difyはクラウド上でサインインしてすぐに利用開始できるAIアプリ開発・ナレッジ活用プラットフォームです。公式クラウド版は https://cloud.dify.ai/signin からアクセスできます。
ナレッジ(Dataset)機能により、PDF等のファイルをドキュメントとして取り込み、API経由での登録・更新が可能です。ベースURLは https://api.dify.ai/v1 を利用します。
想定される利用用途(本記事のパターン)
HULFT Squareが社内外のデータを収集して(PDF等のファイルとして)夜間バッチやイベント契機でDifyのナレッジへ自動登録
HULFT Squareで取得・生成したファイル(例:SalesforceやKintone等のクラウド上のファイル、DBの抽出データをファイル出力したもの)を入力データとして取り込み、定期/随時のナレッジ更新に活用
登録済みナレッジを、チャット/RAGアプリから横断検索し、社内FAQや手順説明の即時回答に活用
複数ファイルの一括投入による、最新ドキュメントの継続反映(差し替え運用)
全体構成と前提条件

HULFT Square(RESTコネクター)→ Dify API(/v1/datasets/{dataset_id}/document/create-by-file)
認証はサービスAPIキー(Authorization: Bearer ...)を使用
前提条件
Difyクラウド環境のアカウント作成が完了していること
空のナレッジベース(Dataset)を作成済みで、対象のデータセットIDを控えていること(Dataset画面のURLから取得可能)
DifyのサービスAPIキーを発行済みであること
手順1:Dify側の準備(環境・ナレッジ・API)
1. Difyにサインインし、組織/ワークスペースを作成
2. 空のナレッジベース(Dataset)を1つ作成

3. サービスAPIキーを発行し、控えておく(後続のAuthorizationヘッダに使用)
4. データセットIDをURLから取得
例)cloud.dify.ai/datasets/{DATASET_ID}/documents の {DATASET_ID} 部分
手順2:API呼び出し例(curlサンプル)
以下はローカルからの単発テスト例です。multipart/form-data でファイル本体と処理ルール(JSON)を送ります。
curl --request POST \
--url "https://api.dify.ai/v1/datasets/<DATASET_ID>/document/create-by-file" \
--header "Authorization: Bearer <API_KEY>" \
--form 'data={"indexing_technique":"economy","process_rule":{"mode":"custom","rules":{"pre_processing_rules":[],"segmentation":{"separator":"###","max_tokens":500}}}}' \
--form "file=@/path/to/your/test.pdf"ポイント
エンドポイント:/v1/datasets/{DATASET_ID}/document/create-by-file(Dataset単位で登録)
Authorizationヘッダ:Bearer <api_key>(サービスAPIで発行)</api_key>
form-dataのdata項目:JSONで処理ルール(インデクシング手法、分割ルールなど)を指定可能
処理ルールの例(dataに渡すJSON)
{
"indexing_technique": "economy",
"process_rule": {
"mode": "custom",
"rules": {
"pre_processing_rules": [],
"segmentation": {
"separator": "###",
"max_tokens": 500
}
}
}
}curlコマンドを実行しファイルが格納されるか確認

手順3:HULFT Squareの設定ポイント
1. コネクション設定
ベースURL:https://api.dify.ai/v1

2. ストレージにファイル格納
取り込み対象のPDF等を所定のストレージ(ディレクトリ)へ配置

3. スクリプト作成(変数)
変動要素(APIキー、データセットID、ファイルパス、処理ルールJSONなど)は変数化

例:処理ルールJSONは上記の通り(separatorやmax_tokensは用途に合わせて調整
4. スクリプト作成(REST POST)
メソッド:POST
パス:/datasets/${DATASET_ID}/document/create-by-file
ヘッダ:Authorization: Bearer ${API_KEY}
Content-Type:multipart/form-data
ボディ:file(バイナリ)、data(JSON文字列)



5. スクリプト作成(マッピング)
ファイルパス→fileパート、JSON文字列→dataパートへ割り当て

6. スクリプト作成(実行と確認)
実行し、正常終了を確認

正常終了後、DifyのDataset画面で対象ファイルがドキュメントとして登録されているか確認

7. スクリプトを少し改造して複数ファイルを一括でDifyへ連携できるようにしてみる

8. 実行と確認

さらなる活用に向けて
複数ファイルの連続処理
HULFT Squareのループ処理などを組み合わせることで、ディレクトリ内の複数ファイルを一括でDifyに登録可能です。クラウドサービス、DBに蓄積されているデータの連携処理
HULFT SquareのコネクタによりSalesforceやKintone、各種クラウドストレージ、DBに格納されているデータ、ファイルを収集し、Difyに登録可能です。取り込みルール(区切り文字、最大トークンなど)は、文書の粒度や回答精度に影響するため、数パターンを試して最適化するのがおすすめです。
HULFT SquareのRESTコネクタでは、ナレッジベースへのファイル格納API以外にもDifyのワークフローを制御するAPIの実行も可能です。
まとめ
Difyはクラウド版へサインイン後すぐに利用開始でき、ナレッジ(Dataset)へREST APIでファイル登録が可能です。
HULFT Square(RESTコネクタ)からは、Authorizationヘッダとmultipart/form-dataでfile/dataを送るだけのシンプルな構成で連携できます。
処理ルール(分割・前処理)を調整することで、検索性・回答品質の向上が見込めます。まずは小さく始め、最適な分割粒度と投入タイミングを検証しましょう。
HULFT Squareについて、ご質問・ご相談をお受けしています。
下記URLよりお気軽にお問い合わせください。追って担当者より回答いたします。
ページトップへ戻る
この記事を書いたスタッフ
Glean(革新的な生成AIサービス)
Glean(革新的な生成AIサービス)