From 9e90dee8b9263d97c59de1dad8eb18d72098a0ba Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Tue, 12 Nov 2024 15:45:32 +0800 Subject: [PATCH] Update index.md --- docs/zh/06-advanced/06-TDgpt/06-dev/index.md | 23 +++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/06-dev/index.md b/docs/zh/06-advanced/06-TDgpt/06-dev/index.md index 881e173dda..377d63552a 100644 --- a/docs/zh/06-advanced/06-TDgpt/06-dev/index.md +++ b/docs/zh/06-advanced/06-TDgpt/06-dev/index.md @@ -2,10 +2,14 @@ title: "算法开发者指南" sidebar_label: "算法开发者指南" --- -TDgpt 是一个开放的、可升级部署扩展算法的平台。 -本节说明如何将自己开发的预测算法和异常检测算法整合到 TDengine 分析平台,并能够通过 SQL 语句进行调用。 +TDgpt 是一个可扩展的时序数据高级分析平台,用户仅按照简易的步骤就能将新分析算法添加到分析平台中。将开发完成的算法代码文件放入对应的目录文件夹,然后重启 Anode 即可完成扩展升级。Anode 启动后会自动加载特定目录的分析算法。用户可以直接使用 SQL 语句调用添加到 TDgpt 系统中的分析算法。得益于 TDgpt 与 taosd 的松散耦合关系,分析平台升级对 taosd 完全没有影响。应用系统也不需要做任何更改就能够完成分析功能和分析算法的升级。 + +这种方式能够按需扩展新分析算法,极大地拓展了 TDgpt 适应的范围,用户可以将契合业务场景开发的(预测、异常检测)分析算法嵌入到 TDgpt,并通过 SQL 语句进行调用。在不更改或更改非常少的应用系统代码的前提下,就能够快速完成分析功能的平滑升级。 + +本节说明如何将预测算法和异常检测算法添加到 TDengine 分析平台。 ## 目录结构 +首先需要了解TDgpt的目录结构。其主体目录结构如下图: ```bash . @@ -25,19 +29,20 @@ TDgpt 是一个开放的、可升级部署扩展算法的平台。 |目录|说明| |---|---| -|taos|Python 源代码目录,其下包含了算法具体保存目录 algo,放置杂项目录 misc,单元测试和集成测试目录 test。 algo 目录下 ad 放置异常检测算法代码,fc 放置预测算法代码| +|taos|Python 源代码目录,其下包含了算法具体保存目录 algo,放置杂项目录 misc,单元测试和集成测试目录 test。 algo 目录下 ad 保存异常检测算法代码,fc 目录保存预测算法代码| |script|是安装脚本和发布脚本放置目录| |model|放置针对数据集完成的训练模型| |cfg|配置文件目录| ## 约定与限制 -定义异常检测算法的 Python 代码文件需放在 /taos/algo/ad 目录中,预测算法 Python 代码文件需要放在 /taos/algo/fc 目录中,以确保系统启动的时候能够正常加载对应目录下的 Python 文件。 +- 异常检测算法的 Python 代码文件需放在 `./taos/algo/ad` 目录中 +- 预测算法 Python 代码文件需要放在 `./taos/algo/fc` 目录中 ### 类命名规范 -算法类的名称需要以下划线开始,以 Service 结尾。例如:_KsigmaService 是 KSigma 异常检测算法的实现类。 +由于算法采用自动加载,因此其只识别按照特定命名方式的类。算法类的名称需要以下划线开始,以 Service 结尾。例如:_KsigmaService 是 KSigma 异常检测算法类。 ### 类继承约定 @@ -47,9 +52,15 @@ TDgpt 是一个开放的、可升级部署扩展算法的平台。 ### 类属性初始化 每个算法实现的类需要静态初始化两个类属性,分别是: -- `name`:触发调用的关键词,全小写英文字母 +- `name`:触发调用的关键词,全小写英文字母。该名称也是通过 `SHOW` 命令查看可用分析算法是显示的名称。 - `desc`:算法的描述信息 +```SQL +--- algo 后面的参数 algo_name 即为类名称 `name` +SELECT COUNT(*) FROM foo ANOMALY_DETECTION(col_name, 'algo=algo_name') +``` + + ### 核心方法输入与输出约定 `execute` 是算法处理的核心方法。调用该方法的时候,`self.list` 已经设置好输入数组。