近期需要使用 Dify 平台通过 API 调用本地接入的 DeepSeek 模型,以下是大体的操作步骤,涵盖从模型部署到 API 集成的全流程:


一、前置条件准备

  1. 本地部署 DeepSeek 模型

    • 确保已通过 vLLMFastChatOpenAI API 兼容框架 部署 DeepSeek 模型,并验证 API 接口可用性(如 http://localhost:8000/v1)。
    • 测试接口可用性(示例):
      curl http://localhost:8000/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{
        "model": "deepseek-7b-chat",
        "messages": [{"role": "user", "content": "Hello"}]
      }'
      
  2. Dify 环境要求

    • 已部署 Dify 社区版或企业版(推荐 Docker 部署)。
    • 确保 Dify 后端服务与 DeepSeek 模型 API 网络互通(若跨容器需配置 host.docker.internal 或自定义网络)。

二、Dify 中配置 DeepSeek 模型供应商

  1. 添加自定义模型供应商

    • 登录 Dify 管理后台,进入 「设置」→「模型供应商」→「自定义模型」
    • 填写关键参数:
      供应商名称: DeepSeek-Local
      API 端点: http://host.docker.internal:8000/v1  # 根据实际部署地址调整
      认证方式: API Key(若需)  # 若模型服务启用了鉴权,填写对应密钥
      模型名称映射: deepseek-7b-chat  # 与模型服务中定义的名称一致
      
  2. 配置模型参数

    • 进入 「模型设置」,调整以下参数以适配 DeepSeek:
      Max Tokens: 4096  # 根据模型上下文长度调整
      Temperature: 0.7
      Stop Tokens: ["\n\n", "[DONE]"]  # 按需设置终止标记
      

三、应用开发与 API 调用

  1. 创建 AI 应用

    • 新建应用时选择 「自定义模型」→「DeepSeek-Local」
    • 在提示词编排中按 DeepSeek 的指令格式设计 Prompt(参考其官方文档)。
  2. 通过 API 调用应用

    • 获取应用 API 端点(位于应用「发布」页面)。
    • 调用示例(Python):
      import requests
      
      url = "https://<your-dify-domain>/v1/chat-messages"
      headers = {
          "Authorization": "Bearer <dify-api-key>",
          "Content-Type": "application/json"
      }
      data = {
          "inputs": {},
          "query": "如何实现碳中和?",
          "response_mode": "blocking"
      }
      
      response = requests.post(url, json=data, headers=headers)
      print(response.json())
      

四、高级配置(可选)

  1. 自定义请求适配器

    • 若 DeepSeek API 格式与 OpenAI 不兼容,需修改 Dify 后端代码(core/model_runtime/adapters 目录):
      # 示例:修改 chat/completions 请求格式
      def generate_chat_request(self, model: str, messages: list, **kwargs) -> dict:
          return {
              "custom_prompt": messages,
              "temperature": kwargs.get("temperature", 0.7)
          }
      
  2. 性能优化

    • 调整 .env 中的并发参数:
      WORKER_TIMEOUT=300
      API_CONCURRENCY=10
      
    • 启用流式响应(stream=True)提升用户体验。

五、故障排查

问题现象 解决方案
503 服务不可用 检查模型服务状态及网络连通性
401 认证失败 确认 API Key 和鉴权头格式正确
响应格式解析错误 验证模型输出是否符合 OpenAI 规范
长文本响应截断 调整 max_tokens 并检查模型上下文限制

六、关键注意事项

  1. API 兼容性
    • 确保 DeepSeek 的 API 接口支持 OpenAI 格式(或通过适配层转换)。
  2. 资源隔离
    • 本地模型与 Dify 部署在同一服务器时,需监控 GPU 内存和显存占用。
  3. 企业级需求
    • 如需负载均衡,可在模型服务前部署反向代理(如 Nginx)。

通过以上步骤,即可在 Dify 中实现本地 DeepSeek 模型的 API 调用。如需进一步优化响应质量,可结合 Dify 的 RAG(检索增强生成)工作流编排 功能构建复杂应用。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐