Dify で作成したchatbotをPostman経由でテストする
最近注目を集めているDifyでOpenAIのチャットボットをノーコードで作成してそのAPIをPostmanからテストしてみます。
Dify とは
いわゆるローコードツールに分類され、複雑なコードを書かずにAIモデルの開発を行えるようにするため、ユーザーインターフェースで様々な設定が可能になっています。これにより、AIに関する専門的な知識がなくても、基本的なAIシステムの作成ができるようになります。
さっそくやってみる
1. 事前準備
まずは以下のものを準備しておきます。
・OpenAI API Key (sk-projから始まる文字列です。)
・OpenAI Organization ID (org-から始まる文字列です)
この記事ではその手順は割愛しますが、以下のサイトから入手可能です。
OpenAIは通常のキーとAPI用キーは別々に定義されています。上のAPI専用サイトからAPIキーを入手します。
2. Dify のアカウント開設
始める
をクリックします。
ログイン情報を登録してログインしてください。
ログインが成功すれば以下の画面へ遷移します。
3. OpenAIを活用した簡単なAPIの設定
画面右上のプロフィールから設定
をクリックします。
モデルプロバイダー
からOpenAI
のAPIKeyセットアップをクリックします。
先ほど入手したOpenAIのAPIキーとOrgIDを入力して保存
をクリックします。
API Base
は空欄でかまいません。
以下のようにみどりのライトがつけば設定完了です。
4. シンプルなチャットボットの作成
次に画面上部スタジオ
タブで最初から作成
をクリックします。
チャットボットを選択し、適当な名前を付け作成する
をクリックします。
簡単なテストを行ってレスポンスが戻ってきたら公開する
をクリックします。
これで今作成したチャットボットに外部からのアクセスが可能となりました。
5. APIキーの作成とPostmanからのテスト
左ペインからAPIアクセス
をクリックし、画面右のAPIキー
をクリックします。
新しいキーを作成してコピーしておきます。
次にPostmanの画面から新しいコレクションを作成します。
インポート
をクリックします。
curl -X POST 'https://api.dify.ai/v1/chat-messages' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{
"inputs": {},
"query": "こんにちは。今日は何日ですが?",
"response_mode": "blocking",
"conversation_id": "",
"user": "abc-123",
"files": [
{
"type": "image",
"transfer_method": "remote_url",
"url": "https://cloud.dify.ai/logo/logo-site.png"
}
]
}'
(Difyのマニュアルで提供されているサンプルはデフォルトではStremingモードになっています。Stremingモードとはチャットのレスポンスがストリームで戻ってきます。これをまとめた文字列としてレスポンスを入手できるよう上のサンプルではblockingモードに変更しています。)
コレクションにインポート
をクリックします。
ヘッダーで設定されている{api_key}
を先ほど入手したものに {} 毎置き換えます。
レスポンスとして以下のような値が戻ってきます。
{
"event": "message",
"task_id": "ee16565c-7206-46c2-86bd-2460ebba5531",
"id": "ea8e0feb-77eb-47a6-b547-ecd805bebdd3",
"message_id": "ea8e0feb-77eb-47a6-b547-ecd805bebdd3",
"conversation_id": "6ee66200-b19f-4c8c-b21d-f2088025b78f",
"mode": "chat",
"answer": "こんにちは。申し訳ありませんが、リアルタイムの情報にはアクセスできないため、現在の日付をお伝えすることができません。お手元のデバイスでご確認ください。",
"metadata": {
"usage": {
"prompt_tokens": 15,
"prompt_unit_price": "3.00",
"prompt_price_unit": "0.000001",
"prompt_price": "0.0000450",
"completion_tokens": 312,
"completion_unit_price": "12.00",
"completion_price_unit": "0.000001",
"completion_price": "0.0037440",
"total_tokens": 327,
"total_price": "0.0037890",
"currency": "USD",
"latency": 2.3840113366022706
}
},
"created_at": 1736570553
}
Discussion