File size: 7,247 Bytes
59bd45e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | ---
# 产品概述
一款通过 **iOS 原生 (SwiftUI)** 构建,结合 **BLE 蓝牙硬件** 震动提醒与 **AI 语义解析** 的治愈系记录助手。用户通过 APP 或配套硬件录音,系统自动将内容拆解为灵感、心情与待办,并通过 RAG 技术实现历史记忆的回溯。
# 核心交互逻辑
## 硬件交互:蓝牙协议
由于使用 iOS 原生开发,手机充当“网关”角色,负责硬件与云端的中转。
- **连接流程 (Local Only)**:
- **无需 API 接口**。iOS APP 使用 `CBCentralManager` 扫描硬件 UUID。
- 硬件作为外设 (Peripheral) 被手机连接。
- **指令交互**:
- **录音阶段**:硬件按下录音键,通过蓝牙特征值 (Characteristic) 将音频数据包流式传输或发送结束信号至 iOS。
- **震动反馈**:
- **轻微短振(心跳感)**:iOS 检测到录音启动,向蓝牙写入 `0x01` 指令。
- **急促振动(提醒感)**:iOS 的待办逻辑触发,向蓝牙写入 `0x02` 指令。
## AI:调用智谱原生api
- **语音转写**:iOS 使用 `URLSession` 调用智谱 **ASR API** 上传音频,实时获取转写文字。
- **语义理解**:iOS 调用 **GLM-4-Flash API**,通过 Prompt 约束 AI 返回标准 JSON(包含情绪、灵感、待办)。
- **形象定制**:登录时调用 **CogView API** 生成固定形象,图片下载后由 iOS 进行本地持久化存储。
# **技术架构 (iOS Native)**
## **前端:SwiftUI**
- **状态管理**:使用 `@Observable` (iOS 17+) 实时同步 AI 解析出的心情颜色和形象气泡。
- **持久化**:使用 **SwiftData** 存储本地 JSON 结构的记录(`records`, `moods`, `todos`, `inspirations`)。
- **安全性**:智谱 API Key 存储在 **Keychain** 中,避免硬编码。
## **AI 引擎 (智谱 API 集成)**
| **模块** | **API 模型** | **职责** |
| --- | --- | --- |
| **ASR** | 智谱语音识别 | 硬件原始音频转文字 |
| **NLP** | GLM-4-Flash | 解析 JSON 结构、RAG 历史回溯对话 |
| **图像** | CogView-3 | 登录时一次性生成固定猫咪形象 |
# AI形象生成
## 设置
- **初始化生成**:用户注册/首次登录时,系统引导用户输入关键词(或默认随机),调用 **GLM-Image (CogView)** 生成 1-3 张插画。
- **持久化存储**:生成的图片 URL 存储在用户配置中,不再随每次录音改变。
- **按需修改**:在“设置”提供修改接口,用户可以消耗积分或次数重新生成。
## 生成逻辑
为了保证品牌统一性,系统预设为”**治愈系插画猫咪**”,通过映射逻辑处理用户输入。
- **提示词生成逻辑 (Prompt Engineering)**
| **用户输入维度** | **映射逻辑 (Internal Tags)** | **示例** |
| --- | --- | --- |
| **颜色** | 主色调 & 环境色 | 温暖粉 -> `soft pastel pink fur, rose-colored aesthetic` |
| **性格** | 构图 & 眼神光 | 活泼 -> `big curious eyes, dynamic paw gesture, energetic aura` |
| **形象** | 配饰 & 特征 | 戴眼镜 -> `wearing tiny round glasses, scholarly look` |
【陪伴式朋友】【温柔照顾型长辈】【引导型 老师】
**系统底座提示词 (System Base Prompt):**
> "A masterpiece cute stylized cat illustration, [Color] theme, [Personality] facial expression and posture, [Description]. Japanese watercolor style, clean minimalist background, high quality, soft studio lighting, 4k."
>
## 技术架构
### 前端:iOS Native (SwiftUI)
- **UI 渲染**:利用 `SwiftUI` 实现毛玻璃效果与治愈系猫咪插画的流畅加载。
- **状态管理**:使用 `Combine` 或 `Observation` 框架同步心情颜色变化。
- **硬件接口**:`CoreBluetooth`。
### 后端:FastAPI (Python)
- **API 核心**:处理 ASR、NLP、RAG 和 Image Generation。
- **存储**:本地 JSON 文件系统(`records.json`, `moods.json`, `todos.json`, `inspirations.json`)。
### AI 引擎 (智谱全家桶)
- **ASR**:语音转文字。
- **GLM-4-Flash**:语义解析与 RAG 问答。
- **GLM-Image (CogView)**:基于情绪映射生成的静态形象。
# 核心功能模块
### 首页 - 录音与实时处理
- **功能描述:**
- 支持语音录音(5-30 秒)或文字直接输入。
- **静态形象展示**:页面中心展示常驻形象。
- 实时处理:完成录音后自动触发后端 ASR 与 NLP 流程。
- **结果速览**:展示最近一次分析的**原文及摘要**(提取出的情绪、灵感标签或待办任务)。
- **数据存储:** * 音频文件:`data/audio/{timestamp}.wav`
- 完整记录索引:`data/records.json`(包含关联的 JSON ID 和音频路径)。
### 灵感看板页面
- **功能描述:**
- **瀑布流展示**:以卡片形式展示所有灵感。
- **核心要素**:显示 AI 总结的核心观点、自动生成的标签、所属分类(工作/生活/学习/创意)。
- **筛选排序**:支持按分类筛选及时间顺序/倒序排列。
- **数据结构:** `inspirations.json` 存储核心观点、关键字及原文引用。
### 心情日记页面
- **功能描述:**
- **情绪可视化**:展示情绪分布柱状图(如:本周 60% 平静,20% 喜悦)。
- **记录列表**:显示每条记录的情绪类型、强度(1-10)及当时的心情关键词。
- **筛选**:可单独查看“喜”或“哀”等特定情绪的历史。
- **数据结构:** `moods.json` 记录 `type`, `intensity`, `keywords` 等字段。
### 待办清单页面
- **功能描述:**
- **任务管理**:从输入中自动提取出的任务(包含时间、地点、内容)。
- **状态切换**:支持手动勾选“已完成”。
- **统计**:显示待办/已完成的数量对比。
- **数据结构:** `todos.json` 包含任务描述、时间实体及完成状态。
### AI 对话页面
- **功能描述:**
- **智能检索**:用户询问“我上周关于论文有什么灵感?”时,系统通过 RAG 技术检索 `records.json` 并回答。
- **快捷指令**:提供“总结今日心情”、“还有哪些待办”等快捷按钮。
- **技术实现:** 基于 **GLM-4-Flash** 进行上下文理解与 RAG 检索。
---
# 业务流程与数据流
iOS 端在请求 GLM-4 时,使用以下 System Prompt 确保数据可被解析:
> "你是一个数据转换器。请将文本解析为 JSON 格式。维度包括:1.情绪(type,intensity); 2.灵感(core_idea,tags); 3.待办(task,time,location)。必须严格遵循 JSON 格式返回。"
>
### NLP 语义解析策略
| **提取维度** | **逻辑** | **去向** |
| --- | --- | --- |
| **情绪** | 识别情感极性与 1-10 的强度值 | `moods.json` |
| **灵感** | 提炼 20 字以内的核心观点 + 3个标签 | `inspirations.json` |
| **待办** | 识别时间词(如“明晚”)、地点与动词短语 | `todos.json` |
# 技术栈总结
- **开发语言**:Swift 6.0 / SwiftUI
- **核心框架**:CoreBluetooth (硬件), SwiftData (存储), CoreHaptics (震动)
- **AI 接口**:智谱 API (HTTP/HTTPS 请求)
- **数据存储**:iOS Local SandBox (音频文件 + 结构化数据) |