Skip to main content

算法服务开发

本文将会详细介绍如何使用 Node SDK 开发算法服务开发.

介绍

算法服务 是扩展 算法 中的一种方式. 在平台现有的功能不满足需求时, 可以通过开发算法服务来实现自定义的功能.

开发步骤

1. 创建项目

该过程同 数据接入驱动开发-创建项目 中的创建项目过程一致.

2. 引入SDK

const {App, Algorithm} = require('@airiot/sdk-nodejs/algorithm')

3. 定义schema

算法服务 需要定义一个 schema 用于描述算法的配置信息. schema 是一个类似于 json 格式的对象, 详细格式说明见 算法schema说明.

4. 实现算法接口

SDK 中定义了 算法服务接口, 该接口是平台与插件交互的桥梁. 开发者需要实现这个接口.

class Algorithm {
/**
* @name: schema
* @msg: 查询schema
* @param app
* @param callback (err,'string') 算法配置schema,返回字符串
*/
schema(app, callback) {}

/**
* @name: run
* @msg: 执行算法服务
* @param app
* @param cfg 执行参数 {"function":"算法名","input":{}} input 算法执行参数,应与输出的schema格式相同
* @param callback (err,result) result自定义返回的格式,应与输出的schema格式相同
*/
run(app, cfg, callback) {}

/**
* @name: stop
* @msg: 停止算法服务
* @param app
* @param callback (err)
*/
stop(app, callback) {}
}

算法服务启动时, SDK 会连接平台的 算法服务 服务, 并接收算法服务发送的请求. 当执行该服务算法时, 会发送请求给该服务程序. SDK 接收到请求后会调用对应的方法, 并将方法的处理结果返回给算法管理.

5. 配置算法

算法配置主要是算法与平台的连接配置.

{
"algorithm-grpc": {
"host": "算法管理服务地址",
"port": "算法管理服务端口"
},
"logger": {
"level": "debug"
},
"algorithm": {
"id": "算法唯一标识",
"name": "算法显示名称"
}
}

windows系统打包发布时的算法配置

{
"algorithm-grpc": {
"host": "127.0.0.1",
"port": 9236
},
"algorithm": {
"id": "test",
"name": "测试算法"
}
}

linux系统打包发布时的算法配置

{
"algorithm": {
"id": "test",
"name": "测试算法"
}
}