投稿する
📚 Bolt・Difyで作るAIアプリケーション開発講座

Bolt x Difyで学ぶ!API連携実践入門

オンライン学習動画の第2回目として、DifyのバックエンドAPIをBolt.new等のフレームワークで活用するための基礎知識とエラー対処法を解説します。

学習ポイント

  • APIの基本用語(エンドポイント、メソッド、ステータスコード)とLMMへの指示精度向上
  • DifyのバックエンドAPIをBolt等で利用するメリットと具体的な接続手順
  • ネットワークタブを活用したAPI通信のエラー確認方法とデバッグのコツ

本日のゴール

アジェンダ

前提:前回と同じアプリ、リーガルチェックを利用して、アプリを作成します。

ワークフローも説明したいので、https://dev-app.myuuu.co.jp/app/83ee683a-61dd-4fe6-813b-778984750ca8/workflowで説明をする。

  1. ウォームアップ(前回のおさらい)と今日のゴールを説明(5分)

  2. API超入門:DifyBackendAPIに使われている技術を理解しよう(5分)

  3. ハンズオン①:自分で作ったDifyアプリをChatflowに接続してみよう(20分)

  4. ハンズオン②:チャットの返信をストリーミングにしてみよう(10分)

  5. 開発者ツールを使ってエラーの見方を覚えよう(10分)

  6. 質問タイム(10分)

ウォームアップ(前回のおさらい)と今日のゴールを説明

前回はDifyバックエンドAPIを「おまじない」として触れましたが、今回はそのプロンプト部分を詳しく解説します。ゴールは、API仕様を理解しプロンプトを自在に扱えるようになること、そしてプレビューURL取得後の通知ログ確認ができるようになることです。実装では、初期表示メッセージやUI要件(入力欄・送信ボタン・エラーバナーなど)、localStorageに保存するuserIdやconversationId、HTTPリクエストヘッダの設定方法を整理。特にマルチターン送信ルール(初回はblockingでconversation_id取得、以降は同IDで継続、SSE利用で逐次受信)が重要なポイントとして説明していこうと思います。

# 簡易リーガルチェック用チャットWEB — 実装フォーマットプロンプト ## 1) ゴール
PC向けのシンプルなチャットUIを作る。
Dify互換のマルチターンAPIを直接叩く(HTTP/1.1、末尾スラなし)。
--- ## 2) 初期表示(UIのみ・リクエスト送信不要)
左側(ボット側)吹き出しとして、以下をページロード時に自動表示する:

> こんにちは。契約書チェックAIです。ご依頼ありがとうございます。ご提示いただいた「Dify契約書チェックBot\_基準ドキュメント v1.0」に基づき、契約書のレビューを行う準備が整っております。お手数ですが、レビューをご希望の契約書全文をこちらのチャットにお送りください。 --- ## 3) UI要件(最低限) 初期案内メッセージを1件(ボット側) 入力欄 + 送信ボタン + 送信中インジケータ
エラーバナー(400 / 404 / 429 / 5xx を1行で表示)

localStorage と state に以下を保持:

userId(初回生成・以後固定)
conversationId(1ターン目の応答から取得)
--- ## 4) 送信先・ヘッダ・認証
URL:https://dev-app.myuuu.co.jp/v1/chat-messages

APP_TOKEN="app-LBWMkypvBNYnel75b4XkTdnM"

HTTPヘッダ:

Authorization: Bearer <APP_TOKEN>(必須)
Content-Type: application/json
(SSE時のみ)Accept: text/event-stream
--- ## 5) マルチターン送信ルール(最重要)
1ターン目:response_mode: "blocking" で呼び出し、返却JSONの conversation_id を取得して保持。
2ターン目以降:毎回 同じ user と conversation_id を指定。inputs は毎回必須(空でも {} を送る)。
ファイル:フロントでテキスト抽出→ inputs.document_text に貼る、または別APIにアップロード→参照情報を inputs に含める。
SSE:response_mode: "streaming" + Accept: text/event-stream で逐次受信。

DifyBackendAPIに使われている技術を理解しよう。

ハンズオン①:自分で作ったDifyアプリをChatflowに接続してみよう(20分)

ハンズオン②:チャットの返信をストリーミングにしてみよう(10分)

# 簡易リーガルチェック用チャットWEB — 実装フォーマットプロンプト 

## 1) ゴール
PC向けのシンプルなチャットUIを作る。
Dify互換のマルチターンAPIを直接叩く(HTTP/1.1、末尾スラなし)。

## 2) 初期表示(UIのみ・リクエスト送信不要)
左側(ボット側)吹き出しとして、以下をページロード時に自動表示する:

> こんにちは。契約書チェックAIです。
ご依頼ありがとうございます。
ご提示いただいた「Dify契約書チェックBot\_基準ドキュメント v1.0」に基づき、契約書のレビューを行う準備が整っております。
お手数ですが、レビューをご希望の契約書全文をこちらのチャットにお送りください。 

## 3) UI要件(最低限) 初期案内メッセージを1件(ボット側) 入力欄 + 送信ボタン + 送信中インジケータ
エラーバナー(400 / 404 / 429 / 5xx を1行で表示)

localStorage と state に以下を保持:

userId(初回生成・以後固定)
conversationId(1ターン目の応答から取得)

## 4) 送信先・ヘッダ・認証
URL:https://dev-app.myuuu.co.jp/v1/chat-messages
APP_TOKEN="app-f3IILsJLexQJWWYjr9iZqIiZ"

HTTPヘッダ:

Authorization: Bearer <APP_TOKEN>(必須)
Content-Type: application/json
Accept: text/event-stream
--- 

## 5) マルチターン送信ルール(最重要)
1ターン目:response_mode: "streaming" で呼び出し、返却JSONの conversation_id を取得して保持。
2ターン目以降:毎回 同じ user と conversation_id を指定。inputs は毎回必須(空でも {} を送る)。
ファイル:フロントでテキスト抽出→ inputs.document_text に貼る、または別APIにアップロード→参照情報を inputs に含める。
response_mode: "streaming" + Accept: text/event-stream で逐次受信。

プロンプトのところをSSEと書いてある部分について言及する

# 簡易リーガルチェック用チャットWEB — 実装フォーマットプロンプト 

## 1) ゴール
PC向けのシンプルなチャットUIを作る。
Dify互換のマルチターンAPIをストリーミングで叩く(HTTP/1.1、末尾スラなし)。

## 2) 初期表示(UIのみ・リクエスト送信不要)
左側(ボット側)吹き出しとして、以下をページロード時に自動表示する:

> こんにちは。契約書チェックAIです。
ご依頼ありがとうございます。
ご提示いただいた「Dify契約書チェックBot\_基準ドキュメント v1.0」に基づき、契約書のレビューを行う準備が整っております。
お手数ですが、レビューをご希望の契約書全文をこちらのチャットにお送りください。 

## 3) UI要件(最低限) 初期案内メッセージを1件(ボット側) 入力欄 + 送信ボタン + 送信中インジケータ
エラーバナー(400 / 404 / 429 / 5xx を1行で表示)

localStorage と state に以下を保持:

userId(初回生成・以後固定)
conversationId(1ターン目の応答から取得)

## 4) 送信先・ヘッダ・認証
URL:https://dev-app.myuuu.co.jp/v1/chat-messages
APP_TOKEN="app-f3IILsJLexQJWWYjr9iZqIiZ"

HTTPヘッダ:

Authorization: Bearer <APP_TOKEN>(必須)
Content-Type: application/json
Accept: text/event-stream
--- ## 5) マルチターン送信ルール(最重要)
1ターン目:response_mode: **"streaming"** で呼び出し、返却JSONの conversation_id を取得して保持。
2ターン目以降:毎回 同じ user と conversation_id を指定。inputs は毎回必須(空でも {} を送る)。
ファイル:フロントでテキスト抽出→ inputs.document_text に貼る、または別APIにアップロード→参照情報を inputs に含める。
response_mode: "streaming" + Accept: text/event-stream で逐次受信。

サンプル

https://bolt.new/~/sb1-vqvwykww

開発者ツールを使ってエラーの見方を覚えよう(10分)

終わりに

本日はバックエンドAPIの要点を解説し、開発者ツールでフロント—バック接続のデバッグ手順を実演しました。難度は高いですが、第2回まで理解できればDifyアプリを自由にレンダリングし任意のフロントで提供・販売可能に。次回③はノート投稿のワークフローを組み込み凝ったUIを開発、④でDBと認証・課金まで仕上げ、⑤⑥でVolt経由の本格エンジニアリングへ話していきます。

来週以降もよろしくお願いします。