技术框架总结.md 6.4 KB

Lyrria 技术框架总结

项目概述

项目名称 Lyrria 语音助手
类型 英语学习 AI 语音对话应用
架构 前后端分离 + WebSocket 实时通信
核心功能 实时语音对话(STT → LLM → TTS 流水线)

前端技术栈

核心框架

技术 版本 用途
React 18.2.0 UI 框架
TypeScript 5.3.3 类型安全
Vite 5.0.8 构建工具
Ant Design 5.12.0 UI 组件库

状态管理

技术 用途
Zustand 4.4.7 全局状态管理

样式方案

技术 配置 说明
Tailwind CSS 4.1.16 CSS 框架
postcss-px-to-viewport 1.1.1 移动端适配(375×812 基准,px → vw)
postcss + Autoprefixer 8.5.6 / 10.4.21 CSS 后处理

音频处理

技术 用途
recorder-core 1.2.23100900 录音功能
lottie-web 5.12.2 GIF 动画渲染
video.js 8.23.4 视频/音频播放

通信与路由

技术 用途
React Router DOM 7.9.4 路由管理
reconnecting-websocket 4.4.0 WebSocket 断线重连

开发工具

技术 用途
@vitejs/plugin-react 4.2.1 React 插件

后端技术栈

核心框架

技术 版本 用途
FastAPI 0.110.0 Web 框架
Uvicorn 0.27.1 ASGI 服务器
Python 3.11+ 开发语言

WebSocket

技术 用途
websockets 12.0 WebSocket 协议实现

配置与日志

技术 用途
python-dotenv 1.0.1 环境变量加载
pydantic 2.6.1 数据验证
pydantic-settings 2.2.1 配置管理
loguru 0.7.2 日志记录

异步网络

技术 用途
httpx 0.27.0 异步 HTTP 客户端(支持 HTTP/2 连接池)

数据库

技术 用途
SQLAlchemy 2.0.36 ORM(异步支持)
aiomysql 0.2.0 MySQL 异步驱动
PyMySQL 1.1.0 MySQL 客户端
redis 5.0.0+ 缓存与会话存储(异步支持)

测试

技术 用途
pytest 8.2.1 测试框架
pytest-asyncio 0.23.7 异步测试支持
aiosqlite 0.20.0 SQLite 异步支持

AI 服务集成

DashScope(阿里云)

服务 模型 用途
STT qwen3-asr-flash-realtime 实时语音识别
LLM qwen-flash / qwen-plus 对话生成
TTS cosyvoice-v3-flash / qwen3-tts-flash 语音合成

核心服务文件

文件 功能
ai_service.py AI 服务封装(STT/LLM/TTS)
stt_service.py 语音识别服务
websocket_handler.py WebSocket 处理器(实时对话流水线)

目录结构

Lyrria/
├── backend/                 # 后端服务
│   ├── main.py             # FastAPI 入口
│   ├── config.py           # 配置管理(pydantic-settings)
│   ├── ai_service.py       # AI 服务集成
│   ├── stt_service.py      # STT 服务
│   ├── websocket_handler.py # WebSocket 处理器
│   ├── database.py         # 数据库初始化
│   ├── http_pool.py        # HTTP 连接池管理
│   ├── services/           # 业务服务层
│   │   ├── user_service.py        # 用户服务
│   │   ├── message_service.py     # 消息服务
│   │   ├── context_service.py     # 上下文服务
│   │   ├── summary_service.py     # 总结服务
│   │   ├── energy_stone_service.py # 能量石服务
│   │   ├── redis_cache_service.py # Redis 缓存
│   │   └── wechat_jsapi_service.py # 微信 JSSDK
│   └── models_db.py        # 数据库模型
│
├── frontend/               # 前端应用
│   ├── src/
│   │   ├── pages/         # 页面组件(20+ 页面)
│   │   ├── components/    # 通用组件
│   │   ├── hooks/         # 自定义 Hooks
│   │   ├── store/         # Zustand 状态管理
│   │   ├── router/        # 路由配置
│   │   ├── types/         # TypeScript 类型定义
│   │   └── utils/         # 工具函数
│   ├── vite.config.ts     # Vite 配置
│   ├── tailwind.config.js # Tailwind 配置
│   └── postcss.config.js  # PostCSS 配置
│
├── memory_summaries/       # 记忆总结服务
├── sendmsg/               # 消息发送服务(邮件/短信)
└── 项目文档/              # 技术文档

部署配置

生产环境

组件 技术
反向代理 Nginx
SSL 证书 Let's Encrypt / 自签名
进程管理 systemd
数据库 MySQL + Redis

环境变量管理

文件 说明
backend/.env 后端配置(API Key、数据库连接等)
Vite 环境变量 前端通过 VITE_* 前缀加载

核心配置项

# AI 服务
DASHSCOPE_API_KEY        # 阿里云 API Key
STT_MODEL                # 语音识别模型
LLM_MODEL                # 语言模型
TTS_MODEL                # 语音合成模型

# 数据库
MYSQL_HOST/PORT/USER/PASSWORD/DATABASE
REDIS_HOST/PORT/DB

# 服务
HOST/PORT                # 服务监听地址
CORS_ORIGINS             # 跨域白名单

性能优化

后端优化

优化项 实现
HTTP/2 连接池 http_pool.py 管理
TTS 连接预热 启动时后台预热
异步 I/O 全程 async/await
数据库连接池 SQLAlchemy 异步连接池
Redis 连接复用 单例模式

前端优化

优化项 实现
移动端适配 postcss-px-to-viewport
音频流式播放 边接收边播放
WebSocket 重连 reconnecting-websocket
组件懒加载 React.lazy
响应式排版 clamp() + vw/vh

第三方集成

平台 功能
微信开放平台 OAuth 登录
微信公众平台 JSSDK 分享
QQ 开放平台 OAuth 登录 + 分享

技术特点

  1. 实时语音对话:STT → LLM → TTS 全流水线异步处理
  2. 移动端优先:响应式设计,px 自动转 vw
  3. 严格类型:Python 类型提示 + TypeScript 严格模式
  4. 高性能:HTTP/2 连接池 + 数据库连接池 + Redis 缓存
  5. 容错机制:TTS 重试 + WebSocket 重连 + 健康检查