文档管理中心

您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明。

指南与API参考API参考应用框架Data Augmentation Kit(数据增强服务)ArkTS APIknowledgeProcessor(知识加工)

knowledgeProcessor(知识加工)

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

本模块提供获取知识加工对象(KnowledgeProcessor)以及获取知识加工状态(ProcessorStatus)的能力。

由于知识加工能力依赖的嵌入模型只支持在PC/2in1部署,因此当前知识加工能力仅支持PC/2in1设备。在其他设备类型中不可用会抛出异常。

起始版本: 6.0.0(20)

导入模块

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

getKnowledgeProcessor

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

getKnowledgeProcessor(context: common.BaseContext, config: KnowledgeProcessorConfig): Promise<KnowledgeProcessor>

获取知识加工对象,用于获取知识加工状态等操作。使用promise异步回调。

在schema升级场景下,首次开库或调用getKnowledgeProcessor接口前需调用cleanKnowledgeData接口。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.0.0(20)

参数:

展开
参数名 类型 必填 说明
context common.BaseContext 是 知识加工对象的上下文。
config KnowledgeProcessorConfig 是 知识加工配置。

返回值:

展开
类型 说明
Promise<KnowledgeProcessor> Promise对象,返回知识加工对象。该对象可用于获取知识加工状态(getStatus)、启动知识加工(startProcess)和停止知识加工(stopProcess)等操作。

错误码:

展开
错误码ID 错误信息
1021400000 Internal error.
1021400001 The knowledge source is not configured.
1021400002 The knowledge schema file is not found.
1021400003 The knowledge schema content is invalid.
1021400004 An error occurred during operations on the RDB source.

示例:

收起
自动换行
深色代码主题
复制
  1. import { knowledgeProcessor } from '@kit.DataAugmentationKit';
  2. import { common } from '@kit.AbilityKit';
  3. import { relationalStore } from '@kit.ArkData';
  4. const storeName: string = "testmail_store.db";
  5. const storeConfig: relationalStore.StoreConfig = {
  6. name: storeName, // 已触发知识加工的数据库名
  7. securityLevel: relationalStore.SecurityLevel.S3,
  8. tokenizer: relationalStore.Tokenizer.CUSTOM_TOKENIZER,
  9. };
  10. const knowledgeSourceConfig: knowledgeProcessor.KnowledgeSourceConfig = {
  11. rdbSource: storeConfig,
  12. };
  13. const knowledgeProcessorConfig: knowledgeProcessor.KnowledgeProcessorConfig = {
  14. sourceConfig: knowledgeSourceConfig,
  15. };
  16. // 获取知识加工器的异步函数
  17. async function getProcessor() {
  18. const context = AppStorage.get<common.UIAbilityContext>("Context") as common.UIAbilityContext;
  19. try {
  20. // 获取知识加工对象
  21. const processor = await knowledgeProcessor.getKnowledgeProcessor(context, knowledgeProcessorConfig);
  22. return processor;
  23. } catch (err) {
  24. console.error("Error: " + err.message + " code: " + err.code);
  25. return undefined;
  26. }
  27. }

cleanKnowledgeData

Phone6.1.0(23)+PC/2in16.1.0(23)+Tablet6.1.0(23)+

cleanKnowledgeData(context: common.Context, config: KnowledgeProcessorConfig): Promise<void>

根据入参中的知识加工配置获取对应知识库信息,将对应知识库进行清空。使用promise异步回调。

在schema升级场景下,首次开库或调用getKnowledgeProcessor接口前调用cleanKnowledgeData接口,其他场景调用可能会导致知识库数据丢失或者数据损坏。

注意

在schema升级场景中,为避免数据不一致,强烈建议仅在首次开库或调用getKnowledgeProcessor接口前调用cleanKnowledgeData接口以清理旧数据。非schema升级场景下请勿调用此接口,否则可能导致已有知识库数据永久丢失或损坏,且无法恢复。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.1.0(23)

参数:

展开
参数名 类型 必填 说明
context common.Context 是 知识加工对象的上下文。
config KnowledgeProcessorConfig 是 知识加工配置。

返回值:

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

错误码:

展开
错误码ID 错误信息
1021400001 The knowledge source is not configured.

1021400002

1021400003

1021400004

The knowledge schema file is not found.

The knowledge schema content is invalid.

An error occurred during operations on the RDB source.

示例:

收起
自动换行
深色代码主题
复制
  1. import { knowledgeProcessor } from '@kit.DataAugmentationKit';
  2. import { common } from '@kit.AbilityKit';
  3. import { relationalStore } from '@kit.ArkData';
  4. const storeName: string = "testmail_store.db";
  5. const storeConfig: relationalStore.StoreConfig = {
  6. name: storeName, // 已触发知识加工的数据库名
  7. securityLevel: relationalStore.SecurityLevel.S3,
  8. tokenizer: relationalStore.Tokenizer.CUSTOM_TOKENIZER,
  9. };
  10. const knowledgeSourceConfig: knowledgeProcessor.KnowledgeSourceConfig = {
  11. rdbSource: storeConfig,
  12. };
  13. const knowledgeProcessorConfig: knowledgeProcessor.KnowledgeProcessorConfig = {
  14. sourceConfig: knowledgeSourceConfig,
  15. };
  16. // 清理知识库的异步函数
  17. async function cleanKnowledgeData() {
  18. const context = AppStorage.get<common.UIAbilityContext>("Context") as common.UIAbilityContext;
  19. try {
  20. // 清理知识库
  21. await knowledgeProcessor.cleanKnowledgeData(context, knowledgeProcessorConfig);
  22. } catch (err) {
  23. console.error("Error: " + err.message + " code: " + err.code);
  24. return undefined;
  25. }
  26. }

KnowledgeProcessorConfig

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

管理知识加工对象的配置。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.0.0(20)

展开
名称 类型 必填 说明
sourceConfig KnowledgeSourceConfig 是 当前知识加工数据源配置。
llm ChatLLM 否

接口调用方维护的LLM模型指针。为使用邮件分析的任意 handler ,必须配置本参数且不允许为空。

起始版本: 26.0.0

properties string 否

知识加工所需的属性信息,json字符串形如:"{\"userName\": \"John\", \"maxCtxLen\": 30000}",为使用邮件分析的任意handler,必须配置本参数且不允许为空。

- userName:用户本人姓名,长度范围[1,256],用于排除非本人待办被误提取。为使用邮件分析的任意handler,必须配置本参数。

- maxCtxLen:接口调用方自定义大模型的最大上下文长度,长度[1,INT32_MAX]。接口调用方应保证ChatLLM接口调用的大模型上下文长度大于等于此值,否则可能会因大模型上下文长度超限而导致邮件分析失败。为使用邮件分析的任意handler,必须配置本参数。

起始版本: 26.0.0

KnowledgeSourceConfig

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

管理知识数据源配置。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.0.0(20)

展开
名称 类型 必填 说明
rdbSource relationalStore.StoreConfig 否 RDB数据库配置。加工数据源为RDB数据库时配置,当前版本仅支持RDB数据源,若不填该参数,接口返回错误码1021400001。

KnowledgeProcessConfig

Phone6.1.0(23)+PC/2in16.1.0(23)+Tablet6.1.0(23)+

知识加工配置。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.1.0(23)

展开
名称 类型 必填 说明
mode KnowledgeProcessMode 是 知识加工参数。倒排或者倒排+向量两种加工模式.

ChatLLM

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

chat(query: string): Promise<string>

由接口调用方对期望使用的大模型问答过程进行封装的函数类型。使用Promise异步回调。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 26.0.0

参数:

展开
参数名 类型 必填 说明
query string 是 表示与LLM问答模型问答的问题信息。

返回值:

展开
类型 必填 说明
Promise<string> 是 Promise对象,正常情况下返回问答结果,如果出现异常则返回空字符串。

KnowledgeProcessMode

Phone6.1.0(23)+PC/2in16.1.0(23)+Tablet6.1.0(23)+

知识加工模式。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.1.0(23)

展开
名称 值 说明
INVERTED_INDEX 1 倒排加工模式。
INVERTED_INDEX_VECTORIZATION 3 倒排+向量加工模式。

KnowledgeProcessor

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

知识加工对象,用于获取知识加工状态等操作。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.0.0(20)

getStatus

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

getStatus(): Promise<ProcessorStatus>

获取知识加工状态。使用promise异步回调。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.0.0(20)

返回值:

展开
类型 说明
Promise<ProcessorStatus> Promise对象,返回知识加工状态。

错误码:

展开
错误码ID 错误信息
1021400000 Internal error.
1021400004 An error occurred during operations on the RDB source.

示例:

收起
自动换行
深色代码主题
复制
  1. import { knowledgeProcessor } from '@kit.DataAugmentationKit';
  2. import { common } from '@kit.AbilityKit';
  3. import { relationalStore } from '@kit.ArkData';
  4. const storeName: string = "testmail_store.db";
  5. const storeConfig: relationalStore.StoreConfig = {
  6. name: storeName, // 已触发知识加工的数据库名
  7. securityLevel: relationalStore.SecurityLevel.S3,
  8. tokenizer: relationalStore.Tokenizer.CUSTOM_TOKENIZER,
  9. };
  10. const knowledgeSourceConfig: knowledgeProcessor.KnowledgeSourceConfig = {
  11. rdbSource: storeConfig,
  12. };
  13. const knowledgeProcessorConfig: knowledgeProcessor.KnowledgeProcessorConfig = {
  14. sourceConfig: knowledgeSourceConfig,
  15. };
  16. // 获取知识加工状态的异步函数
  17. async function getStatus() {
  18. const context = AppStorage.get<common.UIAbilityContext>("Context") as common.UIAbilityContext;
  19. try {
  20. // 获取知识加工对象
  21. const processor = await knowledgeProcessor.getKnowledgeProcessor(context, knowledgeProcessorConfig);
  22. // 获取知识加工状态
  23. const status: knowledgeProcessor.ProcessorStatus = await processor.getStatus();
  24. return status;
  25. } catch (err) {
  26. console.error("Error: " + err.message + " code: " + err.code);
  27. return undefined;
  28. }
  29. }

startProcess

PC/2in16.1.0(23)+

startProcess(config: KnowledgeProcessConfig): Promise<void>

根据入参的配置,启动知识加工。使用promise异步回调。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.1.0(23)

参数:

展开
参数名 类型 必填 说明
config KnowledgeProcessConfig 是 知识加工配置。

返回值:

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

错误码:

展开
错误码ID 错误信息
801 Device type error.
1021400000 Internal error.
1021400005 Feature already active. Function called repeatedly.

示例:

收起
自动换行
深色代码主题
复制
  1. import { knowledgeProcessor } from '@kit.DataAugmentationKit';
  2. import { common } from '@kit.AbilityKit';
  3. import { relationalStore } from '@kit.ArkData';
  4. const storeName: string = "testmail_store.db";
  5. const storeConfig: relationalStore.StoreConfig = {
  6. name: storeName, // 已触发知识加工的数据库名
  7. securityLevel: relationalStore.SecurityLevel.S3,
  8. tokenizer: relationalStore.Tokenizer.CUSTOM_TOKENIZER,
  9. };
  10. const knowledgeSourceConfig: knowledgeProcessor.KnowledgeSourceConfig = {
  11. rdbSource: storeConfig,
  12. };
  13. const knowledgeProcessorConfig: knowledgeProcessor.KnowledgeProcessorConfig = {
  14. sourceConfig: knowledgeSourceConfig,
  15. };
  16. // 启动知识加工的异步函数
  17. async function startProcess() {
  18. const context = AppStorage.get<common.UIAbilityContext>("Context") as common.UIAbilityContext;
  19. try {
  20. // 获取知识加工对象
  21. const processor = await knowledgeProcessor.getKnowledgeProcessor(context, knowledgeProcessorConfig);
  22. // 启动知识加工
  23. let processMode: knowledgeProcessor.KnowledgeProcessMode = knowledgeProcessor.KnowledgeProcessMode.INVERTED_INDEX;
  24. let config: knowledgeProcessor.KnowledgeProcessConfig = {
  25. mode: processMode,
  26. };
  27. await processor.startProcess(config);
  28. } catch (err) {
  29. console.error("Error: " + err.message + " code: " + err.code);
  30. }
  31. }

stopProcess

Phone6.1.0(23)+PC/2in16.1.0(23)+Tablet6.1.0(23)+

stopProcess(): Promise<void>

停止当前知识加工。使用promise异步回调。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.1.0(23)

返回值:

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

示例:

收起
自动换行
深色代码主题
复制
  1. import { knowledgeProcessor } from '@kit.DataAugmentationKit';
  2. import { common } from '@kit.AbilityKit';
  3. import { relationalStore } from '@kit.ArkData';
  4. const storeName: string = "testmail_store.db";
  5. const storeConfig: relationalStore.StoreConfig = {
  6. name: storeName, // 已触发知识加工的数据库名
  7. securityLevel: relationalStore.SecurityLevel.S3,
  8. tokenizer: relationalStore.Tokenizer.CUSTOM_TOKENIZER,
  9. };
  10. const knowledgeSourceConfig: knowledgeProcessor.KnowledgeSourceConfig = {
  11. rdbSource: storeConfig,
  12. };
  13. const knowledgeProcessorConfig: knowledgeProcessor.KnowledgeProcessorConfig = {
  14. sourceConfig: knowledgeSourceConfig,
  15. };
  16. // 停止知识加工的异步函数
  17. async function stopProcess() {
  18. const context = AppStorage.get<common.UIAbilityContext>("Context") as common.UIAbilityContext;
  19. try {
  20. // 获取知识加工对象
  21. const processor = await knowledgeProcessor.getKnowledgeProcessor(context, knowledgeProcessorConfig);
  22. // 停止知识加工
  23. await processor.stopProcess();
  24. } catch (err) {
  25. console.error("Error: " + err.message + " code: " + err.code);
  26. }
  27. }

ProcessorStatus

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

知识加工状态。

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

系统能力: SystemCapability.DataAugmentation.KnowledgeProcessor

起始版本: 6.0.0(20)

展开
名称 值 说明
DATA_REMAINING_TO_PROCESS 0 存在待加工的数据。
DATA_PROCESSING_IN_PROGRESS 1 数据正在进行知识加工中。
DATA_PROCESSING_COMPLETE 2 所有数据已完成加工。