Skip to main content

算法服务开发

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

介绍

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

开发步骤

1. 创建项目

  1. 创建项目C#控制台程序
  2. 创建 Programs.cs 文件

2. 引入SDK

  1. 添加nuget包,详细步骤见Dotnet sdk介绍-使用方式
  2. 引用命名空间
    using AiriotSDK.Data;
using AiriotSDK.Algorithm;
using AiriotSDK.Tools;

3. 定义schema

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

4. 实现算法接口

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

/// <summary>
/// 算法服务接口
/// </summary>
public interface IService
{
/// <summary>
/// 执行方法
/// </summary>
/// <param name="app"></param>
/// <param name="bytes"></param>
/// <returns></returns>
CommResult Run(IAlgorithmApp app, byte[] bytes);

/// <summary>
/// 获取Schema
/// </summary>
/// <param name="app"></param>
/// <returns></returns>
CommResult Schema(IAlgorithmApp app);
}

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

5. 配置算法

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

algorithmGrpc:
host: 算法管理服务地址
port: 算法管理服务端口

algorithm:
id: 算法唯一标识
name: 算法显示名称

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

algorithmGrpc:
host: 127.0.0.1
port: 9236

algorithm:
id: testDotnetAlgorithm
name: 测试算法

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

algorithm:
id: testDotnetAlgorithm
name: 测试算法