算法服务开发
本文将会详细介绍如何使用 Go SDK
开发算法服务开发.
介绍
算法服务
是扩展 算法
中的一种方式. 在平台现有的功能不满足需求时, 可以通过开发算法服务来实现自定义的功能.
开发步骤
1. 创建项目
该过程同 数据接入驱动开发-创建项目 中的创建项目过程一致.
2. 引入SDK
import (
"github.com/air-iot/sdk-go/v4/algorithm"
)
3. 定义schema
算法服务
需要定义一个 schema
用于描述算法的配置信息. schema
是一个类似于 json
格式的对象, 详细格式说明见 算法schema说明.
4. 实现算法接口
SDK
中定义了 算法服务接口
, 该接口是平台与插件交互的桥梁. 开发者需要实现这个接口.
type Service interface {
// Schema
// @description 查询schema
// @return result "算法配置schema,返回字符串"
Schema(App) (result string, err error)
// Start
// @description 启动算法服务
Start(App) error
// Run
// @description 执行算法服务
// @param bts 执行参数 {"function":"算法名","input":{}} input 算法执行参数,应与输出的schema格式相同
// @return result "自定义返回的格式,应与输出的schema格式相同"
Run(app App, bts []byte) (result interface{}, err error)
// Stop
// @description 停止算法服务
Stop(App) error
}
算法服务启动时, SDK
会连接平台的 算法服务
服务, 并接收算法服务发送的请求.
当执行该服务算法时, 会发送请求给该服务程序. SDK
接收到请求后会调用对应的方法, 并将方法的处理结果返回给算法管理.
5. 配置算法
算法配置主要是算法与平台的连接配置.
algorithmGrpc:
host: 算法管理服务地址
port: 算法管理服务端口
algorithm:
id: 算法唯一标识
name: 算法显示名称
windows系统打包发布时的算法配置
algorithmGrpc:
host: 127.0.0.1
port: 9236
algorithm:
id: testGoAlgorithm
name: 测试算法
linux系统打包发布时的算法配置
algorithm:
id: testGoAlgorithm
name: 测试算法