Skip to content

ProcessBuilder 是一个由 AI 驱动的流程构建器,为应用提供自然语言接口,自动构建并调用应用中的功能。为开发人员提供无缝的流程构建接口,只需定义好基本的节点,剩下的交给 ProcessBuilder 。

License

Notifications You must be signed in to change notification settings

SWdrift/process-builder

Repository files navigation

ProcessBuilder

介绍

ProcessBuilder 是一个由 AI 驱动的流程构建器,旨在为应用程序提供自然语言接口,实现功能的自动构建与调用。为开发人员提供了无缝的流程构建接口,只需定义基本的节点,剩下的交给 ProcessBuilder 来处理。

  • 🤖 为应用与用户提供自然语言接口
  • 🛠️ 提供无缝的节点定义模式,便于开发
  • 🧾 可定制的流程生成策略,适配不同开发领域(暂未实现)

安装

包管理器

使用npm安装:

npm install process-builder

安装后可以使用 importrequire 引入模块。

ES 模块:

import { AgentWenxin, ProcessContainer } from "process-builder";

CommonJS 模块:

const { AgentWenxin, ProcessContainer } = require("process-builder");

例子

import { AgentWenxin, ProcessContainer } from "process-builder";
// const { AgentWenxin, ProcessContainer } = require("process-builder");  // 也可以使用 CommonJS 模块


// 1. 创建 ProcessContainer 实例

// 使用默认的 IAgentApi 实现
const agent = new AgentWenxin({
    accessToken: "你的 access token",
    // 其他配置项
});
// 实例化 ProcessContainer 对象
const processContainer = new ProcessContainer({ agent });


// 2. 定义一些函数与常量

function add(a: number, b: number): number {
    return a + b;
}

function subtract(a: number, b: number): number {
    return a - b;
}

const pi = 3.14159;


// 3. 将函数与常量注册到 ProcessContainer 中

processContainer.manager.registerFunction(add, {
    name: "add",
    description: "将两数相加 a+b",
    parameters: {
        type: "object",
        properties: {
            a: {
                type: "number",
                description: "数字1"
            },
            b: {
                type: "number",
                description: "数字2"
            }
        }
    },
    responses: {
        type: "object",
        properties: {
            result: {
                type: "number",
                description: "两数相加的结果"
            }
        }
    }
});

processContainer.manager.registerFunction(subtract, {
    name: "subtract",
    description: "将两数相减 a-b",
    parameters: {
        type: "object",
        properties: {
            a: {
                type: "number",
                description: "数字1"
            },
            b: {
                type: "number",
                description: "数字2"
            }
        }
    },
    responses: {
        type: "object",
        properties: {
            result: {
                type: "number",
                description: "两数相减的结果"
            }
        }
    }
});

processContainer.manager.registerConstant(pi, {
    name: "pi",
    description: "圆周率PI",
    define: {
        type: "number"
    }
});


// 4. 根据自然语言生成并执行流程

(async () => {
    // 发送消息,使用自然语言
    const processResult1 = await processContainer.chat.send(
        "PI与自身二倍的差是多少?"
    );
    console.log(processResult1);

    // 执行流程
    const processResult2 = processContainer.manager.performProcess();
    console.log(processResult2);
})();

注意:

  1. 请替换 你的 access token 为你自己的 access token。
  2. 如果使用默认 IAgentApi 实现,请确保 CORS 已正确配置。

API

ProcessContainer
方法/属性 传入参数 返回值 描述
constructor(config: IModuleConfig) IModuleConfig 对象 ProcessContainer 实例 构造函数,初始化 ProcessContainer 实例
manager void FlowManager 实例
chat void FlowChat 实例
getManager() FlowManager 实例 获取 FlowManager 实例
getChat() FlowChat 实例 获取 FlowChat 实例
IModuleConfig
方法/属性 传入参数 返回值 描述
agent IAgentApi 对象 配置项,指定使用的 Agent API,可以引入默认实现。
language EnumLanguage 指定语言环境,默认 EnumLanguage.ZN_CH
FlowManager
方法/属性 传入参数 返回值 描述
performProcess() boolean(是否成功) 从流程队列中取出流程并执行当前流程,返回是否成功
addProcess(processString: string | object) 流程字符串或流程对象 void 添加流程字符串或流程对象
registerNode(target: T, define: UseNodeDefine) 目标对象,节点定义 void 注册节点,包括方法和常量
registerFunction(target: T, describe: SubFunctionDefine) 方法对象,方法描述对象 void 注册方法节点
registerConstant(target: T, describe: SubConstantDefine) 常量对象,常量描述对象 void 注册常量节点
getNodeByName(name: string) 节点 ID(字符串) IEntNode(节点对象)或 undefine(如果未找到) 根据 节点 获取节点
getAllNodes() IEntNode[](节点对象数组) 获取所有节点
FlowChat
方法/属性 传入参数 返回值 描述
sessionHistory IEntSession[](会话数组) 会话历史记录,包含提问和回答
send(text: string) 发送的消息(字符串) Promise(响应会话)或 null 发送消息,返回消息响应

开发

拉取代码:

git clone https://github.com/SWdrift/process-builder.git
cd process-builder

安装依赖:

pnpm install

运行测试:

pnpm test

TODO List

  • 多语言支持
  • 规范化函数描述格式
  • 更多 IAgentApi 实现
  • 完善错误处理机制,实现闭环控制
  • 可配置规则引擎

关于

协议

MIT

About

ProcessBuilder 是一个由 AI 驱动的流程构建器,为应用提供自然语言接口,自动构建并调用应用中的功能。为开发人员提供无缝的流程构建接口,只需定义好基本的节点,剩下的交给 ProcessBuilder 。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published