本文同步发表于我的微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新

鸿蒙中,当应用通过RAG接口进行知识问答时,系统会经过处理流程:问题分解 → 查询改写 → 知识检索 → 检索生成,该流程需要与大语言模型(LLM)进行多次交互。

应用可选择两种部署:

  1. 使用自建的云端大模型

  2. 采用Kit提供的端侧问答模型能力

端侧问答模型的核心优势

优势 说明
低成本 免除云端大模型的运维成本
高安全 增强用户数据安全性(数据在端侧处理,无需上传云端)
低延迟 本地处理,无需网络传输

二、限制

1. 设备类型限制

  • 仅支持PC/2in1设备类型

  • Phone、Tablet等其他设备类型无法使用此能力

2. 接口调用权限

  • 开发者需要申请接口调用才能使用

3. 模型资源

  • 模型资源来自Matrix模型库

  • chat接口默认调用模型为Qwen25-7B-Instruct

三、接口说明

端侧问答模型提供两个核心接口:

接口名 描述 关键参数
init() 初始化端侧问答模型,负责拉起模型管理应用
chat() 与端侧模型进行交互,实现问答功能 QuestionInfo, Config, Callback

chat接口参数

QuestionInfo(问题信息)

{
    questionId: number;  // 问题ID,用于标识
    content: string;      // 问题内容
}

Config(配置)

{
    isStream: boolean;  // true:流式输出, false:非流式输出
}

Answer(返回结果)

{
    content: string;    // 回答内容
    isFinished: boolean; // 是否完成
}

四、申请接口调用

申请步骤

  1. 打开在线提单页面

  2. 填写申请信息

    • 问题概述:端侧模型问答接口调用申请

    • 问题分类:HarmonyOS 5.0及以上 > 应用框架 > Data Augmentation Kit(数据增强服务)

    • 描述详情:按照模板填写完整信息

  3. 提交问题并关注进展

申请信息模板

字段 示例
应用名称 我的智能问答应用
bundleName com.example.smartqa
AppID 获取自AGC控制台
支持PC/2in1设备类型
华为开放生态团队对接的企业方应用 是/否
当前鸿蒙化进展 已适配HarmonyOS 5.0
当前已经支持的AI能力 文本问答、知识检索
当前行业与用户影响力 教育领域,日活约1万
应用内容信息介绍 提供专业知识问答服务

注意:优先处理华为开放生态团队对接的企业方应用

五、开发步骤

步骤1:配置网络权限

由于端侧模型与LLM通过http请求交互,需要在module.json5中配置网络权限:

// module.json5
{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  }
}

步骤2:初始化端侧模型

调用init()接口,拉起本地AI模型管理:

import { localChatModel } from '@kit.DataAugmentationKit'
import { BusinessError } from "@kit.BasicServicesKit";

async function initModel(): Promise<void> {
    try {
        await localChatModel.init();
        console.info('模型初始化成功');
    } catch (err) {
        const error = err as BusinessError;
        console.error('模型初始化失败:', error.message);
    }
}

首次拉起

  • 弹出隐私声明界面

  • 用户同意后下载默认模型(Qwen25-7B-Instruct)

非首次拉起

  • 用户可通过设置 > 系统 > 本地AI模型管理下载默认模型

步骤3:进行端侧问答

模型下载完成后,调用chat()接口进行问答:

async function doChat(questionId: number, question: string): Promise<void> {
    const questionInfo: localChatModel.QuestionInfo = {
        questionId: questionId,
        content: question
    };

    const localConfig: localChatModel.Config = {
        isStream: true  // 启用流式输出
    };

    try {
        localChatModel.chat(questionInfo, localConfig, 
            (err: BusinessError, ans: localChatModel.Answer) => {
                if (err) {
                    console.error('问答失败:', err.message);
                    return;
                }
                
                if (ans.content) {
                    console.log('收到回答:', ans.content);
                }
                
                if (ans.isFinished) {
                    console.log('问答完成');
                }
            }
        );
    } catch (err) {
        const error = err as BusinessError;
        console.error('chat调用失败:', error.message);
    }
}

端侧问答模型是鸿蒙系统提供的一项重要AI能力:

维度 说明
适用设备 PC/2in1设备
默认模型 Qwen25-7B-Instruct
核心接口 init(), chat()
输出模式 流式/非流式
安全特性 数据本地处理,不上云
申请方式 在线提单申请权限

使用流程

  1. 申请接口权限(填写完整信息)

  2. 配置网络权限

  3. 调用init初始化

  4. 等待模型下载完成

  5. 调用chat进行问答

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐