/trae_test

Primary LanguageTypeScript

智能陪伴应用 🤖💝

一个基于 React + TypeScript 的智能陪伴应用,提供日记记录、AI 对话、情绪分析等功能,旨在为用户提供贴心的数字陪伴体验。

✨ 核心功能

📝 日记记录系统

  • 富文本编辑: 支持格式化文本、图片、文件上传
  • 情绪标签: 智能情绪识别和手动标记
  • 多媒体支持: 图片、音频、视频附件
  • 天气位置: 自动记录天气和位置信息
  • 数据加密: 本地加密存储,保护隐私

💬 智能对话系统

  • AI 对话: 基于 OpenAI API 的智能对话
  • 多场景模式: 关怀模式、咨询模式、日常对话
  • 语音交互: Web Speech API 语音识别
  • 情绪感知: 实时情绪检测和响应
  • 会话管理: 对话历史记录和管理

📊 数据安全与管理

  • 本地存储: IndexedDB 本地数据库
  • 数据加密: AES 加密算法保护敏感数据
  • 数据导出: 支持数据备份和迁移
  • 隐私保护: 完全本地化,无数据上传

🎨 交互设计

  • 拟人化 UI: 温暖友好的界面设计
  • 响应式布局: 完美适配移动端和桌面端
  • 主题切换: 明暗主题自由切换
  • 角色定制: 个性化 AI 助手设置

🛠️ 技术栈

前端框架

  • React 18: 现代化 React 框架
  • TypeScript: 类型安全的 JavaScript
  • Vite: 快速的构建工具

UI 组件

  • Ant Design: 企业级 UI 组件库
  • TailwindCSS: 实用优先的 CSS 框架
  • Lucide React: 精美的图标库

状态管理

  • Zustand: 轻量级状态管理
  • React Router: 客户端路由

数据存储

  • IndexedDB: 浏览器本地数据库
  • LocalStorage: 配置信息存储
  • Web Crypto API: 数据加密

AI 集成

  • OpenAI API: GPT 模型集成
  • Web Speech API: 语音识别
  • 情绪分析: 文本情绪检测

🚀 快速开始

环境要求

  • Node.js >= 18.0.0
  • pnpm >= 8.0.0

安装依赖

# 克隆项目
git clone <repository-url>
cd trae-test

# 安装依赖
pnpm install

开发环境

# 启动开发服务器
pnpm dev

# TypeScript 类型检查
pnpm run check

# 代码格式化
pnpm run format

生产构建

# 构建生产版本
pnpm build

# 预览生产版本
pnpm preview

📁 项目结构

src/
├── components/          # 可复用组件
│   ├── ChatInterface.tsx      # 对话界面组件
│   ├── DiaryEditor.tsx        # 日记编辑器
│   ├── Layout.tsx             # 应用布局
│   └── ...
├── pages/              # 页面组件
│   ├── Home.tsx              # 首页
│   ├── Diary.tsx             # 日记页面
│   ├── Chat.tsx              # 对话页面
│   ├── Timeline.tsx          # 时间轴
│   └── Settings/             # 设置页面
├── services/           # 业务逻辑服务
│   ├── database.ts           # 数据库服务
│   ├── diaryService.ts       # 日记服务
│   ├── chatService.ts        # 对话服务
│   └── aiService.ts          # AI 服务
├── store/              # 状态管理
│   └── index.ts              # Zustand 状态
├── types/              # TypeScript 类型定义
│   └── index.ts
├── hooks/              # 自定义 Hooks
└── utils/              # 工具函数

🔧 配置说明

AI 服务配置

在使用 AI 对话功能前,需要配置 OpenAI API:

  1. 获取 OpenAI API Key
  2. 在应用设置中配置 API Key
  3. 选择合适的模型和参数

数据存储配置

应用使用 IndexedDB 进行本地存储:

  • 数据库名称: SmartCompanionDB
  • 版本: 1
  • 表结构:
    • diaries: 日记数据
    • chatSessions: 对话会话
    • chatMessages: 对话消息
    • userProfiles: 用户配置

🔒 隐私与安全

数据保护

  • 所有敏感数据使用 AES-256 加密
  • 数据完全存储在本地,不上传到服务器
  • 支持数据导出和删除

API 安全

  • OpenAI API Key 本地加密存储
  • 支持自定义 API 端点
  • 请求数据不包含个人身份信息

🎯 使用指南

日记记录

  1. 点击"写日记"进入编辑页面
  2. 输入标题和内容
  3. 添加情绪标签和多媒体附件
  4. 保存日记,系统自动加密存储

AI 对话

  1. 进入"对话"页面
  2. 选择对话模式(关怀/咨询/日常)
  3. 开始与 AI 助手对话
  4. 支持文字和语音输入

数据管理

  1. 在"设置"中查看数据统计
  2. 导出数据进行备份
  3. 清理或删除不需要的数据

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

开发规范

  • 遵循 TypeScript 严格模式
  • 使用 ESLint 和 Prettier 格式化代码
  • 编写单元测试覆盖核心功能
  • 提交前运行 pnpm run check

代码风格

  • 组件文件使用 PascalCase
  • 工具函数使用 camelCase
  • 常量使用 UPPER_SNAKE_CASE
  • 添加中文注释说明复杂逻辑

📄 许可证

MIT License - 详见 LICENSE 文件

🙏 致谢

感谢以下开源项目:


💝 智能陪伴,温暖相伴 - 让科技更有温度,让陪伴更加贴心。