File size: 4,836 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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
---
title: Nora - 治愈系记录助手
emoji: 🌟
colorFrom: purple
colorTo: pink
sdk: docker
pinned: false
license: mit
---

# 🌟 治愈系记录助手 - SoulMate AI Companion

一个温暖、治愈的 AI 陪伴应用,帮助你记录心情、捕捉灵感、管理待办。

目前已上线huggingface,体验链接:https://huggingface.co/spaces/kernel14/Nora

## ✨ 核心特性

- 🎤 **语音/文字快速记录** - 自动分类保存
- 🤖 **AI 语义解析** - 智能提取情绪、灵感和待办
- 💬 **AI 对话陪伴(RAG)** - 基于历史记录的个性化对话
- 🖼️ **AI 形象定制** - 生成专属治愈系角色(720 种组合)
- 🫧 **物理引擎心情池** - 基于 Matter.js 的动态气泡可视化

## 🚀 快速开始

### 在线使用

直接访问本 Space 即可使用完整功能!

### 配置 API 密钥

在 Space 的 **Settings → Repository secrets** 中配置:

**必需:**
- `ZHIPU_API_KEY` - 智谱 AI API 密钥
  - 获取地址:https://open.bigmodel.cn/
  - 用途:语音识别、语义解析、AI 对话

**可选:**
- `MINIMAX_API_KEY` - MiniMax API 密钥
- `MINIMAX_GROUP_ID` - MiniMax Group ID
  - 获取地址:https://platform.minimaxi.com/
  - 用途:AI 形象生成

## 📖 使用说明

1. **首页快速记录**
   - 点击麦克风录音或在输入框输入文字
   - AI 自动分析并分类保存

2. **查看分类数据**
   - 点击顶部心情、灵感、待办图标
   - 查看不同类型的记录

3. **与 AI 对话**
   - 点击 AI 形象显示问候对话框
   - 点击对话框中的聊天图标进入完整对话
   - AI 基于你的历史记录提供个性化回复

4. **定制 AI 形象**
   - 点击右下角 ✨ 按钮
   - 选择颜色、性格、外观、角色
   - 生成专属形象(需要 MiniMax API)

5. **心情气泡池**
   - 点击顶部心情图标
   - 左右滑动查看不同日期的心情卡片
   - 点击卡片展开查看当天的气泡池
   - 可以拖拽气泡,感受物理引擎效果

## 📊 API 端点

- `POST /api/process` - 处理文本/语音输入
- `POST /api/chat` - 与 AI 对话(RAG)
- `GET /api/records` - 获取所有记录
- `GET /api/moods` - 获取情绪数据
- `GET /api/inspirations` - 获取灵感
- `GET /api/todos` - 获取待办事项
- `POST /api/character/generate` - 生成角色形象
- `GET /health` - 健康检查
- `GET /docs` - API 文档

## 🔗 相关链接

- [GitHub 仓库](https://github.com/kernel-14/Nora)
- [详细文档](https://github.com/kernel-14/Nora/blob/main/README.md)
- [智谱 AI](https://open.bigmodel.cn/)
- [MiniMax](https://platform.minimaxi.com/)
- [Huggingface](https://huggingface.co/spaces/kernel14/Nora)

## 📝 技术栈

- **后端**: FastAPI + Python 3.11
- **前端**: React + TypeScript + Vite
- **物理引擎**: Matter.js
- **AI 服务**: 智谱 AI (GLM-4) + MiniMax
- **部署**: Hugging Face Spaces (Docker)

## 🔧 本地开发

### 启动后端服务

```bash
# 安装依赖
pip install -r requirements.txt

# 配置环境变量(复制 .env.example 为 .env 并填写)
cp .env.example .env

# 启动服务(端口 8000)
python scripts/start_local.py
```

### 构建前端

```bash
cd frontend
npm install
npm run build
```

### 局域网访问

1. 启动后端后,会显示局域网访问地址(如 `http://192.168.1.100:8000/`2. 其他设备连接同一 WiFi 后,使用该地址访问
3. 如果无法访问,请参考 [局域网访问快速修复指南](docs/局域网访问快速修复.md)

**快速诊断**```bash
# Windows
scripts\test_lan_access.bat

# 或访问诊断页面
http://你的IP:8000/test-connection.html
```

## 🐛 故障排查

### 问题:其他设备访问显示 "Load failed"

**原因**:防火墙阻止、网络隔离或 API 地址配置错误

**解决方案**1. 运行诊断工具:`scripts\test_lan_access.bat`
2. 访问诊断页面:`http://你的IP:8000/test-connection.html`
3. 查看详细指南:[局域网访问快速修复](docs/局域网访问快速修复.md)

### 问题:语音识别失败

**原因**:未配置 ZHIPU_API_KEY 或 API 配额不足

**解决方案**1. 检查 `.env` 文件中的 `ZHIPU_API_KEY`
2. 访问 https://open.bigmodel.cn/ 检查配额

### 问题:AI 形象生成失败

**原因**:未配置 MINIMAX_API_KEY 或 API 配额不足

**解决方案**1. 检查 `.env` 文件中的 `MINIMAX_API_KEY``MINIMAX_GROUP_ID`
2. 访问 https://platform.minimaxi.com/ 检查配额

## 📚 文档

- [功能架构图](docs/功能架构图.md)
- [API 配置说明](docs/API_配置说明.md)
- [局域网访问指南](docs/局域网访问指南.md)
- [局域网访问快速修复](docs/局域网访问快速修复.md)
- [心情气泡池功能说明](docs/心情气泡池功能说明.md)

## 📄 License

MIT License