# 往事拾遗 (Life Echo) 一个基于实时 WebSocket 长连接的语音对话回忆录生成系统。 ## 项目结构 ``` life-echo/ ├── api/ # 后端服务(FastAPI) │ ├── agents/ # LangChain Agent │ ├── database/ # 数据库模型和连接 │ ├── routers/ # API 路由 │ ├── services/ # 业务服务(ASR、TTS、PDF) │ └── main.py # FastAPI 应用入口 ├── app-android/ # Android 应用 │ └── app/ │ └── src/main/java/com/huaga/life_echo/ │ ├── data/ # 数据层(Room、Repository) │ ├── network/ # 网络层(WebSocket、REST API) │ ├── ui/ # UI 层(Compose) │ └── feature/ # 功能模块 └── doc/ # 文档 ├── 开发计划.md └── 数据库设计.md ``` ## 快速开始 ### 后端设置 1. 安装依赖: ```bash cd api pip install -r requirements.txt ``` 2. 配置环境变量: ```bash cp .env.example .env # 编辑 .env 文件,填入 OPENAI_API_KEY ``` 3. 初始化数据库: ```python from api.database import init_db init_db() ``` 4. 启动服务: ```bash uvicorn api.main:app --reload --host 0.0.0.0 --port 8000 ``` ### Android 设置 1. 使用 Android Studio 打开 `app-android` 目录 2. 同步 Gradle 依赖 3. 配置 API 地址(如需要): - 编辑 `app-android/app/src/main/java/com/huaga/life_echo/config/AppConfig.kt` - 修改 `BASE_URL` 和 `WS_BASE_URL` 4. 运行应用 ## 功能特性 - ✅ 实时 WebSocket 长连接对话 - ✅ 基于访谈问题的智能对话引导 - ✅ 自动将口语整理为书面语章节 - ✅ 基于传记结构的章节组织 - ✅ PDF 导出功能 - ✅ Android 本地数据存储 ## 技术栈 **后端:** - FastAPI + WebSocket - LangChain(对话 Agent + 整理 Agent) - SQLAlchemy + SQLite - OpenAI API(ASR、TTS、LLM) **Android:** - Kotlin + Jetpack Compose - Ktor WebSocket Client - Room Database - Coroutines + Flow ## 开发计划 详细开发计划请查看 [doc/开发计划.md](docs/开发计划.md) ## 许可证 MIT License