云计算百科
云计算领域专业知识百科平台

HarmonyOS应用《玄象》开发实战:AI 对话历史 @ohos.data.relationalStore 轻量级持久化

页面预览

阅读时长:约 18 分钟 | 难度:★★★★☆ | 篇章:第 9 篇 · 取名乐律地理 AI 助手 对应源码:entry/src/main/ets/pages/assistant/AiAssistantPage.ets

前言

AI 对话历史是玄象项目 AI 助手功能的"记忆"组件。通过 @ohos.data.relationalStore 关系型数据库,将用户与 AI 助手的对话记录持久化到本地,下次打开应用时自动恢复历史对话。本篇将深入剖析玄象项目对话历史持久化的实现:从 relationalStore 数据库创建、CREATE TABLE 建表语句、INSERT 插入消息、SELECT 查询历史,到 @State messages 数据绑定。掌握这套数据持久化实现方法论,您就能为任何 HarmonyOS 应用添加本地数据存储功能。

提示:@ohos.data.relationalStore 是 HarmonyOS 官方提供的关系型数据库,类似 SQLite。

一、数据库创建

1.1 建表

import { relationalStore } from '@ohos.data.relationalStore';

private async initDatabase(): Promise<void> {
const store = await relationalStore.getRdbStore(this.context, {
name: 'ai_assistant.db',
securityLevel: relationalStore.SecurityLevel.S1
});
await store.executeSql(`
CREATE TABLE IF NOT EXISTS messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
role TEXT NOT NULL,
content TEXT NOT NULL,
time TEXT NOT NULL
)
`
);
this.store = store;
}

二、消息持久化

2.1 插入消息

private async saveMessage(msg: ChatMessage): Promise<void> {
const valueBucket = {
'role': msg.role,
'content': msg.content,
'time': msg.time
};
await this.store.insert('messages', valueBucket);
}

三、数据持久化设计总结

3.1 数据流

用户发送消息

@State messages 更新(UI 即时显示)

saveMessage() 异步写入数据库

下次打开应用

loadMessages() 从数据库加载历史

@State messages 恢复

四、第 9 篇章总结

第 9 篇章"取名乐律地理 AI 助手"共 10 篇,全面覆盖了玄象项目相关模块的实现:

篇号主题核心技术
81 AI 取名表单 TextInput + Toggle + Chip
82 取名结果页 Canvas 评分圆环
83 十二律吕 AudioPlayer 音频播放
84 九州地理 Canvas 分州着色
85 AI 助手对话 UI 聊天气泡 + 快速问答
86 网络请求封装 async/await + try-catch
87 音频资源加载 rawfile + AudioPlayer
88 地图触摸高亮 onTouch + 距离检测
89 Markdown 渲染 富文本展示
90 对话历史持久化 relationalStore

总结

本篇以玄象项目 AI 对话历史持久化为蓝本,深入剖析了 ArkUI 关系型数据库的实现:从 relationalStore 数据库创建、CREATE TABLE 建表语句、INSERT 插入消息、SELECT 查询历史,到 @State messages 数据绑定。掌握这套数据持久化实现方法论,您就能为任何 HarmonyOS 应用添加本地数据存储功能。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

  • HarmonyOS 官方文档:relationalStore
  • 开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
赞(0)
未经允许不得转载:网硕互联帮助中心 » HarmonyOS应用《玄象》开发实战:AI 对话历史 @ohos.data.relationalStore 轻量级持久化
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!