このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
Dify アプリは、そのままバックエンド API サービスとして利用できます。
API 統合の仕組み
- アプリを構築:必要な AI 機能を備えたアプリを Dify Studio で作成します
- API 認証情報を生成:アプリの機能に安全にアクセスするための認証情報を生成します
- API を呼び出し:アプリケーションから API を呼び出して AI による応答を取得します
- ユーザーとの対話:ユーザーはカスタムインターフェースと対話し、Dify が AI 処理を担当します
開始方法
API 設定にアクセス
アプリで、左サイドバーの API Access に移動します。
API 認証情報を作成
統合用の新しい認証情報を生成します。異なる環境やユーザー向けに複数のキーを作成できます。
ドキュメントを確認
Dify は、アプリの設定に特化した完全な API ドキュメントを生成します。
アプリに実装
提供されたサンプルを使用して、API 呼び出しをアプリケーションに統合します。
API キーをフロントエンドコードやクライアントサイドのリクエストで公開しないでください。不正利用を防ぎセキュリティを維持するため、必ずバックエンドから Dify API を呼び出してください。
テキスト生成アプリケーション
これらのアプリケーションは、completion-messages API を呼び出してユーザー入力を送信し、生成されたテキスト結果を取得することで、記事、要約、翻訳などの高品質なテキストを生成します。テキスト生成に使用されるモデルパラメータとプロンプトテンプレートは、開発者が Dify のプロンプト編集ページで行った設定に依存します。
このアプリケーションの API ドキュメントとリクエストサンプルは、アプリケーション -> API アクセス で確認できます。
例えば、以下はテキスト生成 API を呼び出すサンプルです。
curl --location --request POST 'http://your-dify-host/v1/completion-messages' \
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"inputs": {},
"response_mode": "streaming",
"user": "abc-123"
}'
import requests
import json
url = "http://your-dify-host/v1/completion-messages"
headers = {
'Authorization': 'Bearer ENTER-YOUR-SECRET-KEY',
'Content-Type': 'application/json',
}
data = {
"inputs": {"text": 'Hello, how are you?'},
"response_mode": "streaming",
"user": "abc-123"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
対話型アプリケーション
対話型アプリケーションは、質問と回答の形式でユーザーとの継続的な対話を実現します。対話を開始するには、chat-messages API を呼び出します。各セッションに対して conversation_id が生成され、対話の流れを維持するために後続の API 呼び出しに含める必要があります。
重要な注意事項:サービス API は、WebApp で作成された対話を共有しません。API を通じて作成された対話は、WebApp インターフェースで作成されたものとは分離されています。
conversation_id に関する重要な考慮事項
conversation_id の生成:新しい対話を開始するときは、conversation_id フィールドを空にしてください。システムが新しい conversation_id を生成して返すので、以降の対話を継続するためにこれを使用します。
- 既存セッションでの
conversation_id の処理:conversation_id が生成されたら、Dify ボットとの対話の継続性を確保するため、以降の API 呼び出しにこの conversation_id を含める必要があります。以前の conversation_id を渡した場合、新しい inputs は無視され、進行中の対話では query のみが処理されます。
- 動的変数の管理:セッション中にロジックや変数を変更する必要がある場合は、会話変数(セッション固有の変数)を使用してボットの動作や応答を調整できます。
このアプリケーションの API ドキュメントとリクエストサンプルは、アプリケーション -> API アクセス で確認できます。
以下は chat-messages API を呼び出すサンプルです。
curl --location --request POST 'http://your-dify-host/v1/chat-messages' \
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"inputs": {},
"query": "eh",
"response_mode": "streaming",
"conversation_id": "1c7e55fb-1ba2-4e10-81b5-30addcea2276",
"user": "abc-123"
}'
import requests
import json
url = 'http://your-dify-host/v1/chat-messages'
headers = {
'Authorization': 'Bearer ENTER-YOUR-SECRET-KEY',
'Content-Type': 'application/json',
}
data = {
"inputs": {},
"query": "eh",
"response_mode": "streaming",
"conversation_id": "1c7e55fb-1ba2-4e10-81b5-30addcea2276",
"user": "abc-123"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text())