在鸿蒙生态中实现 AI 写作助手功能,开发者可以根据业务对隐私、性能和复杂度的要求,选择以下三种主流的技术方案:

方案一:集成鸿蒙 Copilot 智能聊天组件(推荐)

这是最便捷的接入方式。Copilot 是鸿蒙官方提供的智能聊天组件,内置了完整的聊天界面和交互体验,支持流式响应和自定义 UI。

  • 核心特性:支持对接 DeepSeek、Qwen 等主流大语言模型,提供文本消息、动作执行等多种消息类型,并可集成语音输入功能。
  • 接入方式:在 ArkTS 中引入 @hw-agconnect/copilot 包,通过配置 CopilotController 传入大模型的 baseUrlapiKey 以及系统提示词(如“你是一个AI办公写作助手”),即可快速构建出具备对话、续写、润色能力的写作助手。

方案二:接入本地 AI 模型(主打高隐私与离线可用)

如果写作场景涉及高度敏感数据,或者需要在无网络环境下运行,可以利用鸿蒙的本地 AI 模型管理能力。

  • 核心特性:模型完全部署在用户设备上,问答数据仅本地处理,不上云。目前本地 AI 已支持文档问答、摘要、润色改写和排版等核心写作功能。
  • 接入方式:开发者可在系统设置中下载并管理本地模型(如 1.5B、7B 等小参数模型),并通过 Chatbox、Cherry Studio 等支持的三方应用进行调用。需要注意的是,本地模型的效果会受限于设备的硬件性能资源。

方案三:利用小艺开放平台构建专属工作流(主打复杂业务自动化)

对于需要处理复杂逻辑的专业级写作需求,可以基于 HarmonyOS 5.0 的小艺开放平台进行深度定制。

  • 核心特性:支持“工作流模式”,开发者可以将复杂的写作任务拆解为一系列规则化步骤(如:大纲生成 → 内容扩写 → 语法纠错 → 风格润色),通过串联大模型和自定义插件实现自动化执行。
  • 接入方式:通过鸿蒙 Agent 通信协议(HACP),将已有的第三方写作智能体快速接入小艺开放平台,实现能力的分发与调用。

一、 Copilot 组件高阶定制:流式响应与 Agent 动作绑定

官方 Copilot 组件不仅提供开箱即用的 UI,还支持深度定制交互逻辑,实现从“对话”到“业务执行”的闭环。

// 1. 初始化控制器并注入系统提示词
controller: CopilotController = new CopilotController({
  llm: {
    baseUrl: 'https://api.deepseek.com/v1',
    apiKey: 'your-api-key',
    model: 'deepseek-chat'
  },
  systemPrompt: '你是一个专业的AI办公写作助手,擅长公文撰写、文案润色和大纲生成。'
});

// 2. 注册自定义 Agent 动作(FrontendAction)
// 当大模型识别到用户需要“导出文档”时,触发端侧原生能力
this.controller.registerAction({
  name: 'exportDocument',
  description: '将生成的文章导出为本地 Word 或 PDF 文件',
  execute: async (params) => {
    await fileIo.writeFile(context.filesDir + '/article.docx', params.content);
    return '文档已成功导出至本地存储';
  }
});

二、 本地 AI 架构:模型量化与端侧性能调优

对于高隐私的本地写作场景,必须在模型体积、推理速度与生成质量之间取得平衡。

  1. 模型量化策略:推荐使用 INT4/INT8 量化技术。例如,将 7B 参数的模型量化后,体积可压缩至原大小的 1/4(约 3.5-5GB),显存需求大幅降低,且推理速度提升 3 倍以上,同时保证润色、摘要等任务的精度损失在可控范围内。
  2. 动态加载与缓存:通过 AbilitySlice 实现模型按需加载,减少应用冷启动时的内存占用;对高频的写作指令(如“帮我总结”)建立本地缓存,降低本地 NPU 的重复计算频率。
  3. 系统级集成:在鸿蒙 PC 或高端设备上,用户可通过“系统设置 > 本地AI模型管理”下载 DeepSeek 或 Qwen 的 1.5B/7B 模型,应用通过本地端口(如 127.0.0.1:11434)直接调用,全程数据不出端。

三、 小艺开放平台:复杂写作工作流的可视化编排

针对“大纲生成 → 内容扩写 → 语法纠错 → 风格润色”等复杂链路,采用云工作流模式实现自动化。

  1. 节点化编排:在小艺开放平台的画布中,添加“开始节点”接收 USER_INPUT(用户原始需求)和 FILES_INPUT(用户上传的参考文档),串联多个大模型节点与文本处理组件。
  2. 多模态输入处理:利用文本处理组件提取用户上传的 PDF 或 Word 文件链接,将其作为上下文注入到“内容扩写”节点,实现基于参考资料的精准创作。
  3. 闭环测试与发布:在平台内点击【试运行】,验证各节点的输入输出与调测树信息,确保逻辑无误后点击【上架】。随后通过鸿蒙 Agent 通信协议(HACP)将工作流接入应用,实现能力的系统级分发。

四、 内容安全与合规:防 AI 检测的文本反制策略

AI 生成的文本往往具有句式规整、词频统一、流畅度过高等统计特征,容易被检测工具识别。企业级写作助手必须内置“反 AI 痕迹”机制。

  1. 生成阶段前置约束:在调用大模型时,通过 System Prompt 注入防 AI 指令,要求模型避免使用“首先/其次/综上所述”等机械连接词,主动采用长短句穿插、主被动语态混合的表达方式。
  2. 人工原创度注入:在 UI 层引导用户在关键段落插入个人真实案例、实验数据或主观观点。只要文本中 30% 以上为人工原创内容,绝大多数检测工具将判定为人工创作。
  3. 反向润色降规整度:提供“轻松/口语化”风格的二次润色选项,刻意打破 AI 生成的过度完美通顺感,增加轻微的思考停顿与生活化表达。

五、 离线编辑与在线同步:断网场景下的数据一致性

对于移动端写作,网络环境复杂。必须设计完善的离线缓存与冲突解决机制。

// 1. 监听网络状态,动态切换编辑模式
connection.on('netAvailable', (netHandle) => {
  this.isOnline = true;
  this.syncOfflineCache(); // 联网后自动触发同步
});

// 2. 离线操作本地缓存(操作日志记录)
async function saveOfflineEdit(content: string) {
  const log = {
    timestamp: Date.now(),
    action: 'update',
    payload: content
  };
  await preferences.put('offline_log', JSON.stringify(log));
}

// 3. 联网后合并冲突并清空缓存
async function syncOfflineCache() {
  const logs = await preferences.get('offline_log');
  await cloudDB.merge(logs); // 上传本地操作并拉取远端变更
  await preferences.delete('offline_log');
}

六、 小艺工作流进阶:多模态文件解析与处理

在小艺开放平台的云工作流模式中,支持用户上传参考资料,实现基于文档的精准创作。

  1. FILES_INPUT 参数配置:在智能体设置中开启“输入文件设置”,允许用户上传照片或文档。工作流的“开始节点”会自动通过 FILES_INPUT 接收文件链接数组。
  2. 文本处理组件提取:由于后续大模型节点需要文本输入,需在工作流中串联“文本处理组件”,使用 ${input[0]} 语法从 FILES_INPUT 数组中提取目标文件链接,传递给文档解析插件。
  3. 多文件顺序处理:若用户同时上传多个文件,可通过多个文本处理组件分别提取,或在工作流中配置循环处理逻辑,实现批量文档的摘要与融合。

七、 跨端协同创作:多设备无缝接续

鸿蒙的分布式能力为写作助手提供了极致的跨端体验。

  1. 跨设备接续编辑:用户在手机上通过小艺语音生成大纲,可无缝流转至平板或 PC 端进行精细化编辑。AI 生成内容与人工修改内容实时同步。
  2. PC 端精细调整:同步至 PC 后,用户可利用 WPS/Word 进行段落微调、标点替换(如用逗号拆分长句、增加破折号),进一步降低 AI 文本的机械感。
  3. 系统级 AI 入口联动:写作助手可与鸿蒙备忘录 AI、小艺语音助手联动,用户在任意入口生成的草稿,均可通过分布式数据管理子系统自动同步至写作助手的云文档中。

八、 Copilot 组件:流式对话与 Agent 动作绑定

使用官方 Copilot 组件快速构建具备对话、续写、润色能力的写作助手。

// CopilotWriter.ets:AI 写作助手核心页面
import { CopilotController, CopilotComponent } from '@hw-agconnect/copilot';

@Entry
@Component
struct CopilotWriter {
  // 1. 初始化控制器并注入系统提示词
  private controller: CopilotController = new CopilotController({
    llm: {
      baseUrl: 'https://api.deepseek.com/v1',
      apiKey: 'your-api-key',
      model: 'deepseek-chat'
    },
    systemPrompt: '你是一个专业的AI办公写作助手,擅长公文撰写、文案润色和大纲生成。'
  });

  aboutToAppear() {
    // 2. 注册自定义 Agent 动作(FrontendAction)
    this.controller.registerAction({
      name: 'exportDocument',
      description: '将生成的文章导出为本地 Word 或 PDF 文件',
      execute: async (params) => {
        // 触发端侧原生文件导出能力
        const path = getContext(this).filesDir + '/article.docx';
        // await fileIo.writeFile(path, params.content);
        return '文档已成功导出至本地存储';
      }
    });
  }

  build() {
    Column() {
      // 3. 渲染 Copilot 聊天组件
      CopilotComponent({ controller: this.controller })
        .width('100%')
        .height('100%')
    }
  }
}

九、 本地 AI 架构:模型管理与离线推理

针对高隐私场景,通过本地端口调用量化后的端侧大模型。

// LocalAIManager.ets:本地模型管理器
import { http } from '@ohos.net.http';

export class LocalAIManager {
  private localEndpoint: string = 'http://127.0.0.1:11434/api/generate';

  // 调用本地 7B 量化模型进行润色
  async polishText(prompt: string): Promise<string> {
    const httpReq = http.createHttp();
    const resp = await httpReq.request(this.localEndpoint, {
      method: http.RequestMethod.POST,
      header: { 'Content-Type': 'application/json' },
      extraData: JSON.stringify({
        model: 'qwen2.5-7b-instruct-q4_k_m', // 使用 INT4 量化模型
        prompt: prompt,
        stream: false
      })
    });

    if (resp.responseCode === 200) {
      const result = JSON.parse(resp.result as string);
      return result.response;
    }
    throw new Error('Local AI inference failed');
  }
}

十、 小艺工作流:复杂写作任务编排

通过 HACP 协议调用小艺开放平台编排好的复杂写作工作流。

// XiaoyiWorkflow.ets:调用小艺工作流
import { agent } from '@kit.IntelligentFoundationKit';

export class XiaoyiWorkflow {
  // 触发小艺平台上的“长文创作工作流”
  static async startLongFormWriting(userInput: string, referenceFileUrl?: string) {
    const request = {
      intent: 'xiaoyi.workflow.longform_writing', // 工作流唯一标识
      parameters: {
        user_prompt: userInput,
        files: referenceFileUrl ? [referenceFileUrl] : [] // 传入参考文档
      }
    };

    const response = await agent.execute(request);
    return response.data.generated_article;
  }
}

十一、 数据可靠性:离线编辑与联网同步

保障弱网/断网环境下的创作不中断、数据不丢失。

// OfflineSyncManager.ets:离线缓存与冲突合并
import { preferences } from '@kit.ArkData';
import { connection } from '@kit.NetworkKit';

export class OfflineSyncManager {
  private store: preferences.Preferences | null = null;

  // 1. 初始化并监听网络状态
  async init(context: Context) {
    this.store = await preferences.getPreferences(context, 'offline_cache');
    
    connection.on('netAvailable', () => {
      this.syncOfflineCache(); // 联网后自动触发同步
    });
  }

  // 2. 离线时保存操作日志
  async saveOfflineEdit(content: string) {
    const log = { timestamp: Date.now(), action: 'update', payload: content };
    await this.store!.put('offline_log', JSON.stringify(log));
    await this.store!.flush();
  }

  // 3. 联网后合并冲突并清空缓存
  private async syncOfflineCache() {
    const logStr = await this.store!.get('offline_log', '');
    if (logStr) {
      const log = JSON.parse(logStr as string);
      // await cloudDB.merge(log); // 上传本地操作并拉取远端变更
      await this.store!.delete('offline_log');
      await this.store!.flush();
    }
  }
}
Logo

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

更多推荐