诗词创作助手:基于 HarmonyOS ArkTS 的 AI 古典文学创作应用开发实践
诗词创作助手:基于 HarmonyOS ArkTS 的 AI 古典文学创作应用开发实践
本文基于 HarmonyOS 6.0 + ArkTS + DevEco Studio,从零构建一个覆盖六大诗词创作场景的 AI 对话应用。涵盖 @Entry/@Component/@Builder 声明式 UI、@State 响应式状态管理、router 多页面导航、三层架构设计,以及 AI 诗词创作的体系化生成策略,适合鸿蒙应用开发者参考。

一、项目背景
“熟读唐诗三百首,不会作诗也会吟”——但真正能写出合格诗词的人并不多。诗词创作的门槛在于:格律规则(平仄、押韵、对仗)、意象积累(风花雪月、山水草木)、典故运用(化用前人、自出机杼),三者缺一不可。
本项目基于 HarmonyOS 6.0 平台,构建了一个 「诗词创作助手」 AI 对话应用。应用集成了六大诗词创作场景——唐诗、宋词、现代诗、对联、诗词赏析、灵感启发——用户输入主题或关键词,即可获得 AI 创作的诗词作品。
鸿蒙特色亮点:
@Entry+@Component+@Builder声明式组件化 UI@State响应式状态驱动 UI 自动刷新router.pushUrl实现首页卡片到聊天页的无缝导航ForEach+Scroll高性能渲染消息列表
二、核心架构
2.1 三层架构
entry/src/main/ets/
├── models/
│ └── ShiCiChuangZuoModel.ets # 数据模型:消息、话题、诗词条目
├── services/
│ └── ShiCiChuangZuoService.ets # 业务服务:AI 诗词生成、关键词匹配
└── pages/
└── ShiCiChuangZuo.ets # UI 页面:聊天界面、话题栏、输入区
2.2 鸿蒙 ArkTS 装饰器速查
| 装饰器 | 作用 | 本应用中的使用 |
|---|---|---|
@Entry |
页面入口标记 | ShiCiChuangZuo 作为独立路由页面 |
@Component |
自定义组件声明 | 所有 struct 结构体 |
@State |
响应式状态 | messages、inputText、isLoading、selectedTopic |
@Builder |
UI 构建器方法 | buildHeader()、buildTopicBar()、buildMessageBubble() 等 |
2.3 数据模型(ShiCiChuangZuoModel.ets)
export enum MessageRole { USER = 'user', ASSISTANT = 'assistant' }
export enum ShiCiTopic {
TANGSHI = '唐诗', SONGCI = '宋词', XIANDAI = '现代诗',
DUILIAN = '对联', SHANGXI = '诗词赏析', LINGGAN = '灵感启发'
}
export class ChatMessage {
role: MessageRole; content: string; timestamp: number
constructor(role: MessageRole, content: string) {
this.role = role; this.content = content; this.timestamp = Date.now()
}
}
export class ShiCiItem {
title: string; author: string; dynasty: string; content: string; style: string
// 为诗词收藏和分享预留的数据结构
}
三、AI 服务层:六大诗词创作场景
3.1 系统提示词设计
private systemPrompt: string =
'你是一位精通中国古典诗词的AI创作助手,擅长唐诗、宋词、现代诗、对联等多种文体。\n\n' +
'你的任务:\n' +
'1. 创作唐诗(五言/七言绝句、律诗,讲究平仄、押韵、对仗)\n' +
'2. 填写宋词(各词牌如蝶恋花、水调歌头、如梦令等)\n' +
'3. 创作现代诗(自由诗、抒情诗、哲理诗)\n' +
'4. 对对联(出上联对下联,或出下联对上联)\n' +
'5. 诗词赏析(解读意境、典故、艺术手法)\n' +
'6. 灵感启发(以物作诗、以景作诗、以情作诗)\n\n' +
'创作原则:\n' +
'- 格律严谨:唐诗遵守平仄和押韵规则,宋词遵循词牌格律\n' +
'- 意境优先:诗以意境为上,言之有物,情景交融\n' +
'- 雅俗共赏:兼顾文采和可读性,既有古典韵味,又不晦涩难懂'
3.2 六大话题内容结构
| 话题 | 创作类型 | 示例输出 |
|---|---|---|
| 唐诗 | 五言/七言绝句、律诗 | 以"春"为题创作七言绝句 |
| 宋词 | 蝶恋花、水调歌头等词牌 | 以"月"为题填《水调歌头》 |
| 现代诗 | 自由诗、抒情诗 | 以"城市的夜"创作现代诗 |
| 对联 | 上下联创作 | 出上联征下联,赏析对仗技巧 |
| 诗词赏析 | 名篇解读 | 解读《静夜思》的意境和手法 |
| 灵感启发 | 主题创作 | 以"梅花"为题,提供创作角度 |
每个话题的回复都包含完整的诗词作品、创作说明和格律注释,让用户不仅"看到诗",还能"读懂诗"。
四、鸿蒙 UI 组件化实现
4.1 组件树
ShiCiChuangZuo (主页面)
├── buildHeader() # 标题栏:📜 + "诗词创作助手"
├── buildTopicBar() # 横向滚动话题标签
├── Scroll + ForEach # 消息列表
│ ├── buildMessageBubble() # 消息气泡
│ └── buildLoadingBubble() # 加载中状态
└── buildInputArea() # 底部输入区
4.2 @State 驱动 UI 刷新
@State messages: ChatMessage[] = [] // 聊天记录 → ForEach 自动渲染
@State inputText: string = '' // 输入内容 → 发送按钮状态联动
@State isLoading: boolean = false // 加载状态 → 显示"创作中"提示
@State selectedTopic: string = '' // 选中话题 → 高亮切换
4.3 发送逻辑:异步模拟 + 滚动优化
private onSend(): void {
this.messages.push(new ChatMessage(MessageRole.USER, text))
this.inputText = ''; this.isLoading = true
setTimeout(() => { this.scroller.scrollEdge(Edge.Bottom) }, 200)
setTimeout(() => {
const reply = this.service.generateMockReply(text)
this.messages.push(reply)
this.isLoading = false
setTimeout(() => { this.scroller.scrollEdge(Edge.Bottom) }, 100)
}, 1500)
}
五、首页整合与路由导航
应用首页 [Index.ets](file:///c:/Users/l/DevEcoStudioProjects/MyApplication/entry/src/main/ets/pages/Index.ets) 通过 router.pushUrl 实现卡片点击跳转:
import { router } from '@kit.ArkUI'
.onClick(() => {
router.pushUrl({ url: 'pages/ShiCiChuangZuo' })
})
路由注册在 [main_pages.json](file:///c:/Users/l/DevEcoStudioProjects/MyApplication/entry/src/main/resources/base/profile/main_pages.json):
{
"src": [
"pages/Index",
"pages/LvxingPage",
"pages/XuexiPage",
"pages/JiankangPage",
"pages/ShiCiChuangZuo"
]
}
六、紫色主题配色
| 用途 | 色值 | 语义 |
|---|---|---|
| 页面背景 | #FAF5FF |
极浅紫色,典雅而不沉闷 |
| 主色调 | #8B5CF6 |
标准紫色,代表典雅、文化、诗意 |
| 边框 | #DDD6FE |
浅紫色,柔和分隔 |
| 强调色 | #EA580C |
橙色,与紫色形成对比,用于"清除"按钮 |
所有颜色定义为页面级 const 常量,独立于其他应用,互不干扰。
七、鸿蒙 + AI 核心亮点
亮点一:@State 响应式状态管理
ArkTS 的核心理念是"状态驱动 UI"。只需修改 @State 变量,框架自动触发 UI 重新渲染。4 个 @State 变量覆盖了消息列表、输入框、加载状态、选中态的完整交互闭环。
亮点二:@Builder 声明式组件化
@Builder 让 UI 逻辑从 build() 方法中抽离,每个 @Builder 方法对应一个独立 UI 区块。组件树结构清晰,新增功能只需添加新的 @Builder 方法。
亮点三:三层架构的跨项目复用
Model(数据定义)→ Service(业务逻辑)→ View(UI 渲染),职责清晰。四个 AI 应用的 View 层代码高度相似,只需替换 Service 和 Model 即可切换主题。
亮点四:AI 诗词创作的体系化
不是简单的"写一首诗",而是提供完整的诗词作品 + 创作说明 + 格律注释。用户不仅能看到 AI 创作的诗词,还能理解创作背后的技巧和意境。
亮点五:router 路由的多页面整合
通过 router.pushUrl 实现首页到聊天页的无缝跳转,用户无需切换 App,即可在同一应用中体验四个 AI 助手。
亮点六:ShiCiItem 扩展预留
数据模型中预留了 ShiCiItem 类(包含标题、作者、朝代、内容、风格),为后续的诗词收藏、分享、社区功能提供了数据基础。
八、总结
诗词创作助手是 HarmonyOS ArkTS + AI 在中国古典文学领域的实践。核心经验:
- @State + @Builder 是 ArkTS 的核心范式:状态驱动 UI,声明式描述界面
- AI 创作需要"赏析"配套:不仅给出作品,还解释创作技巧和意境
- 三层架构解耦:Model / Service / View 分离,降低维护成本
- router 路由整合:多 AI 应用共存于同一 App
- 配色独立管理:页面级常量,避免跨应用颜色污染
📜 诗词是中华文化的瑰宝,AI 不是替代诗人,而是让更多人感受诗词之美。希望这篇文章能为你的鸿蒙 AI 应用开发提供一些启发。
更多推荐




所有评论(0)