快速开始

本文档将帮助您快速上手使用 FlowGram Runtime,包括环境准备、安装配置、创建和运行工作流等内容。通过本指南,您将能够在短时间内搭建起自己的工作流运行环境并运行第一个工作流示例。

获取代码

由于 FlowGram Runtime 定位为 demo 而非 SDK,不会作为 npm 包发布,您需要通过以下步骤来获取和使用:

方式一:Fork 仓库(推荐)

  1. 访问 FlowGram Runtime 的代码仓库
  2. 点击 "Fork" 按钮创建您自己的仓库副本
  3. 克隆您 fork 的仓库到本地

方式二:直接克隆 flowgram 仓库

如果您只是想尝试使用而不需要提交更改,可以直接克隆原始仓库:

git clone git clone git@github.com:bytedance/flowgram.ai.git
cd flowgram.ai

环境准备

在开始使用 FlowGram Runtime 之前,请确保您的开发环境满足以下要求:

  • Node.js:版本 18.x 或更高版本(推荐使用 LTS 版本)
nvm install lts/hydrogen
nvm alias default lts/hydrogen # set default node version
nvm use lts/hydrogen
  • 包管理器:pnpm 9+ 与 rush 5+
npm i -g pnpm@9.12.0 @microsoft/rush@5.140.1

安装依赖和项目设置

获取代码后,需要安装依赖并进行基本设置:

  1. 安装项目依赖
rush install
  1. 构建项目
rush build

启动服务

  1. 进入运行时目录
cd packages/runtime/nodejs
  1. 启动 nodejs 服务器
npm run dev

如果一切正常,你能在控制台看到以下输出:

> Listen Port: 4000
> Server Address: http://localhost:4000
> API Docs: http://localhost:4000/docs
  1. 验证服务运行

在命令行支持 cURL 请求

curl --location 'http://localhost:4000/api/task/run' \
--header 'Content-Type: application/json' \
--data '{
  "inputs": {
      "test_input": "Hello FlowGram!"
  },
  "schema": "{\"nodes\":[{\"id\":\"start_0\",\"type\":\"start\",\"meta\":{\"position\":{\"x\":180,\"y\":0}},\"data\":{\"title\":\"Start\",\"outputs\":{\"type\":\"object\",\"properties\":{\"test_input\":{\"key\":4,\"name\":\"test_input\",\"isPropertyRequired\":true,\"type\":\"string\",\"extra\":{\"index\":0}}},\"required\":[\"test_input\"]}}},{\"id\":\"end_0\",\"type\":\"end\",\"meta\":{\"position\":{\"x\":640,\"y\":0}},\"data\":{\"title\":\"End\",\"inputsValues\":{\"test_output\":{\"type\":\"ref\",\"content\":[\"start_0\",\"test_input\"]}},\"inputs\":{\"type\":\"object\",\"properties\":{\"test_output\":{\"type\":\"string\"}}}}}],\"edges\":[{\"sourceNodeID\":\"start_0\",\"targetNodeID\":\"end_0\"}]}"
}'

此时服务所在的命令行应该会有如下输出:

> POST TaskRun - taskID:  xxxx-xxxx-xxxx-xxxx
{ test_input: 'Hello FlowGram!' }
> LOG Task finished:  xxxx-xxxx-xxxx-xxxx
{ test_output: 'Hello FlowGram!' }

接入到 FlowGram 编辑器(Web 前端)

editorProps 配置中修改 runtime 为 server 模式,并配置服务地址

createRuntimePlugin({
  // mode: 'browser', // 移除这一行
  mode: 'server',
  serverConfig: {
    domain: 'localhost',
    port: 4000,
    protocol: 'http',
  },
})

编译服务

  1. 进入运行时目录
cd packages/runtime/nodejs
  1. 编译服务
npm run build
  1. 启动 nodejs 服务器
node dist/index.js