EAI/ETL技術者のブログ

クラウド・SaaS連携

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

公開日:
更新日:
クラウド・SaaS連携
#HULFT Square
#EAI
#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サービス)