在鸿蒙(HarmonyOS)应用中接入盘古大模型云端 API,通常可以通过华为云 ModelArts Studio (MaaS) 平台来实现。以下是完整的接入流程与核心代码示例:

1. 获取 API 鉴权凭证

在调用云端大模型前,首先需要获取用于身份验证的凭证。根据业务场景,通常有两种鉴权方式:

  • Token 认证:适用于应用内部直接调用。需参考华为云《API参考》文档获取 Token 值。
  • API Key 认证:适用于将推理服务开放给其他用户调用。需在 ModelArts Studio 平台的“应用接入”中创建应用并获取 API Key(即 X-Apig-AppCode)。

2. 获取 API 请求地址

API 请求地址由“API接口域名”与“API访问路径(URI)”拼接而成。

  • 获取域名:登录 ModelArts Studio 平台,在“模型开发 > 模型部署”页面,点击已部署且处于“运行中”状态的模型名称,在详情页获取 API 接口域名。
  • 拼接 URI:例如文本补全接口的路径通常为 /generate,完整的请求地址示例为 https://{api-url}/generate

3. 鸿蒙端 ArkTS 调用示例

在鸿蒙应用层,可以使用 @ohos.net.http 模块发起 POST 请求。以下是一个基础的云端 API 调用代码示例:

import { http } from '@ohos.net.http';

// 1. 创建 HTTP 请求对象
const httpReq = http.createHttp();

// 2. 发起 POST 请求
const resp = await httpReq.request('https://{您的API接口域名}/v1/infers/{您的服务ID}/generate', {
  method: http.RequestMethod.POST,
  header: { 
    'Content-Type': 'application/json',
    // 根据鉴权方式二选一填入:
    // 'X-Auth-Token': '您的Token值', 
    // 'X-Apig-Appcode': '您的API_Key值'
  },
  extraData: JSON.stringify({
    messages: [{ role: 'user', content: '你好,请介绍一下鸿蒙系统' }],
    temperature: 0.9,
    max_tokens: 600
  })
});

// 3. 处理返回结果
if (resp.responseCode === 200) {
  console.log('大模型返回结果:', resp.result);
}

4. 进阶:端云协同架构

对于鸿蒙原生应用,推荐采用端云协同(混合路由)方案以兼顾性能与数据安全:

  • 端侧处理:对于敏感数据(如手机号脱敏)、短上下文或低延迟要求(< 300ms)的场景,可通过 @ohos.ai.pangu SDK 调用端侧盘古 Lite 模型,数据不出端。
  • 云端处理:对于长上下文(> 8K)、高质量推理或复杂代码生成,自动路由至云端 API 处理。

一、 核心架构:Harmony Intelligence 端云协同体系

鸿蒙原生智能(Harmony Intelligence)并非简单的 API 调用,而是将 AI 能力下沉为操作系统的基础底座,采用“端侧 AI 为主、云端 AI 为辅”的混合架构。

  1. 端侧(On-Device AI):集成轻量化盘古大模型(如盘古 Lite/Mini),依托麒麟芯片 NPU 加速,实现毫秒级本地推理。负责处理隐私敏感数据(如手机号脱敏)、低延迟交互(< 300ms)及离线场景,确保数据全程不出端。
  2. 云侧(Cloud AI):依托华为云 ModelArts Studio (MaaS) 部署的超大参数盘古模型,负责长上下文(> 8K)、复杂逻辑推理及跨应用全局调度。
  3. 连接层(端云协同引擎):通过鸿蒙智能体框架(HMAF),实现任务在端云之间的无缝拆分、动态调度与安全传输。

二、 高阶实战:端云动态路由与隐私保护管理器

企业级应用必须实现智能路由,根据意图复杂度和网络状态动态切换端云模型,并注入隐私保护指令。

// HybridAIManager.ets:端云协同 AI 管理器核心逻辑
import { intelligentFoundation } from '@kit.IntelligentFoundationKit';
import { cloud } from '@kit.CloudFoundationKit';

export class HybridAIManager {
  private intentClassifier: intelligentFoundation.LocalClassifier | null = null;
  private foundationClient: intelligentFoundation.FoundationClient | null = null;

  // 1. 初始化端云组件
  async init(context: Context) {
    // 端侧意图分类器(小模型,用于路由决策)
    this.intentClassifier = await intelligentFoundation.createLocalClassifier(context, {
      modelName: 'intent-classifier-v1',
      threshold: 0.8 
    });
    // 云端基础模型客户端(连接盘古云端)
    this.foundationClient = await intelligentFoundation.createFoundationClient({
      backendType: intelligentFoundation.BackendType.CLOUD_PANGU,
      authConfig: { apiKey: await this.getApiKeyFromSecureStorage() } // 从密钥保险箱读取,严禁硬编码
    });
  }

  // 2. 核心:智能路由与隐私脱敏
  async ask(userQuery: string, onToken?: (token: string) => void): Promise<string> {
    const intentResult = await this.intentClassifier!.classify(userQuery);
    
    // 简单查询或敏感数据,走端侧(数据不出端)
    if (intentResult.intent === 'simple_query' && intentResult.confidence > 0.8) {
      return this.handleSimpleQueryLocally(userQuery);
    } 
    
    // 复杂推理,走云端大模型(带差分隐私与流式输出)
    return await this.handleComplexQueryWithCloud(userQuery, onToken);
  }

  // 3. 云端流式处理与隐私防护
  private async handleComplexQueryWithCloud(query: string, onToken?: (token: string) => void): Promise<string> {
    const prompt = `【隐私保护指令】:严禁透露用户个人信息,仅基于商品知识回答。\n【用户问题】:${query}`;
    const stream = await this.foundationClient!.generateTextStream({
      prompt: prompt,
      privacyConfig: { enableDifferentialPrivacy: true, epsilon: 3.0 }, // 差分隐私配置
      temperature: 0.7, maxTokens: 300
    });
    
    let fullResponse = '';
    for await (const chunk of stream) {
      fullResponse += chunk.text;
      onToken?.(chunk.text); // 逐字回调给 UI 层实现打字机效果
    }
    return fullResponse;
  }
}

三、 基础云端调用:HTTP 请求与鉴权安全

当直接通过 @ohos.net.http 调用 MaaS 平台 API 时,必须严格管理鉴权凭证。

import { http } from '@ohos.net.http';

async function callCloudPangu(prompt: string) {
  const httpReq = http.createHttp();
  const resp = await httpReq.request('https://{api-url}/v1/infers/{service-id}/generate', {
    method: http.RequestMethod.POST,
    header: { 
      'Content-Type': 'application/json',
      'X-Apig-Appcode': '您的API_Key值' // 推荐使用 API Key 认证
    },
    extraData: JSON.stringify({
      messages: [{ role: 'user', content: prompt }],
      temperature: 0.9, max_tokens: 600
    })
  });
  
  if (resp.responseCode === 200) {
    return JSON.parse(resp.result as string);
  }
  throw new Error('Cloud AI request failed');
}

四、 安全合规与动态降级机制

  1. 端云动态降级:针对弱网或离线场景,应用必须设计降级策略。当云端 API 超时或断网时,无缝切换至端侧盘古 Lite 模型,保障核心 AI 功能的基础可用性。
  2. 合规性声明:应用上架时,若涉及 AI 生成合成服务,需在 module.json5 中明确进行合规性声明(complianceDeclaration),保障生态规范。
  3. 密钥安全:所有的 API Key 或 Token 严禁硬编码在 ArkTS 代码中,必须使用鸿蒙的密钥保险箱(Secret Manager)或 AGC 安全存储进行读取。

更多推荐