Skip to main content

インターフェース標準ドキュメント

インターフェース標準ドキュメント

1. ドキュメント情報

  • ドキュメント名:SERVICEMEシステム インターフェース標準ドキュメント
  • バージョン:v1.1
  • 公開日:2026-06-05
  • 適用範囲:企業向けインテリジェントシナリオに適用され、認証、ナレッジQ&A、プロセス自動化、データ分析、コンテンツ生成などをサポートします。インターフェースは標準RESTfulアーキテクチャを採用し、システム連携およびクロスプラットフォーム利用を容易にし、カスタマーサービス、マーケティング、財務、人事などの業務領域で広く利用され、協業効率とインテリジェントな意思決定を向上させます。

2. 改訂履歴

バージョン改訂日改訂内容
v1.02025-07-18初版
v1.12026-06-05クロスオリジンアクセス仕様(CORS)の説明を追加

3. 概要

3.1 ドキュメント目的

本ドキュメントの目的を説明します。例:

本ドキュメントは、SERVICEMEシステムのインターフェース仕様(リクエスト形式、レスポンス形式、エラーコードなど)を定義し、利用者の参照用として提供します。

3.2 用語と略語

  • API:アプリケーションプログラミングインターフェース
  • HTTP:ハイパーテキスト転送プロトコル
  • JSON:JavaScriptオブジェクト表記法
  • RESTful:API設計スタイルの一種

3.3 インターフェース設計原則

  • RESTfulスタイルに準拠する(適用可能な場合)。
  • セキュリティ確保のためHTTPSを使用する。
  • データ形式はJSONに統一する。
  • インターフェースをバージョン管理する(例:/v1/xxx)。

4. 共通仕様

4.1 リクエスト仕様

  • リクエストメソッド:GET/POST/PUT/DELETE など。
  • リクエストヘッダー(Headers)
    • Content-Type: application/json
    • Authorization: Bearer {token}(認証が必要な場合)。
  • リクエストパラメータ
    • Queryパラメータ(GET)、Bodyパラメータ(POST/PUT)。
    • 必須/任意フィールドの説明。

4.2 レスポンス仕様

  • レスポンス形式

    {
    "code": 200,
    "message": "成功",
    "data": {}
    }
  • HTTPステータスコード

    • 200:成功
    • 400:リクエストパラメータエラー
    • 401:未認証
    • 500:サーバー内部エラー

4.3 エラーコード表

エラーコード意味解決策
200成功-
422パラメータエラー-
40001パラメータ不足必須フィールドを確認
50001サーバー内部エラー管理者に連絡

4.4 クロスオリジンアクセス仕様(CORS)

4.4.1 背景

Cross-Origin Resource Sharing(CORS)はブラウザのセキュリティ機構であり、Webページが異なるドメインのサーバーへリクエストできるかを制御します。フロントエンドアプリとAPIサービスが異なるドメイン(またはポート)に配置されている場合、ブラウザは自動的にCORS検証を行います。

4.4.2 NEXTバージョンのデフォルト方針

SERVICEME NEXTバージョンでは、デフォルトでクロスオリジンアクセスを許可しません。つまり、ブラウザページからAPIへ直接リクエストした際、Originがサーバー側で許可設定されていない場合はリクエストが拒否されます。

4.4.3 LTSバージョンとの違い

比較項目LTSバージョンNEXTバージョン
クロスオリジン制限制限なし(クロスオリジンを未遮断)デフォルトで禁止
移行影響-LTSからNEXTへ移行後、従来ブラウザ側クロスオリジンAPI呼び出しに依存していた場合、リクエスト失敗が発生

移行時の注意:LTSからNEXTへアップグレードし、フロントエンドでクロスオリジンAPI呼び出しがある場合、アップグレード後はそのままでは動作しません。事前にクロスオリジン設定を申請してください。

4.4.4 対応方法

クロスオリジンアクセスを有効にする必要がある場合は、担当の導入デリバリーチームへ連絡して設定を依頼してください。業務シナリオに応じて許可Originドメインを設定します。

4.4.5 よくある現象

クロスオリジン問題が発生すると、ブラウザ開発者ツール(Console)に以下のようなエラーが表示されることがあります。

  • Access to XMLHttpRequest at 'https://api.xxx.com/...' from origin 'https://your-app.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
  • Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

同様のエラーが表示される場合、当該リクエストはクロスオリジンポリシーにより制限されています。導入デリバリーチームへお問い合わせください。


5. インターフェース詳細

5.1 インターフェース1:ユーザー情報取得

  • インターフェースパス:GET /webapi/lite_api/v1/iam/user/{user_id}

  • リクエストパラメータ

    パラメータ名必須説明
    userIdPathはいユーザーID
  • リクエスト例

    GET /webapi/lite_api/v1/iam/user/234567 HTTP/1.1
    Authorization: Bearer abcdef123456
  • レスポンス例

    {
    "code": 200,
    "data": {
    "username": "string",
    "email": "string",
    "real_name": "",
    "nickname": "",
    "is_superuser": false,
    "avatar": "",
    "enable": true,
    "id": "string",
    "is_aad": false,
    "serial_number": "string",
    "created_at": "2019-08-24T14:15:22.123Z",
    "updated_at": "2019-08-24T14:15:22.123Z",
    "last_login": "2019-08-24T14:15:22.123Z",
    "roles": [],
    "user_roles": [],
    "organizations": [],
    "gender": 0,
    "birthday": "2019-08-24T14:15:22.123Z",
    "wechat": "string",
    "region": "string",
    "time_difference": 0,
    "join_time": "2019-08-24T14:15:22.123Z",
    "office_phone": "string",
    "mobile_phone": "string",
    "description": "string"
    },
    "message": "success"
    }

5.2 インターフェース2:ユーザー作成

  • インターフェースパス:POST /webapi/lite_api/v1/iam/user/

  • リクエストパラメータ:

    パラメータ名必須説明
    usernamestringはいユーザー名
    real_namestringはい実名
    is_aadbooleanはいAADドメインアカウントかどうか
    is_superuserbooleanはいスーパー管理者アカウントかどうか
    avatarstringはいユーザーアバター
  • リクエスト例

    {
    "username": "string",
    "real_name": "string",
    "is_aad": false,
    "is_superuser": false,
    "avatar": ""
    }
  • レスポンス例

    {
    "code": 200,
    "data": {
    "username": "string",
    "email": "",
    "real_name": "string",
    "nickname": "",
    "is_superuser": false,
    "avatar": "",
    "enable": true,
    "id": "0000046446975123456",
    "is_aad": false,
    "serial_number": "",
    "created_at": "2026-07-21T09:02:18.709790",
    "updated_at": "2026-07-21T09:02:18.709607",
    "last_login": null,
    "roles": [],
    "user_roles": [],
    "organizations": [],
    "gender": 0,
    "birthday": null,
    "wechat": "",
    "region": "",
    "time_difference": 8,
    "join_time": null,
    "office_phone": "",
    "mobile_phone": "",
    "description": ""
    },
    "message": "success"
    }

5.3 インターフェース3:アシスタント作成

  • インターフェースパス:POST /webapi/lite_api/v1/robots/

  • リクエストパラメータ:

    パラメータ名必須説明
    infoobjectはいアシスタント情報と名称
    masksarrayいいえアシスタントマスク
    knowledge_basesarrayいいえナレッジベース
    skillsarrayいいえスキル
    mcpsarrayいいえデータモデル
    data_sourcesarrayいいえデータソース
    keywords_filterobjectいいえキーワードフィルター
    feedback_accountsarrayいいえフィードバックアカウント

    リクエスト例:

    {
    "info": {
    "name": "string",
    "weight": 0,
    "avatar_url": "string",
    "description": "",
    "prompt": "string",
    "prologue": "string",
    "robot_type": "",
    "flow_id": "ef710584-0706-4b4b-b481-dd44a4541137",
    "cluster_group_id": "921cd751-fc17-4b9d-a7ec-91a434beaf0a",
    "product_position": "chat-x",
    "chat_rounds": 0,
    "user_id": "string",
    "group_id": "306db4e0-7449-4501-b76f-075576fe2d8f",
    "split_type": "string",
    "load_type": "string",
    "spliter_json": "string",
    "embedding_id": "18e0b745-2b45-46cb-a826-bc9049d1152c",
    "user_skill_auths": [
    null
    ],
    "need_summary": true,
    "force_execute": true,
    "open_filter": true,
    "record_chat": true,
    "is_published": true,
    "category_ids": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "recommend_question": false,
    "feedback": false,
    "knowledge_config": {
    "search_mode": "hybrid",
    "k": 5,
    "doc_score": 0.7,
    "qa_score": 0.8,
    "metadata": "none",
    "show_reference": false
    },
    "editable": true,
    "question_guide": false,
    "operator_execute": false,
    "bi_config": {
    "query_rewrite": false,
    "divide_think": false
    }
    },
    "masks": [
    {
    "mask_set_id": "d0bee2ed-0859-4bb6-8598-f64d47a5a28b"
    }
    ],
    "knowledge_bases": [
    {
    "classification_id": "string",
    "classification_name": "string",
    "classification_icon": "string",
    "workspaces": []
    }
    ],
    "skills": [
    {
    "skill_group_id": "85161907-67ae-4ae2-8fee-99b7d6fcc3f8"
    }
    ],
    "mcps": [],
    "data_sources": [
    {
    "skill_group_id": "85161907-67ae-4ae2-8fee-99b7d6fcc3f8"
    }
    ],
    "keywords_filter": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "robot_id": "8fe44936-b905-428b-ace5-566f232fcce8",
    "key_words": [
    "string"
    ],
    "review_input": true,
    "preset_reply_input": "string",
    "review_output": true,
    "preset_reply_output": "string"
    },
    "feedback_accounts": []
    }

    レスポンス例

    {
    "code": 200,
    "data": null,
    "message": "success"
    }

5.4 インターフェース4:アシスタント情報取得

  • インターフェースパス:GET /webapi/lite_api/v2/api/robot/{robot_id}

  • 認証方式:HTTP Bearer 認証。

    • ヘッダー:Authorization: Bearer {token}(必須)
  • パスパラメータ

    パラメータ名必須説明
    robot_idUUIDはいロボットの一意識別子
  • リクエスト例

    GET /webapi/lite_api/v2/api/robot/a1b2c3d4-5678-90ef-ghij-klmnopqrstuv HTTP/1.1
    Authorization: Bearer YOUR_BEARER_TOKEN_HERE
  • レスポンス例(200)

    {
    "code": 200,
    "data": {
    "info": {
    "name": "サンプルロボット",
    "id": "a1b2c3d4-5678-90ef-ghij-klmnopqrstuv",
    "avatar_url": "https://example.com/avatar.png",
    "description": "これはサンプルロボットです",
    "prompt": "あなたはインテリジェントアシスタントです",
    "prologue": "サンプルロボットへようこそ",
    "robot_type": "chat",
    "product_position": "assistant"
    },
    "masks": [],
    "knowledge_bases": [],
    "skills": [],
    "mcps": [],
    "data_sources": [],
    "keywords_filter": null,
    "feedback_accounts": []
    },
    "message": "success"
    }

5.5 インターフェース5:ファイルアップロード

  • インターフェースパス:POST /webapi/knowledge/v1/file/ekb-knowledge-upload
  • リクエストパラメータ:
パラメータ名必須説明
Filesarrayはい今回アップロードするファイル
WorkspaceIdstringはいstring
fullPathstringいいえファイルのアップロード先フルパス
  • レスポンス例:
{
"code": 200,
"data": [
{
"id": "000060269455675392",
"fullName": "String",
"scan_status": {}
}
],
"message": "ファイルアップロード成功"
}

5.6 インターフェース6:ナレッジベース一覧取得

  • インターフェースパス:GET /webapi/knowledge/v1/kb/me

  • リクエストパラメータ

    パラメータ名必須説明
    localeHeaderいいえロケール、デフォルトen-US
  • リクエスト例

    GET /webapi/knowledge/v1/kb/me HTTP/1.1
    Authorization: Bearer abcdef123456
    locale: zh-CN
  • レスポンス例

    {
    "code": 200,
    "data": [
    {
    "id": "kb_001",
    "name": "製品ナレッジベース",
    "description": "製品説明、FAQ、操作マニュアルを保存するために使用",
    "mode": 1
    }
    ],
    "message": "success"
    }

5.7 インターフェース7:ナレッジベース作成

  • インターフェースパス:POST /webapi/knowledge/v1/kb/knowledge-base

  • リクエストパラメータ:

    パラメータ名必須説明
    namearrayはいナレッジベース名(多言語配列)
    descriptionarrayはいナレッジベース説明(多言語配列)
    sortintegerいいえソート値
    quotaobjectいいえナレッジベース容量設定
    parent_idstringいいえ親ナレッジベースID
    modeintegerいいえナレッジベースモード、デフォルト1
  • リクエスト例

    {
    "name": [
    {
    "locale": "zh-CN",
    "content": "カスタマーサービスナレッジベース"
    }
    ],
    "description": [
    {
    "locale": "zh-CN",
    "content": "カスタマーサポートQ&Aと業務文書の管理に使用"
    }
    ],
    "sort": 0,
    "mode": 1
    }
  • レスポンス例

    {
    "code": 200,
    "data": {
    "id": "kb_001",
    "name": "カスタマーサービスナレッジベース"
    },
    "message": "success"
    }

5.8 インターフェース8:ナレッジベース詳細取得

  • インターフェースパス:GET /webapi/knowledge/v1/kb/knowledge-base/{kb_id}

  • リクエストパラメータ

    パラメータ名必須説明
    kb_idPathはいナレッジベースID
    localeHeaderいいえロケール、デフォルトen-US
  • リクエスト例

    GET /webapi/knowledge/v1/kb/knowledge-base/kb_001 HTTP/1.1
    Authorization: Bearer abcdef123456
    locale: zh-CN
  • レスポンス例

    {
    "code": 200,
    "data": {
    "id": "kb_001",
    "name": "カスタマーサービスナレッジベース",
    "description": "カスタマーサポートQ&Aと業務文書の管理に使用",
    "mode": 1,
    "sort": 0
    },
    "message": "success"
    }

5.9 インターフェース9:ナレッジベースフォルダ作成

  • インターフェースパス:POST /webapi/knowledge/v1/file/ekb-folder

  • リクエストパラメータ:

    パラメータ名必須説明
    workspaceIdQueryはい所属ナレッジベースID
    namestringはいフォルダ名
    fullPathstringはいフォルダのフルパス
  • リクエスト例

    POST /webapi/knowledge/v1/file/ekb-folder?workspaceId=1001 HTTP/1.1
    Authorization: Bearer abcdef123456
    Content-Type: application/json

    {
    "name": "製品マニュアル",
    "fullPath": "/顧客資料/製品マニュアル"
    }
  • レスポンス例

    {
    "code": 200,
    "data": {
    "id": 501,
    "name": "製品マニュアル",
    "fullPath": "/顧客資料/製品マニュアル"
    },
    "message": "success"
    }

5.10 インターフェース10:ナレッジベースファイル一覧取得

  • インターフェースパス:POST /webapi/knowledge/v1/file/ekb-pagelist

  • リクエストパラメータ:

    パラメータ名必須説明
    PageIndexintegerいいえページ番号、デフォルト1
    PageSizeintegerいいえ1ページ件数、デフォルト20
    OrderFieldstringいいえソート項目、デフォルトmodified
    OrderTypestringいいえソート順、デフォルトdesc
    Conditionsarrayいいえ検索条件リスト
  • リクエスト例

    {
    "PageIndex": 1,
    "PageSize": 20,
    "OrderField": "modified",
    "OrderType": "desc",
    "Conditions": [
    {
    "fieldName": "workspaceId",
    "fieldValue": "1001"
    }
    ]
    }
  • レスポンス例

    {
    "code": 200,
    "data": {
    "items": [
    {
    "id": 7001,
    "name": "製品紹介.pdf",
    "objectType": 1,
    "modified": "2026-05-17T10:00:00Z"
    }
    ],
    "total": 1
    },
    "message": "success"
    }

5.11 インターフェース11:ナレッジベースファイルプレビュー

  • インターフェースパス:GET /webapi/knowledge/v1/file/ekb-preview

  • リクエストパラメータ

    パラメータ名必須説明
    cQueryはいコンテナ名
    nQueryはいファイル名またはBlob名
    uQueryはいユーザーID
    sQueryいいえソースシステム、デフォルトecm
    wQueryいいえ透かしユーザーID
  • リクエスト例

    GET /webapi/knowledge/v1/file/ekb-preview?c=docs&n=abc123%2F製品紹介.pdf&u=10001&s=ecm HTTP/1.1
    Authorization: Bearer abcdef123456
  • レスポンス例

    {
    "previewUrl": "https://example.com/preview/abc123",
    "expireAt": "2026-05-17T12:00:00Z"
    }

5.12 インターフェース12:ナレッジベースファイルダウンロード

  • インターフェースパス:POST /webapi/knowledge/v1/file/download

  • リクエストパラメータ:

    パラメータ名必須説明
    fileIdintegerはいファイルID
    objectTypeintegerはいオブジェクト種別
  • リクエスト例

    {
    "fileId": 7001,
    "objectType": 1
    }
  • レスポンス例

    {
    "downloadUrl": "https://example.com/download/7001",
    "fileName": "製品紹介.pdf"
    }

5.13 インターフェース13:Q&A作成

  • インターフェースパス:POST /webapi/knowledge/v1/qna

  • リクエストパラメータ:

    パラメータ名必須説明
    answerstringはい標準回答
    enablebooleanいいえ有効化するか、デフォルトtrue
    workspaceIdintegerはい所属ナレッジベースID
    questionsarrayはい質問リスト
    metadataExpansionobjectいいえ拡張メタデータ
  • リクエスト例

    {
    "answer": "ログイン後に「マイ申請」へ進み、承認進捗を確認してください。",
    "enable": true,
    "workspaceId": 1001,
    "questions": [
    {
    "content": "申請の進捗はどう確認できますか?",
    "sort": 0
    }
    ]
    }
  • レスポンス例

    {
    "code": 200,
    "data": {
    "id": 9001,
    "workspaceId": 1001,
    "enable": true
    },
    "message": "success"
    }

5.14 インターフェース14:Q&A一覧取得

  • インターフェースパス:POST /webapi/knowledge/v1/qna/pagelist

  • リクエストパラメータ:

    パラメータ名必須説明
    PageIndexintegerいいえページ番号、デフォルト1
    PageSizeintegerいいえ1ページ件数、デフォルト20
    OrderFieldstringいいえソート項目、デフォルトmodified
    OrderTypestringいいえソート順、デフォルトdesc
    Conditionsarrayいいえ検索条件リスト
  • リクエスト例

    {
    "PageIndex": 1,
    "PageSize": 20,
    "OrderField": "modified",
    "OrderType": "desc",
    "Conditions": [
    {
    "fieldName": "workspaceId",
    "fieldValue": "1001"
    }
    ]
    }
  • レスポンス例

    {
    "code": 200,
    "data": {
    "items": [
    {
    "id": 9001,
    "question": "申請の進捗はどう確認できますか?",
    "answer": "ログイン後に「マイ申請」へ進み、承認進捗を確認してください。",
    "enable": true
    }
    ],
    "total": 1
    },
    "message": "success"
    }

5.15 インターフェース15:QnA一覧クエリ

  • インターフェースパス:POST /webapi/lite_api/v2/api/qa_list

  • 認証方式:HTTP Bearer 認証。

    • ヘッダー:Authorization: Bearer {token}(必須)
  • リクエストパラメータ(JSON Body)

    パラメータ名必須説明
    querystringはい検索クエリ
    kintegerいいえ返却する上位結果数
    knowledge_idsarray[string]| nullいいえ検索対象のナレッジベースIDリスト
    search_modestringいいえ検索モード:hybrid / embedding / text
    qa_scorenumberはいQAしきい値
    llm_usebooleanいいえ大規模言語モデルを使用するか
    metadatastringいいえメタデータ処理モード:none / filter / weight
  • リクエスト例

    {
    "query": "APIで画像アップロードする方法",
    "k": 20,
    "knowledge_ids": [
    "kb123",
    "kb456"
    ],
    "search_mode": "hybrid",
    "qa_score": 1,
    "llm_use": false,
    "metadata": "none"
    }
  • レスポンス例(200)

    {
    "code": 200,
    "data": [
    {
    "metadata": null,
    "documentid": "doc_001",
    "chunkid": "chunk_001",
    "filename": "api-guide.pdf",
    "content": "アップロードAPIは multipart/form-data をサポート",
    "score": 0.95,
    "rank_score": 0.91,
    "question": "APIで画像アップロードする方法",
    "timestamp": "2026-07-21T09:30:00Z",
    "url": null,
    "type": "QA"
    }
    ],
    "message": "qa retrieved successfully"
    }
  • バリデーションエラー例(422)

    {
    "code": 422,
    "data": {
    "detail": []
    },
    "message": "Validation Error"
    }
  • ステータスコード

    • 200:リクエスト成功、IResponseModel[QAResponseList] を返却
    • 422:パラメータ検証エラーを返却

5.16 インターフェース16:外部ナレッジベース検索

  • インターフェースパス:POST /webapi/lite_api/v2/api/retrieval

  • インターフェース説明:チーム内で独立管理されているナレッジベースへ接続するために使用し、Dify連携およびデリバリーチームの二次開発に適しています。

  • 認証方式:HTTP Bearer 認証。

    • ヘッダー:Authorization: Bearer {API_KEY}(必須)
  • リクエストパラメータ(JSON Body)

    パラメータ名必須説明
    knowledge_idstringはいナレッジベースの一意ID
    querystringはいユーザーの質問内容
    retrieval_settingobjectはい検索パラメータ設定
    metadata_conditionobjectいいえメタデータフィルタ条件(予約済み、現在は未有効)
  • retrieval_setting 項目説明

    パラメータ名必須説明
    top_kintegerはい返却する最大結果数
    score_thresholdnumberはい関連度しきい値(0〜1)
    search_typestringいいえ検索モード:hybrid / embedding / text、デフォルト hybrid
    hybridpipelineUUIDいいえ高度オーケストレーション pipeline ID
  • リクエスト例

    {
    "knowledge_id": "your-knowledge-id",
    "query": "あなたの質問",
    "retrieval_setting": {
    "top_k": 2,
    "score_threshold": 0.5
    }
    }
  • レスポンス例(200)

    {
    "records": [
    {
    "metadata": {
    "Url": "{host}/knowledge-webapi/#/share/preview?fileId=4534399061070970880&objectType=2&previewType=file&mode=login",
    "FileName": "demo.pdf",
    "FileId": "4534399061070970880",
    "FilePath": "/",
    "Created": "2026-01-21T05:23:02.2404442Z",
    "page": 5
    },
    "score": 0.61544959,
    "title": "demo.pdf",
    "content": "Dify:GenAIアプリケーションのイノベーションエンジン"
    }
    ]
    }
  • よくあるエラー

    • 403:AccessDeniedException、アクセス権限不足。
    • 500:InternalServerException、サーバー内部エラー。
    • 業務エラーコード:
error_code説明
1001Authorizationヘッダー形式が無効(Bearer <api-key> 形式が必要)
1002認可失敗

備考:このインターフェースは製品権限で制御されており、アクセス権の検証のみ可能で、ナレッジベースの存在確認はできません。管理者が存在しないナレッジベースIDを指定した場合、通常は空結果が返ります。


6. セキュリティ仕様

  • 認証方式:OAuth2.0/JWT/API Key。
  • データ暗号化:機微情報は転送時に暗号化が必要(例:パスワード)。
  • レート制限:API呼び出し頻度は、インターフェース種別、業務の機微度、システム負荷に応じて制御してください。参考値を以下に示します。
シナリオ一般的な制限説明
公開API(第三者呼び出し)10〜100 回/分例:WeChat Pay、Alipayの公開APIは通常50〜200回/分(インターフェース等級による)。
内部システムAPI100〜1000 回/分内部サービス間呼び出しは緩和できますが、単一サービスによる過剰なリソース占有は避けてください。
ユーザー操作API5〜60 回/分ログイン、SMS送信などの機微操作は厳格に制限します。例:SMS認証コードAPIは通常1回/60秒です。
データ照会API100〜5000 回/分高頻度照会APIは緩和できますが、キャッシュを併用してDB負荷を下げてください。
高同時実行コアAPI動的レート制限(例:トークンバケット)例:フラッシュセールAPIでは、サーキットブレーカーや弾性スケーリングを組み合わせることがあります。

備考:上記の範囲は参考値です。実際の設定は、インターフェース性能、呼び出し元、リソース消費、業務ピークを総合的に見て決定してください。