文档管理中心
您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明
指南与API参考API参考应用框架ArkData(方舟数据管理)ArkTS API@ohos.data.intelligence (智慧数据平台)

@ohos.data.intelligence (智慧数据平台)

Phone15+PC/2in115+Tablet15+TV19+Wearable18+

智慧数据平台(ArkData Intelligence Platform,AIP)提供端侧数据智慧化构建,使应用数据向量化,通过嵌入模型将非结构化的文本、图像等多模态数据,转换成具有语义的向量。

说明

本模块首批接口从API version 15开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

收起
自动换行
深色代码主题
复制
  1. import { intelligence } from '@kit.ArkData';

intelligence.getTextEmbeddingModel

Phone26.0.0+PC/2in115+Tablet26.0.0+

getTextEmbeddingModel(config: ModelConfig): Promise<TextEmbedding>

获取文本嵌入模型。使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 在API版本26.0.0之前,该接口在PC/2in1设备中可正常调用,在其他设备类型中返回801错误码;从API版本26.0.0开始,该接口在PC/2in1、Phone和Tablet设备中可正常调用,在其他设备类型中返回801错误码。

参数:

展开
参数名 类型 必填 说明
config ModelConfig 嵌入模型的配置信息。

返回值:

展开
类型 说明
Promise<TextEmbedding> Promise对象,返回文本嵌入模型对象。

错误码:

以下错误码的详细介绍请参见通用错误码智慧数据平台错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
31300000 Inner error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. let textConfig: intelligence.ModelConfig = {
  3. version: intelligence.ModelVersion.BASIC_MODEL,
  4. isNpuAvailable: false,
  5. cachePath: "/data"
  6. }
  7. let textEmbedding: intelligence.TextEmbedding;
  8. intelligence.getTextEmbeddingModel(textConfig)
  9. .then((data: intelligence.TextEmbedding) => {
  10. console.info("Succeeded in getting TextModel");
  11. textEmbedding = data;
  12. })
  13. .catch((err: BusinessError) => {
  14. console.error("Failed to get TextModel and code is " + err.code);
  15. })

intelligence.getSupportedCloudModel

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+

getSupportedCloudModel(): Promise<Array<CloudModelInfo>>

获取支持的云侧模型信息。使用Promise异步回调。

起始版本: 26.0.0

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 该接口在PC/2in1、Phone和Tablet设备中可正常调用,在其他设备类型中返回801错误码。

模型约束: 此接口仅可在Stage模型下使用。

返回值:

展开
类型 说明
Promise<Array<CloudModelInfo>> Promise对象,返回支持的云侧模型信息。

示例:

收起
自动换行
深色代码主题
复制
  1. intelligence.getSupportedCloudModel()
  2. .then((info: Array<intelligence.CloudModelInfo>) => {
  3. console.info("Succeeded in getting CloudModelInfo");
  4. });

intelligence.getImageEmbeddingModel

PC/2in115+

getImageEmbeddingModel(config: ModelConfig): Promise<ImageEmbedding>

获取图像嵌入模型。使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 该接口在PC/2in1设备中可正常调用,在其他设备类型中返回801错误码。

参数:

展开
参数名 类型 必填 说明
config ModelConfig 嵌入模型的配置信息。

返回值:

展开
类型 说明
Promise<ImageEmbedding> Promise对象,返回图像嵌入模型对象。

错误码:

以下错误码的详细介绍请参见通用错误码智慧数据平台错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
31300000 Inner error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. let imageConfig: intelligence.ModelConfig = {
  3. version: intelligence.ModelVersion.BASIC_MODEL,
  4. isNpuAvailable: false,
  5. cachePath: "/data"
  6. }
  7. let imageEmbedding: intelligence.ImageEmbedding;
  8. intelligence.getImageEmbeddingModel(imageConfig)
  9. .then((data: intelligence.ImageEmbedding) => {
  10. console.info("Succeeded in getting ImageModel");
  11. imageEmbedding = data;
  12. })
  13. .catch((err: BusinessError) => {
  14. console.error("Failed to get ImageModel and code is " + err.code);
  15. })

intelligence.splitText

PC/2in115+

splitText(text: string, config: SplitConfig): Promise<Array<string>>

获取文本的分块。使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 该接口在PC/2in1设备中可正常调用,在其他设备类型中返回801错误码。

参数:

展开
参数名 类型 必填 说明
text string 用于分块的文本,可取任意值。
config SplitConfig 文本分块的配置信息。

返回值:

展开
类型 说明
Promise<Array<string>> Promise对象,返回分块结果的数组对象。

错误码:

以下错误码的详细介绍请参见通用错误码智慧数据平台错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
31300000 Inner error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. let splitConfig: intelligence.SplitConfig = {
  3. size: 10,
  4. overlapRatio: 0.1
  5. }
  6. let splitText = 'text';
  7. intelligence.splitText(splitText, splitConfig)
  8. .then((data: Array<string>) => {
  9. console.info("Succeeded in splitting Text");
  10. })
  11. .catch((err: BusinessError) => {
  12. console.error("Failed to split Text and code is " + err.code);
  13. })

ModelConfig

Phone15+PC/2in115+Tablet15+

管理嵌入模型的配置信息。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

展开
名称 类型 只读 可选 说明
version ModelVersion 模型的版本。
isNpuAvailable boolean 指示是否使用NPU加速向量化过程,true表示使用,false表示不使用。如果设备不支持NPU,调用加载模型会失败,并抛出错误码31300000。
cachePath string 如果使用NPU进行加速,则需要本地路径进行模型缓存。格式为/xxx/xxx/xxx,xxx为路径地址,例如"/data"。长度上限为512个字符。默认值为""。
modelInfo CloudModelInfo

云侧模型类型和版本信息,在使用文本向量模型时配置,通过getSupportedCloudModel接口获取支持的模型信息,默认值为空。

起始版本: 26.0.0

模型约束: 此接口仅可在Stage模型下使用。

networkPolicy NetworkPolicy

下载云侧模型的网络策略,在使用文本向量模型时配置,默认值为WIFI_ONLY。

起始版本: 26.0.0

模型约束: 此接口仅可在Stage模型下使用。

ModelVersion

Phone15+PC/2in115+Tablet15+

模型版本枚举。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

展开
名称 说明
BASIC_MODEL 0 基本嵌入模型版本。

CloudModelInfo

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+

云侧模型的配置信息,在使用云侧文本向量模型时配置,可通过getSupportedCloudModel接口获取当前设备支持的云侧模型信息。

起始版本: 26.0.0

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

模型约束: 此接口仅可在Stage模型下使用。

展开
名称 类型 只读 可选 说明
modelType string

模型类型名称。如:

“arkdata_text_embedding”:云侧文本向量模型。

modelVersionCode string 模型版本,默认值为空。

NetworkPolicy

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+

下载云侧模型的网络策略枚举。

起始版本: 26.0.0

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

模型约束: 此接口仅可在Stage模型下使用。

展开
名称 说明
WIFI_ONLY 0 仅在wifi状态下下载模型。
WIFI_AND_CELLULAR 1 在wifi和蜂窝网络状态下下载模型。

Image

Phone15+PC/2in115+Tablet15+TV19+Wearable18+

type Image = string

表示图片的URI地址,对应为string类型。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core

展开
类型 说明
string 图片的URI地址。长度上限为512个字符。

SplitConfig

Phone15+PC/2in115+Tablet15+

管理文本分块的配置信息。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

展开
名称 类型 只读 可选 说明
size number 分块的最大大小,取值为非负整数。
overlapRatio number 相邻分块之间的重叠比率。范围为[0,1],0表示重叠比率最低,1表示重叠比率最高。

TextEmbedding

Phone15+PC/2in115+Tablet15+

描述多模态嵌入模型的文本嵌入函数。

下列接口都需先使用intelligence.getTextEmbeddingModel获取到TextEmbedding实例,再通过此实例调用对应接口。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 该接口在PC/2in1、Phone和Tablet设备中可正常调用,在其他设备类型中返回801错误码。

loadModel

Phone26.0.0+PC/2in115+Tablet26.0.0+

loadModel(): Promise<void>

加载文本嵌入模型。使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 在API版本26.0.0之前,该接口在PC/2in1设备中可正常调用,在其他设备类型中返回801错误码;从API版本26.0.0开始,该接口在PC/2in1、Phone和Tablet设备中可正常调用,在其他设备类型中返回801错误码。

返回值:

展开
类型 说明
Promise<void> 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码智慧数据平台错误码

展开
错误码ID 错误信息
801 Capability not supported.
31300000 Inner error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. textEmbedding.loadModel()
  3. .then(() => {
  4. console.info("Succeeded in loading Model");
  5. })
  6. .catch((err: BusinessError) => {
  7. console.error("Failed to load Model and code is " + err.code);
  8. })

releaseModel

Phone26.0.0+PC/2in115+Tablet26.0.0+

releaseModel(): Promise<void>

释放文本嵌入模型。使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 在API版本26.0.0之前,该接口在PC/2in1设备中可正常调用,在其他设备类型中返回801错误码;从API版本26.0.0开始,该接口在PC/2in1、Phone和Tablet设备中可正常调用,在其他设备类型中返回801错误码。

返回值:

展开
类型 说明
Promise<void> 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码智慧数据平台错误码

展开
错误码ID 错误信息
801 Capability not supported.
31300000 Inner error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. textEmbedding.releaseModel()
  3. .then(() => {
  4. console.info("Succeeded in releasing Model");
  5. })
  6. .catch((err: BusinessError) => {
  7. console.error("Failed to release Model and code is " + err.code);
  8. })

getEmbedding

Phone26.0.0+PC/2in115+Tablet26.0.0+

getEmbedding(text: string): Promise<Array<number>>

获取给定文本的嵌入向量。使用Promise异步回调。

该接口需先调用loadModel加载嵌入模型,加载成功后调用getEmbedding。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 在API版本26.0.0之前,该接口在PC/2in1设备中可正常调用,在其他设备类型中返回801错误码;从API版本26.0.0开始,该接口在PC/2in1、Phone和Tablet设备中可正常调用,在其他设备类型中返回801错误码。

参数:

展开
参数名 类型 必填 说明
text string 嵌入模型的输入文本。长度上限为512个字符。

返回值:

展开
类型 说明
Promise<Array<number>> Promise对象,返回向量化结果的数组对象。

错误码:

以下错误码的详细介绍请参见通用错误码智慧数据平台错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
31300000 Inner error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. textEmbedding.loadModel();
  3. let text = 'text';
  4. textEmbedding.getEmbedding(text)
  5. .then((data: Array<number>) => {
  6. console.info("Succeeded in getting Embedding");
  7. })
  8. .catch((err: BusinessError) => {
  9. console.error("Failed to get Embedding and code is " + err.code);
  10. })

getEmbedding

Phone26.0.0+PC/2in115+Tablet26.0.0+

getEmbedding(batchTexts: Array<string>): Promise<Array<Array<number>>>

获取给定批次文本的嵌入向量。使用Promise异步回调。

该接口需先调用loadModel加载嵌入模型,加载成功后调用getEmbedding。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 在API版本26.0.0之前,该接口在PC/2in1设备中可正常调用,在其他设备类型中返回801错误码;从API版本26.0.0开始,该接口在PC/2in1、Phone和Tablet设备中可正常调用,在其他设备类型中返回801错误码。

参数:

展开
参数名 类型 必填 说明
batchTexts Array<string> 嵌入模型的文本输入批次。单个文本长度上限为512个字符。

返回值:

展开
类型 说明
Promise<Array<Array<number>>> Promise对象,返回向量化结果的数组对象。

错误码:

以下错误码的详细介绍请参见通用错误码智慧数据平台错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
31300000 Inner error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. textEmbedding.loadModel();
  3. let batchTexts = ['text1', 'text2'];
  4. textEmbedding.getEmbedding(batchTexts)
  5. .then((data: Array<Array<number>>) => {
  6. console.info("Succeeded in getting Embedding");
  7. })
  8. .catch((err: BusinessError) => {
  9. console.error("Failed to get Embedding and code is " + err.code);
  10. })

ImageEmbedding

PC/2in115+

描述多模态嵌入模型的图像嵌入函数。

下列接口都需先使用intelligence.getImageEmbeddingModel获取到ImageEmbedding实例,再通过此实例调用对应接口。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

loadModel

PC/2in115+

loadModel(): Promise<void>

加载图像嵌入模型。使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 该接口在PC/2in1设备中可正常调用,在其他设备类型中返回801错误码。

返回值:

展开
类型 说明
Promise<void> 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码智慧数据平台错误码

展开
错误码ID 错误信息
801 Capability not supported.
31300000 Inner error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. imageEmbedding.loadModel()
  3. .then(() => {
  4. console.info("Succeeded in loading Model");
  5. })
  6. .catch((err: BusinessError) => {
  7. console.error("Failed to load Model and code is " + err.code);
  8. })

releaseModel

PC/2in115+

releaseModel(): Promise<void>

释放图像嵌入模型。使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 该接口在PC/2in1设备中可正常调用,在其他设备类型中返回801错误码。

返回值:

展开
类型 说明
Promise<void> 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码智慧数据平台错误码

展开
错误码ID 错误信息
801 Capability not supported.
31300000 Inner error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. imageEmbedding.releaseModel()
  3. .then(() => {
  4. console.info("Succeeded in releasing Model");
  5. })
  6. .catch((err: BusinessError) => {
  7. console.error("Failed to release Model and code is " + err.code);
  8. })

getEmbedding

PC/2in115+

getEmbedding(image: Image): Promise<Array<number>>

获取给定图像的嵌入向量。使用Promise异步回调。

该接口需先调用loadModel加载嵌入模型,加载成功后调用getEmbedding。

系统能力: SystemCapability.DistributedDataManager.DataIntelligence.Core

设备行为差异: 该接口在PC/2in1设备中可正常调用,在其他设备类型中返回801错误码。

参数:

展开
参数名 类型 必填 说明
image Image 嵌入模型输入图像的URI地址。

返回值:

展开
类型 说明
Promise<Array<number>> Promise对象,返回向量化结果的数组对象。

错误码:

以下错误码的详细介绍请参见通用错误码智慧数据平台错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
31300000 Inner error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. imageEmbedding.loadModel();
  3. let image = 'file://<packageName>/data/storage/el2/base/haps/entry/files/xxx.jpg';
  4. imageEmbedding.getEmbedding(image)
  5. .then((data: Array<number>) => {
  6. console.info("Succeeded in getting Embedding");
  7. })
  8. .catch((err: BusinessError) => {
  9. console.error("Failed to get Embedding and code is " + err.code);
  10. })