| --- |
| 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 |
|
|