REST ユーザ定義タスクを活用して IM-Copilot 標準サポート対象外のモデルを利用する

このCookBookでは、IM-Copilot が標準対応しているモデル以外を利用したい場合に有効な手法として、IM-LogicDesigner の REST ユーザ定義タスクを使って REST API を直接呼び出す方法を解説します。Azure OpenAI Service の画像生成モデル「gpt-image-1-mini」を例に、テキストプロンプトから画像を生成してストレージに保存するフロー定義をローコードで構築します。

このレシピで実現できること

Azure OpenAI Service には、テキストから画像を生成するモデル(gpt-image-1-mini 等)が提供されています。IM-LogicDesigner の REST ユーザ定義タスク を活用することで、これらの画像生成 API を intra-mart のフロー定義から直接呼び出し、アプリケーションに画像生成機能を組み込むことができます。

なお、このレシピは以下のような背景がある場合にも役立ちます。

  • Azure OpenAI Service の dall-e-3 モデルは 2026年3月4日に提供終了となり、intra-mart の画像生成アクション API(下記)が現時点では新モデルに未対応のため利用できない状況です。REST ユーザ定義タスクを使った本レシピの実装に切り替えることで、引き続き画像生成機能をご利用いただけます。

完成イメージ

フロー定義の全体像は、以下の通りです。
フロー定義全体像

フロー定義の処理の流れは、以下の通りです。
1. プロンプトの受け取り(「Start」タスク)
2. 画像生成実行(「Image Generation Azure OpenAI User Definition」タスク - im_cookbook_274977_user_definition_image_generation1)
3. ファイル名生成(「Generate File Name」タスク - im_variableOperation1)
4. セッションストレージ取得(「Session Storage Acquisition」タスク - im_sessionStorage1)
5. 生成画像のストレージ保存(「Storage Output (binary)」タスク - im_writeBinaryToStorage1)
6. 処理完了(「End」タスク)

前提条件

  • Azure OpenAI Service で画像生成モデル gpt-image-1-mini をデプロイ済みであること。

レシピ

  1. IM-LogicDesigner で REST ユーザ定義タスクを作成します。
  2. フロー定義を作成します。

1. REST ユーザ定義タスクを作成します。

IM-LogicDesigner の REST ユーザ定義タスクを使用することで、任意の REST API をフロー定義から呼び出せます。ここでは、Azure OpenAI Service の画像生成 API を呼び出すためのユーザ定義タスクを作成します。
「サイトマップ」→「LogicDesigner」→「ユーザ定義一覧」→「新規作成」をクリックし、「REST」を選択します。

以下の設定でユーザ定義タスクを作成します。

リクエスト情報

リクエスト情報

項目
エンドポイント https://{resource-name}.openai.azure.com/openai/deployments/{deployment-name}/images/generations?api-version=2024-12-01-preview
メソッド POST
リクエスト種別 application/json
リクエストエンコーディング UTF-8
リダイレクトを利用する 有効
リクエストタイムアウト(秒) 60
  • {resource-name} はご利用の Azure OpenAI Service のリソース名に置き換えてください。
  • {deployment-name} はご利用の Azure OpenAI Service に作成した画像生成モデルのデプロイ名に置き換えてください。

リクエストヘッダ

ヘッダー名 ヘッダー値
Authorization Bearer ${apiKey}

入力値 / 返却値

入力値・返却値

入力値

キー名 説明
body <object> リクエストボディ
body.prompt <string> 画像生成プロンプト
body.size <string> 生成画像のサイズ
apiKey <string> Azure OpenAI の API キー(Authorizationヘッダーに展開)

返却値

キー名 説明
status <object> レスポンスステータス情報
status.statusCode <integer> HTTPステータスコード
status.reasonPhrase <string> ステータスメッセージ
headers <map> レスポンスヘッダー
body <object> レスポンスボディ
body.created <long> 作成日時(Unixタイムスタンプ)
body.data <object[]> 生成画像データの配列
body.data[].b64_json <string> Base64エンコードされた画像データ
failureResponseBody <object> エラー時のレスポンスボディ

レスポンス情報

レスポンス情報

項目
レスポンス種別 json
レスポンスエンコーディング UTF-8
ステータスコードの確認 有効

Azure OpenAI の画像生成 API のリクエスト・レスポンス形式の詳細については、Azure OpenAI イメージ生成モデルの使用方法(Microsoft 公式ドキュメント) をご参照ください。

2. フロー定義を作成します。

IM-LogicDesigner にてフロー定義を作成します。
「サイトマップ」→「LogicDesigner」→「フロー定義一覧」→「新規作成」をクリックします。

入出力設定

入出力設定

  • 入力
    • prompt … <string> (画像生成プロンプト)
  • 出力
    • fileName … <string> (生成画像のファイル名)

定数設定

「定数を追加」から以下の定数を設定します。

定数設定

定数ID 定数値 データ型 説明
API_KEY Azure OpenAI の API キー string 画像生成ユーザ定義タスクの認証に使用

API_KEY には実際の Azure OpenAI API キーを設定してください。

タスクの配置と接続

フロー定義に以下のタスクを配置し、Start から End まで順番に接続します。

フロー定義全体像

タスク名 種別 タスクID
Generate Image 画像生成ユーザ定義(REST) im_generateImage1
Generate File Name 変数操作 im_variableOperation1
Session Storage Acquisition セッションストレージ取得 im_sessionStorage1
Storage Output (binary) ストレージ出力(バイナリ) im_writeBinaryToStorage1

Generate Image タスクのマッピング設定

画像生成タスク マッピング設定

入力プロンプトと API キーを画像生成ユーザ定義タスクにマッピングします。

  • 入力 - prompt」 → 「im_generateImage1 - body.prompt
  • 定数 - API_KEY」 → 「im_generateImage1 - apiKey

body.size(生成画像のサイズ)はマッピングしていないため、モデルのデフォルト値が適用されます。サイズを指定したい場合は、Azure OpenAI のドキュメントで指定可能な値を確認し、定数またはフロー変数でマッピングしてください。

apiKey はリクエストヘッダー Authorization: Bearer ${apiKey} に展開されます。

その他のタスクのマッピング設定を含む完成サンプルは、im_cookbook_274977_accel_studio_application.zip です。
「サイトマップ」→「Accel Studio」→「アプリケーション管理」→「インポート」からインポートしてご利用ください。

この完成サンプルには、フロー定義と IM-BloomMaker の画面資材などが含まれています。インポート後に、ユーザがプロンプトを入力して画像を生成・表示できる画面を確認できます。

種別 ID 備考
画面コンテンツ im-bloommaker://contents/im_cookbook_274977_screen_image_generation 画像生成画面
画面URL im-bloommaker://routes/im_cookbook_274977_screen_image_generation 画像生成画面のルーティング定義
APIのURL(POST) im-logic://routes/im_cookbook_274977_flow_image_generation_using_user_definition/POST 画像生成フローのルーティング定義
APIのURL(GET) im-logic://routes/im_cookbook_274977_flow_image_generation_using_user_definition_get_storage_flow/GET 画像ストレージ取得フローのルーティング定義
ロジックフロー im-logic://flows/im_cookbook_274977_flow_image_generation_using_user_definition 画像生成フロー(本cookbookはこちらの作成方法を紹介しています。)
ロジックフロー im-logic://flows/im_cookbook_274977_flow_image_generation_using_user_definition_get_storage_flow ストレージに保存した画像を取得するフロー
ロジックフロー im-logic://flows/im_cookbook_274977_flow_image_generation_using_user_definition_get_storage_flow ストレージに保存した画像を取得するフロー
ユーザ定義(REST) im_cookbook_274977_user_definition_image_generation 画像生成ユーザ定義(本cookbookはこちらの作成方法を紹介しています。)

画像生成画面の構成イメージ

画面の構築手順と設定の考え方は IM-Copilot画像生成アクションの活用:誰でも簡単に使える画像生成画面の構築 と同様です。詳細が必要な場合は、あわせてご参照ください。

参考情報

このCookBook では gpt-image-1-mini を例に解説していますが、他のモデルを利用したい場合は、そのモデルの API 仕様(エンドポイントのパス・クエリパラメーター・リクエストボディの構造など)に合わせて REST ユーザ定義タスクを変更することで、同様の仕組みで利用できる可能性があります。各モデルの API 仕様については、ご利用の生成 AI サービスのドキュメントをご確認ください。