DeckFlow Logo 开发者 DeckFlow 文档
开发者指南API 参考MCPCLI

示例

包含可运行的 API、CLI 和 MCP 代码示例,帮助您快速上手 DeckFlow 后端开发。

以下示例均基于统一的基础地址 https://app.deckflow.com/api 及请求头认证机制 Authorization: Bearer <YOUR_API_KEY>。

1. API 集成示例

通过 HTTP API 进行异步任务的提交与轮询。以下示例展示了提交一个文档生成任务,并循环轮询状态直到获取下载链接。

  const API_KEY = "Bearer <YOUR_API_KEY>";
  const BASE_URL = "https://app.deckflow.com/api";

  async function generateDeck() {
    const formData = new FormData();
    formData.append("type", "generation");
    formData.append("params", JSON.stringify({
      inputText: "生成一份关于可再生能源市场趋势的研究报告",
      pageCount: 10
    }));

    // 1. 提交生成任务
    const res = await fetch(`${BASE_URL}/tools/tasks`, {
      method: "POST",
      headers: {
        "Authorization": API_KEY
      },
      body: formData
    });
    const task = await res.json();
    console.log("任务已提交,任务 ID:", task.id);

    // 2. 轮询任务状态
    const pollInterval = setInterval(async () => {
      const statusRes = await fetch(`${BASE_URL}/tools/tasks/${task.id}`, {
        headers: {
          "Authorization": API_KEY
        }
      });
      const currentTask = await statusRes.json();
      console.log("当前任务状态:", currentTask.status);

      if (currentTask.status === "completed") {
        clearInterval(pollInterval);
        console.log("任务成功!下载链接:", currentTask.result.url);
      } else if (currentTask.status === "failed") {
        clearInterval(pollInterval);
        console.error("任务失败,错误原因:", currentTask.error.message);
      }
    }, 5000);
  }

  generateDeck();
  import time
  import requests

  API_KEY = "Bearer <YOUR_API_KEY>"
  BASE_URL = "https://app.deckflow.com/api"

  def generate_deck():
      headers = {
          "Authorization": API_KEY
      }
      data = {
          "type": "generation",
          "params": '{"inputText": "生成一份关于可再生能源市场趋势的研究报告", "pageCount": 10}'
      }

      # 1. 提交生成任务
      response = requests.post(f"{BASE_URL}/tools/tasks", headers=headers, data=data)
      task = response.json()
      task_id = task["id"]
      print(f"任务已提交,任务 ID: {task_id}")

      # 2. 轮询任务状态
      while True:
          status_response = requests.get(f"{BASE_URL}/tools/tasks/{task_id}", headers=headers)
          current_task = status_response.json()
          status = current_task["status"]
          print(f"当前任务状态: {status}")

          if status == "completed":
              print(f"任务成功!下载链接: {current_task['result']['url']}")
              break
          elif status == "failed":
              print(f"任务失败,错误原因: {current_task['error']['message']}")
              break

          time.sleep(5)

  generate_deck()

2. CLI (DeckOps) 自动化示例

DeckOps 是负责 DeckFlow 云端处理的任务命令行工具。您可以通过 CLI 快速配置并调用云端服务。

安装与配置

# 克隆并全局链接 CLI 目录 (以本地开发包为例)
git clone https://github.com/deckflow/deckops.git
cd deckops
npm install
npm link

# 配置您的 API 密钥和云端基准地址
deckops config set-token "Bearer <YOUR_API_KEY>"
deckops config set-api-base "https://app.deckflow.com/api"

命令调用示例

# 提交并运行幻灯片生成任务
deckops create --params '{"inputText":"人工智能在医疗领域的发展","pageCount":8}'

# 提交翻译任务并等待结果 (Translate)
deckops translate source_presentation.pptx --from zh --to en --timeout 180

# 运行文件压缩优化任务并获取输出
deckops compress large_archive.zip

3. MCP 智能体集成示例

在您的 AI 智能体(如 Claude Desktop)中集成 DeckFlow MCP 服务器,可让大模型自动调用文件优化、提取及生成接口。

配置文件定义

在您的桌面版配置文件中添加 DeckFlow 服务器配置:

  • macOS 路径: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows 路径: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "deckflow": {
      "command": "node",
      "args": ["/Users/tong/Downloads/Dev-Docs/heygen-docs/mcp-server/dist/index.js"],
      "env": {
        "DECKFLOW_API_KEY": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}

配置完成后,重新启动 Claude Desktop 即可在会话内直接让 Claude 执行文件处理任务。