Deviantart
688 字
3 分鐘
AI 摘要功能开发记录
功能概述
AI 摘要功能是博客的一个辅助功能,它可以自动为文章生成简洁的摘要,帮助读者快速了解文章内容。主要特点包括:
- 自动生成:首次访问文章时自动生成摘要
- 缓存机制:使用 localStorage 存储摘要,避免重复生成
- 重新生成:每篇文章每天最多可重新生成 3 次
- 历史记录:可以查看上一次生成的摘要
技术实现
1. 组件结构
使用 Svelte 开发,主要包含以下部分:
- 摘要显示区域
- 操作按钮组
- 加载状态提示
- 错误信息显示
2. 缓存设计
使用文章内容的哈希值作为缓存键:
async function getContentHash(content: string): Promise<string> {
const encoder = new TextEncoder();
const data = encoder.encode(content);
const hashBuffer = await crypto.subtle.digest('SHA-256', data);
const hashArray = Array.from(new Uint8Array(hashBuffer));
return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}
3. 重新生成限制
为每篇文章单独计数:
- 使用文章哈希作为计数器标识
- 每天自动重置计数
- 开发环境可配置是否启用限制
4. API 集成
使用 GLM-4 模型生成摘要:
- 优化提示词以获得更好的摘要效果
- 处理各种错误情况
- 支持配置不同的模型
开发难点
1. 缓存策略
最初的设计中,缓存逻辑较为简单,导致一些问题:
- 重复生成摘要
- 缓存过期处理
- 多设备同步问题
解决方案:
- 使用内容哈希确保唯一性
- 添加时间戳处理过期
- 考虑未来添加云端同步
2. 用户体验
遇到的问题:
- 加载状态反馈不足
- 错误提示不够友好
- 操作按钮布局在移动端不理想
改进措施:
- 添加加载动画
- 优化错误提示文案
- 使用响应式设计优化移动端显示
3. 性能优化
主要优化点:
- 减少不必要的 API 调用
- 优化缓存读写操作
- 控制重新生成的频率
未来计划
功能增强:
- 支持自定义摘要长度
- 添加多语言支持
- 提供摘要质量反馈
技术改进:
- 添加云端存储支持
- 优化移动端体验
- 提供更多自定义选项
其他计划:
- 添加使用统计
- 优化 API 调用成本
- 提供更多 AI 模型选择
总结
AI 摘要功能的开发过程中,我们注重以下几点:
- 用户体验优先
- 性能和效率的平衡
- 代码的可维护性
- 功能的可扩展性
通过这些努力,我们实现了一个实用、高效的 AI 摘要功能,为博客增添了实用的辅助工具。