Skip to content

happy-agent-2025/child_happy_patter_release

Repository files navigation

Happy Partner - 儿童教育AI系统

Happy Partner是一个专为儿童设计的教育AI系统,结合了多种AI代理来提供安全、有趣和个性化的学习体验。

系统架构

本系统采用模块化设计,主要包括以下组件:

  • Meta Agent: 负责请求路由和分发
  • Safety Agent: 内容安全检查,确保儿童接触的内容安全
  • Edu Agent: 教育问答,提供学科知识解答
  • Memory Agent: 对话记忆和上下文管理
  • Emotion Agent: 情感陪伴,提供情绪支持
  • Audio Service: 音频处理服务,包括语音识别、语音合成、音频预处理和声纹验证
  • API服务: FastAPI构建的RESTful API接口
  • 数据库服务: SQLAlchemy构建的数据持久化层

对话存储机制

系统采用用户和代理类型级对话存储机制,确保对话历史的完整性和可追溯性:

1. 用户和代理类型级存储

  • 同一用户与同一代理类型的所有对话都存储在同一个数据库记录中
  • 每次用户输入和AI响应都会追加到该记录中
  • 通过user_id和agent_type关联同一用户与同一代理类型的对话

2. 对话历史结构

  • 使用JSON格式存储完整的对话历史
  • 每条对话包含用户输入、AI响应和时间戳
  • 支持按时间顺序查询和检索对话历史

3. 对话历史查询接口

  • GET /users/{user_id}/conversations - 获取用户对话历史
  • GET /users/{user_id}/conversations/recent - 获取用户最近的对话记录
  • GET /users/{user_id}/conversations/{agent_type} - 根据用户ID和代理类型获取对话记录
  • GET /sessions/{session_id}/conversations - 获取会话中的所有对话

数据库优化建议

由于系统设计要求每次对话都创建新记录,长期运行会产生大量数据。为优化数据库性能和资源使用,建议采取以下措施:

4. 定期归档策略

  • 将超过一定时间的历史数据移动到归档表中
  • 保持主表数据量在合理范围内

5. 数据清理机制

  • 定期删除不再需要的记录
  • 根据业务需求设定数据保留期限

3. 表分区

  • 按时间维度对对话表进行分区
  • 提高查询性能,便于数据管理

4. 压缩存储

  • 对历史数据采用压缩算法存储
  • 减少磁盘空间占用

5. 索引优化

  • 确保常用查询字段有适当索引
  • 定期分析和优化索引使用情况

数据库优化功能

系统已实现以下数据库优化功能:

1. 对话记录归档

  • archive_old_conversations方法可将指定天数之前的对话记录归档并压缩存储
  • 归档的数据会被移动到专门的归档表中,并在主表中删除
  • 数据在归档过程中会使用zlib算法进行压缩以节省存储空间
  • 归档表使用二进制字段存储压缩后的数据

2. 对话记录清理

  • delete_old_conversations方法可删除指定天数之前的对话记录
  • 默认删除365天之前的记录,可以通过参数自定义

这些功能可以帮助管理系统长期运行产生的大量数据,保持数据库性能。

安装和运行

  1. 克隆项目代码
  2. 安装依赖: poetry install
  3. 配置环境变量,把.env.example改成.env,并添加大模型的api key和url
  4. 初始化数据库: python db/init_db.py
  5. 安装ffmpeg: choco install ffmpeg
  6. 启动服务: python main.py

测试

运行所有测试: python -m pytest

运行特定测试: python -m pytest tests/test_xxx.py

当前进展

🎉 最新开发成果

前端MVP完整功能实现(2025-08-27)

  • 完整技术栈搭建 - Vite 5 + React 18 + TypeScript 5 + Ant Design 5
  • API服务层完整实现 - Axios配置、拦截器、完整TypeScript类型系统
  • 智能聊天功能 - 前后端完整打通,支持多代理智能路由
  • 用户认证系统 - 登录功能、JWT令牌管理、自动错误处理
  • 实时聊天界面 - 消息发送/接收、简化代理显示、实时状态反馈
  • 开发环境配置 - 环境变量管理、热重载、代理配置
  • 🎯 核心体验完整 - 用户可完整体验登录→聊天→AI响应的全流程

前端MVP界面完整实现(2025-08-26)

  • Vite + React + TypeScript项目 - 现代化前端架构搭建完成
  • React Router路由配置 - 多页面导航支持,包含聊天页和登录页
  • Ant Design UI组件库 - 完整集成,提供一致的设计语言
  • 基础布局组件 - Header、Sidebar、Content的响应式布局
  • 聊天界面框架 - 消息列表和输入框基础组件
  • 登录页面 - 完整的用户认证表单界面
  • 开发服务器 - 运行在 http://localhost:3001,支持热重载

声纹验证系统完整实现(2025-08-24)

  • ✅ 声纹特征数据库持久化存储,支持事务完整性
  • ✅ 内存缓存优化,提高验证性能
  • ✅ 完整的测试覆盖,包含真实数据库操作测试
  • ✅ 音频预处理功能完整实现并测试验证

✅ 已实现的核心功能

前端MVP功能完整

  • 项目基础架构:Vite 5 + React 18 + TypeScript 5现代化技术栈
  • 路由系统:React Router v7完整路由配置,支持嵌套路由
  • UI组件库:Ant Design v5完整集成,提供丰富的预制组件
  • API服务层:Axios配置、拦截器、完整TypeScript类型定义
  • 智能聊天:前后端打通,支持多代理智能路由,实时消息处理
  • 用户认证:登录界面、JWT令牌管理、自动错误处理和重定向
  • 界面优化:简化代理显示、实时状态反馈、加载状态管理
  • 开发环境:环境变量配置、热重载服务器、API代理配置

多代理架构完整

  • Meta Agent:智能请求路由和分发
  • Safety Agent:内容安全审查和过滤
  • Edu Agent:教育问答和知识解答
  • Emotion Agent:情感陪伴和心理支持
  • Memory Agent:对话记忆管理

音频服务完整

  • STT服务:语音转文本,支持音频预处理
  • TTS服务:文本转语音,可调节语速音量
  • 音频预处理:完整的预处理流水线(services/processing.py)
    • ✅ 音频归一化:基于目标RMS值的音量标准化,支持自定义目标值
    • ✅ 智能静音移除:可调阈值静音检测,支持最小静音持续时间配置
    • ✅ 高质量重采样:使用scipy.signal.resample算法,支持任意采样率转换
    • ✅ 完整预处理流程:静音移除 → 归一化 → 重采样
  • 声纹验证:完整的生物特征认证系统(services/verification.py)
    • ✅ 多维度特征提取:MFCC系数、频谱质心、过零率、频段能量分布
    • ✅ 数据库持久化存储:SQLite + SQLAlchemy ORM存储声纹特征
    • ✅ 内存缓存优化:LRU缓存策略加速验证性能
    • ✅ 事务安全:数据库操作完整性保障,包含提交验证机制
    • ✅ 完整验证日志:记录所有验证尝试和结果

API接口丰富

  • 完整的RESTful API设计
  • 用户认证和会话管理
  • 对话历史查询和检索
  • 安全日志记录和审计

数据库优化

  • 对话归档和压缩功能(zlib压缩)
  • 数据清理和定期维护机制
  • 用户和代理类型级存储设计

测试覆盖全面

  • 143个测试用例覆盖主要功能
  • 单元测试完整性
    • ✅ 声纹验证测试覆盖率100%,包含真实数据库操作测试
    • ✅ 音频预处理测试完整覆盖所有功能模块
    • ✅ 数据库事务和完整性验证测试
    • ✅ 异步测试支持(pytest-asyncio)
  • 测试质量保障
    • ✅ 所有测试用例通过,无失败测试
    • ✅ 包含边界条件测试和异常情况处理
    • ✅ 数据库操作的真实环境测试

待实现功能

⚠️ 需要改进和增强的功能

测试和文档

  • 增加集成测试和端到端测试覆盖率
  • 自动生成API文档(Swagger/OpenAPI)✅ 已完成
  • 完善部署和运维文档
  • 添加性能测试和负载测试

代理功能增强

  • Memory Agent智能上下文管理
  • 个性化学习推荐功能
  • 多语言支持(国际化)
  • 实时通信支持(WebSocket)

音频服务改进

  • 声纹特征持久化存储(已实现数据库存储和内存缓存)
  • 支持更多音频格式输入输出
  • 离线语音识别选项
  • 音频质量评估功能

安全和运维

  • 细粒度权限控制系统
  • API速率限制和防滥用
  • Docker容器化部署
  • 监控告警和日志分析

用户体验

  • Web前端管理界面 ✅ MVP基础界面已完成
  • 移动端应用程序
  • 文件上传下载管理
  • 实时通知和消息推送

🎯 优先级建议

  1. 高优先级:完善测试覆盖率,添加API文档,Web前端界面MVP已完成
  2. 中优先级:开发容器化部署,增强Memory Agent功能,支持更多音频格式
  3. 低优先级:多语言支持,移动端应用,高级监控功能

开发计划

参考 开发计划.md 文件了解完整开发计划。

API接口

系统提供丰富的RESTful API接口,支持以下功能:

1. 对话交互接口

  • POST /chat - 主要聊天接口
  • POST /safety/check - 内容安全检查接口
  • POST /edu/ask - 教育问答接口
  • POST /emotion/support - 情感支持接口
  • POST /memory/manage - 记忆管理接口

2. 对话历史和安全查询接口

  • GET /users/{user_id}/conversations - 获取用户所有对话历史
  • GET /users/{user_id}/conversations/recent - 获取用户最近的对话记录(可指定数量)
  • GET /users/{user_id}/conversations/{agent_type} - 按代理类型获取对话记录
  • GET /sessions/{session_id}/conversations - 获取会话中的所有对话
  • GET /users/{user_id}/security-logs - 获取用户安全日志记录

3. 用户和会话管理接口

  • POST /users/{user_id}/sessions - 创建新会话
  • GET /users/{user_id}/sessions - 获取用户的所有活跃会话
  • GET /sessions/{session_id} - 获取特定会话详情
  • PUT /sessions/{session_id}/title - 更新会话标题
  • POST /sessions/{session_id}/activate - 激活会话
  • POST /sessions/{session_id}/deactivate - 停用会话
  • DELETE /sessions/{session_id} - 删除会话(标记为非活跃)

4. 音频处理接口

  • POST /audio/transcribe - 语音转文本接口

    • 支持音频预处理选项(自动归一化、静音移除、重采样)
    • 支持多种音频格式输入
  • POST /audio/synthesize - 文本转语音接口

    • 支持语速、音量调节
    • 多种语音风格选择
  • POST /audio/process - 音频预处理接口

    • 归一化:目标RMS值调节(默认0.1)
    • 静音移除:可调阈值检测(默认0.01)
    • 重采样:支持任意目标采样率(默认16000Hz)
    • 完整预处理流水线:静音移除 → 归一化 → 重采样
  • POST /voice/register - 用户声纹注册接口

    • ✅ 多维度声纹特征提取(MFCC、频谱特征、能量分布)
    • ✅ 数据库持久化存储 + 内存缓存
    • ✅ 事务安全性和提交验证
  • POST /voice/verify - 用户声纹验证接口

    • ✅ 余弦相似度计算,返回相似度分数(0-1)
    • ✅ 可调验证阈值(默认0.8)
    • ✅ 完整的验证日志记录
    • ✅ 内存缓存加速验证过程

5. 认证和用户管理接口

  • POST /auth/register - 用户注册接口

    • JWT令牌认证系统
    • 密码加密存储(BCrypt)
  • POST /auth/login - 用户登录接口

    • JWT令牌颁发
    • 安全的身份验证流程
  • GET /auth/me - 获取当前用户信息

    • 需要有效的JWT令牌
    • 返回用户基本信息和安全状态

API文档使用指南

📚 自动生成的Swagger文档

系统现已实现完整的API文档自动化,通过FastAPI的OpenAPI集成自动生成Swagger UI文档。

访问方式

  1. 启动应用程序:python main.py
  2. 打开浏览器访问:http://localhost:8000/docs
  3. 即可查看完整的交互式API文档

文档特性

完整的API端点文档 - 24个API路径全部文档化
详细的请求/响应模型 - 29个Pydantic Schema自动生成
交互式测试功能 - 可直接在浏览器中测试API
参数验证文档 - 所有参数的类型、默认值、描述信息
响应示例 - 每个端点的成功和错误响应示例

包含的Schema类型

  • 认证相关: UserCreate, UserLogin, Token, UserResponse
  • 聊天相关: ChatRequest, SafetyCheckRequest, SafetyCheckResponse, EduQuestionRequest, EduQuestionResponse, EmotionSupportRequest, EmotionSupportResponse
  • 音频处理: AudioTranscribeRequest, AudioTranscribeResponse, AudioSynthesizeRequest, AudioSynthesizeResponse, AudioProcessRequest, AudioProcessResponse
  • 声纹验证: VoiceRegisterRequest, VoiceRegisterResponse, VoiceVerifyRequest, VoiceVerifyResponse
  • 记忆管理: MemoryActionRequest, MemoryActionResponse, ConversationHistoryResponse, SecurityLogResponse
  • 对话历史: ConversationItem, ConversationListResponse, SecurityLogItem, SecurityLogListResponse

使用示例

在Swagger UI中,您可以:

  1. 查看API详情:点击每个端点展开查看详细文档
  2. 测试API调用:使用"Try it out"按钮直接测试接口
  3. 查看Schema定义:点击"Schema"查看请求/响应模型结构
  4. 查看参数说明:所有参数都有详细描述和示例值

🔧 开发集成

对于开发者集成,API文档提供:

  • OpenAPI规范文件:访问 /openapi.json 获取机器可读的API定义
  • 代码生成支持:可使用OpenAPI Generator等工具生成客户端代码
  • 类型安全:所有请求和响应都有严格的类型验证

前端技术栈

🎯 推荐技术栈

React + TypeScript + Vite + Ant Design

# 核心技术栈
React 18 + TypeScript 5 + Vite 5 + Ant Design 5

# 状态管理  
Redux Toolkit + React Query

# 开发工具
ESLint + Prettier + Jest + Testing Library

📦 项目结构

frontend/
├── src/
│   ├── components/     # 通用组件
│   │   └── Layout.tsx          # 基础布局组件 (Header/Sidebar/Content)
│   ├── pages/         # 页面组件
│   │   ├── ChatPage.tsx       # 聊天页面组件
│   │   └── LoginPage.tsx      # 登录页面组件
│   ├── services/      # API服务 (待实现)
│   ├── store/         # 状态管理 (待实现)
│   ├── hooks/         # 自定义Hooks (待实现)
│   ├── types/         # TypeScript类型 (待实现)
│   ├── utils/         # 工具函数 (待实现)
│   ├── App.tsx        # 主应用组件 (路由配置)
│   ├── App.css        # 全局样式文件
│   └── main.tsx       # 应用入口文件
├── public/            # 静态资源
├── package.json       # 项目配置和依赖
├── vite.config.ts     # Vite构建配置
└── tsconfig.json     # TypeScript配置

🚀 核心功能规划

1. 实时聊天界面

  • 基础聊天框架 - 消息列表和输入组件已完成
  • 智能聊天功能 - 前后端完整集成,支持多代理路由
  • 实时消息处理 - 发送/接收/状态反馈完整实现
  • 简化代理显示 - 按用户需求优化的界面展示
  • 实时消息推送(WebSocket)
  • 语音和文本输入切换
  • 消息历史管理

2. 音频功能界面

  • 音频录制和波形可视化
  • 实时语音转文字反馈
  • 文本转语音播放控制
  • 声纹注册和验证界面

3. 用户管理

  • 登录界面 - 基础登录表单已完成
  • 用户认证 - JWT令牌管理、自动重定向完整实现
  • API集成 - 登录功能与后端完整集成
  • 注册界面
  • 用户个人信息设置
  • 会话历史查看和搜索

4. 响应式设计

  • 基础响应式布局 - 布局组件已完成
  • 移动端友好界面优化
  • PWA渐进式Web应用
  • 离线功能支持
  • 触摸交互优化

🛠️ 开发命令

# 进入前端目录
cd frontend

# 安装依赖
npm install

# 开发模式 (端口3001)
npm run dev

# 生产构建
npm run build

# 代码检查
npm run lint

# 运行测试
npm run test

🌐 前端访问地址

🔧 前端技术特性

已实现的功能:

  • 现代化技术栈: Vite 5 + React 18 + TypeScript 5
  • 路由系统: React Router v7嵌套路由配置
  • UI框架: Ant Design v5完整集成,中文语言包
  • API服务层: Axios配置、拦截器、完整TypeScript类型系统
  • 智能聊天: 前后端完整集成,多代理智能路由
  • 用户认证: 登录、JWT令牌管理、自动错误处理
  • 布局组件: 响应式Layout组件(Header/Sidebar/Content)
  • 页面组件: ChatPage(智能聊天) + LoginPage(用户认证)
  • 环境配置: 环境变量管理、热重载、API代理

技术优势:

  • 🚀 快速启动: Vite提供极快的冷启动和热更新
  • 🔒 类型安全: TypeScript完整类型支持
  • 🎨 设计一致: Ant Design提供专业的设计语言
  • 📱 响应式: 基础响应式布局支持
  • 🔌 易于扩展: 模块化组件架构

🌐 API集成示例

系统已实现完整的API服务层,提供类型安全的前后端通信:

// 完整的认证API服务 (src/services/authApi.ts)
export class AuthApiService {
  static async login(credentials: LoginRequest): Promise<Token> {
    // JWT令牌自动存储和管理
  }
  
  static async getCurrentUser(): Promise<UserResponse> {
    // 自动JWT令牌验证
  }
}

// 完整的聊天API服务 (src/services/chatApi.ts)  
export class ChatApiService {
  static async intelligentChat(message: string, userId?: number): Promise<any> {
    // 智能代理路由,支持多代理类型
  }
  
  static async checkSafety(content: string): Promise<SafetyCheckResponse> {
    // 内容安全检查
  }
}

// 类型安全的API配置 (src/services/api.ts)
const api = axios.create({
  baseURL: import.meta.env.VITE_API_BASE_URL,
  // 自动JWT令牌注入、错误处理、重定向
});

完整功能特性:

  • 类型安全: 完整TypeScript类型定义
  • 自动认证: JWT令牌自动管理和注入
  • 错误处理: 统一错误处理和用户友好提示
  • 智能路由: 支持多代理智能响应路由

📋 文档维护

API文档会自动保持更新:

  • 添加新的API端点时自动包含在文档中
  • 修改Schema时会自动更新文档
  • 无需手动维护文档文件

文档基于Pydantic模型自动生成,确保与代码实现始终保持一致。

技术架构

🏗️ 后端架构

★ Insight ─────────────────────────────────────

  • 架构优势:模块化设计良好,各代理职责清晰,易于扩展
  • 技术选型:FastAPI + SQLAlchemy组合适合API开发,测试覆盖全面
  • 安全考虑:内容过滤和声纹验证体现了儿童应用的特殊需求 ─────────────────────────────────────────────────

🎨 前端架构

★ Insight ─────────────────────────────────────

  • 现代化技术栈:React 18 + TypeScript + Vite提供最佳开发体验
  • 类型安全:完整TypeScript支持,与后端Pydantic模型完美匹配
  • 组件化设计:高度可复用的组件架构,便于维护和扩展
  • 状态管理:Redux Toolkit + React Query确保状态管理的一致性和性能
  • 响应式设计:移动端优先,支持PWA特性,提供原生应用般的体验 ─────────────────────────────────────────────────

许可证

本项目采用 MIT 许可证,仅供学习和参考使用。

贡献指南

欢迎提交Issue和Pull Request来帮助改进这个项目。在贡献代码前请确保:

  1. 代码符合PEP8规范
  2. 添加相应的测试用例
  3. 更新相关文档
  4. 通过所有现有测试

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors