跳转到主要内容
⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版
Dify 的 API 让你将 AI 能力集成到现有应用程序中,而无需从零开始构建 AI 基础设施。你可以获得大型语言模型的全部功能,同时拥有创建自定义用户体验的灵活性。

为什么使用 Dify API

跳过后端复杂性

直接从前端应用访问大型语言模型能力,无需管理 AI 基础设施

可视化应用管理

可视化设计和更新 AI 行为——更改会立即同步到所有 API 消费者

提供商灵活性

在 AI 提供商之间切换并集中管理 API 密钥,无需更改代码

内置监控

开箱即用的日志、分析和用户活动跟踪

API 集成的工作原理

  1. 构建应用:在 Dify Studio 中构建具有所需 AI 能力的应用
  2. 生成 API 凭据:安全访问应用功能
  3. 调用 API:从你的应用程序调用 API 获取 AI 驱动的响应
  4. 用户交互:用户通过你的自定义界面交互,而 Dify 处理 AI 处理过程
你的 API 会自动继承 Dify 应用的所有功能——提示词、知识库、工具和模型配置。

开始使用

1

访问 API 设置

在你的应用中,导航至左侧边栏的 API Access
2

创建 API 凭据

为你的集成生成新凭据。你可以为不同环境或用户创建多个密钥。
3

查看文档

Dify 会生成针对你应用配置的完整 API 文档。
4

在应用中实现

使用提供的示例将 API 调用集成到你的应用程序中。
永远不要在前端代码或客户端请求中暴露 API 密钥。始终从后端调用 Dify API 以防止滥用并维护安全性。

API 安全

凭据管理:
  • 为开发、测试和生产环境创建独立的 API 密钥
  • 定期轮换密钥并撤销未使用的凭据
  • 监控 API 使用情况以检测异常活动
最佳实践:
  • 在后端将 API 密钥存储为环境变量
  • 在你这边实施速率限制以防止过度使用
  • 在转发到 Dify API 之前添加请求验证
  • 记录 API 调用以便调试和监控

文本生成应用

这些应用程序用于生成高质量文本,如文送用户输入来获得生成的文本结果。用于生成文本的模型参数和提示词模板取决于开发者在 Dify 提示词编排页面中的设置。 你可以在 Applications -> Access API 中找到此应用程序的 API 文档和示例请求。 例如,这里是一个调用文本生成 API 的示例:
  • cURL
  • Python
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"
}'

对话应用

对话应用通过问答格式促进与用户的持续对话。要启动对话,你需要调用 chat-messages API。每个会话都会生成一个 conversation_id,必须在后续 API 调用中包含此 ID 以维持对话流。
重要说明:服务 API 不会共享 WebApp 创建的对话。通过 API 创建的对话与在 WebApp 界面中创建的对话是隔离的。

conversation_id 的关键注意事项:

  • 生成 conversation_id 开始新对话时,将 conversation_id 字段留空。系统将生成并返回新的 conversation_id,你将在未来的交互中使用此 ID 继续对话。
  • 在现有会话中处理 conversation_id 一旦生成 conversation_id,对 API 的后续调用应包含此 conversation_id 以确保与 Dify 机器人的对话连续性。当传递之前的 conversation_id 时,任何新的 inputs 将被忽略。只有 query 会为正在进行的对话进行处理。
  • 管理动态变量: 如果需要在会话期间修改逻辑或变量,你可以使用会话变量(特定于会话的变量)来调整机器人的行为或响应。
你可以在 Applications -> Access API 中访问此应用程序的 API 文档和示例请求。 这里是一个调用 chat-messages API 的示例:
  • cURL
  • Python
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"
}'