⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、
英語版を参照してください。
DifyのAPIを使用すると、AI インフラストラクチャを一から構築することなく、既存のアプリケーションにAI機能を統合できます。カスタムユーザーエクスペリエンスを作成する柔軟性と、大規模言語モデルの全ての機能を利用できます。
Dify APIを使用する理由
バックエンドの複雑さをスキップ
AIインフラストラクチャを管理することなく、フロントエンドアプリから直接大規模言語モデル機能にアクセス
ビジュアルアプリ管理
AIの動作を視覚的に設計・更新—変更は全てのAPIコンシューマーに即座に反映
プロバイダーの柔軟性
コード変更なしでAIプロバイダーを切り替え、APIキーを一元管理
組み込み監視機能
ログ、分析、ユーザーアクティビティ追跡を標準で提供
API統合の仕組み
- アプリを構築 — 必要なAI機能を備えたアプリをDify Studioで作成
- API認証情報を生成 — アプリの機能に安全にアクセスするための認証情報を生成
- APIを呼び出し — アプリケーションからAPIを呼び出してAIによる応答を取得
- ユーザーとの対話 — ユーザーはカスタムインターフェースと対話し、DifyがAI処理を担当
あなたのAPIは、Difyアプリのすべての機能(プロンプト、知識ベース、ツール、モデル設定)を自動的に継承します。
開始方法
API設定にアクセス
アプリで、左サイドバーのAPI Accessに移動します。
API認証情報を作成
統合用の新しい認証情報を生成します。異なる環境やユーザー向けに複数のキーを作成できます。
ドキュメントを確認
Difyはアプリの設定に特化した完全なAPIドキュメントを生成します。
アプリに実装
提供されたサンプルを使用してAPI呼び出しをアプリケーションに統合します。
フロントエンドコードやクライアントサイドリクエストでAPIキーを公開しないでセキュリティを維持するため、必ずバックエンドからDify APIを呼び出してください。
APIセキュリティ
認証情報管理:
- 開発、ステージング、本番環境で別々のAPIキーを作成
- キーを定期的にローテーションし、未使用の認証情報を取り消し
- API使用量を監視して異常なアクティビティを検出
ベストプラクティス:
- バックエンドでAPIキーを環境変数として保存
- 過度な使用を防ぐため、自分の側でレート制限を実装
- Dify APIに転送する前にリクエスト検証を追加
- デバッグと監視のためにAPI呼び出しをログに記録
テキスト生成アプリケーション
これらのアプリケーションは、completion-messages APIを呼び出し、ユーザー入力を送信して生成されたテキスト結果を取得することで、記事、要約、翻訳などの高品質なテキストを生成するために使用されます。テキスト生成に使用されるモデルパラメーターとプロンプトテンプレートは、開発者がDifyプロンプト編集ページで行った設定に依存します。
このアプリケーションのAPIドキュメントとリクエストサンプルは、アプリケーション -> APIアクセスで確認できます。
例えば、以下はテキスト生成APIを呼び出すサンプルです:
curl --location --request POST 'https://api.dify.ai/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 = "https://api.dify.ai/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が生成されたら、将来のAPI呼び出しでDifyボットとの対話の継続性を確保するためにこのconversation_idを含める必要があります。以は無視されます。進行中の対話ではquery`のみが処理されます。
- 動的変数の管理: セッション中にロジックや変数を変更する必要がある場合、会話変数(セッション固有の変数)を使用してボットの動作や応答を調整できます。
このアプリケーションのAPIドキュメントとリクエストサンプルは、アプリケーション -> APIアクセスでアクセスできます。
以下はchat-messages APIを呼び出すサンプルです:
curl --location --request POST 'https://api.dify.ai/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 = 'https://api.dify.ai/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())