Просмотр исходного кода

docs: Update project documentation with detailed startup methods and directory structure

zhouqi 5 дней назад
Родитель
Сommit
07b2a9bcd3
2 измененных файлов с 451 добавлено и 117 удалено
  1. 0 91
      CODE_CLEANUP_SUMMARY.md
  2. 451 26
      README.md

+ 0 - 91
CODE_CLEANUP_SUMMARY.md

@@ -1,91 +0,0 @@
-# 项目代码整理总结
-
-## 📋 整理完成时间
-2025-02-03
-
-## ✅ 已完成的整理工作
-
-### 1. 删除未使用的依赖
-- ✅ **已删除** `web/web` 文件夹
-  - 包含未使用的 TensorFlow.js 和 BlazeFace 依赖
-  - 项目实际使用后端 API 进行人脸检测,不需要这些前端库
-
-### 2. .gitignore 优化
-- ✅ **已更新** `.gitignore` 文件,新增以下忽略规则:
-  - Python 缓存文件:`__pycache__/`, `*.pyc`, `*.pyo`
-  - 日志文件:`logs/`, `*.log`
-  - 构建产物:`dist/`, `.next/`, `out/`, `build/`
-  - 临时文件:`*.tmp`, `*.temp`, `*.cache`
-  - 环境变量:`.env`, `.env.local`, `*.env`
-  - SSL 证书:`scripts/certs/*.key`, `scripts/certs/*.crt`
-  - OS 文件:`.DS_Store`, `Thumbs.db`
-  - IDE 文件:`*.swp`, `*.swo`
-
-### 3. 敏感信息检查
-- ✅ **已检查** 所有配置文件
-  - 所有引擎配置文件中的 `api_key` 字段均为空字符串(安全)
-  - `docker-compose.yaml` 使用环境变量 `${DASHSCOPE_API_KEY}`(安全)
-  
-- ⚠️ **需要注意**:
-  - `configs/agents/difyAgent.yaml` 中包含示例 API key 和服务器地址
-    - 第 18 行:`default: "http://47.110.48.75/v1"`
-    - 第 26 行:`default: "app-gId1iPrVr9AtNWw1ZQ8CiUtv"`
-    - 第 34 行:`default: "usky"`
-  - **建议**:确认这些是否为示例值,如果是真实密钥需要移除或替换为占位符
-
-### 4. 项目结构检查
-- ✅ 项目结构清晰,无明显的冗余文件
-- ✅ 配置文件模板完整
-- ✅ 所有必要的文档文件存在
-
-## 📝 建议的后续操作
-
-### 1. 敏感信息处理
-如果 `configs/agents/difyAgent.yaml` 中的值是真实密钥:
-```yaml
-# 建议修改为:
-default: ""  # 或 "your-api-key-here"
-```
-
-### 2. 提交前检查
-运行以下命令确认没有意外提交的文件:
-```bash
-# 检查被忽略的文件
-git status --ignored
-
-# 检查是否有大文件
-find . -type f -size +10M -not -path "./.git/*" -not -path "./node_modules/*"
-
-# 检查是否有敏感信息
-git grep -i "api.*key\|password\|secret" -- configs/
-```
-
-### 3. 清理已跟踪的临时文件(如果需要)
-如果之前有临时文件被提交,需要从 Git 中移除:
-```bash
-# 移除已跟踪的 __pycache__ 目录
-git rm -r --cached digitalHuman/**/__pycache__
-
-# 移除已跟踪的日志文件
-git rm -r --cached logs/
-
-# 移除已跟踪的构建产物
-git rm -r --cached web/dist/ meet/dist/
-```
-
-## 📊 整理统计
-
-- **删除的文件夹**:1 个(`web/web`)
-- **更新的文件**:2 个(`.gitignore`, 新增检查清单)
-- **检查的配置文件**:15+ 个
-- **发现的潜在问题**:1 个(需要确认的 API key)
-
-## ✨ 整理后的项目状态
-
-项目代码已整理完毕,可以安全提交。主要改进:
-1. ✅ 移除了未使用的依赖
-2. ✅ 完善了 .gitignore 配置
-3. ✅ 检查了敏感信息
-4. ✅ 验证了项目结构
-
-**注意**:提交前请确认 `configs/agents/difyAgent.yaml` 中的 API key 是否为示例值。

+ 451 - 26
README.md

@@ -47,39 +47,464 @@
 - [ ] 人物模型AI生成尝试
 - [ ] 情感控制人物表情动作支持
 
+## 项目启动方式
+
+### 方式一:一键启动脚本(推荐 - Windows)
+
+**适用场景:** 开发环境快速启动,自动打开 Chrome 全屏模式
+
+**使用方法:**
+1. 双击运行 `scripts/start-digital-human-chrome.bat`
+2. 脚本会自动:
+   - 启动后端服务(Python FastAPI,端口 8880)
+   - 启动前端服务(Next.js,端口 3000)
+   - 等待服务就绪后自动打开 Chrome 全屏模式
+   - 隐藏任务栏,防止系统休眠
+
+**前置要求:**
+- Python 3.x(已安装依赖:`pip install -r requirements.txt`)
+- Node.js 和 npm(已安装前端依赖:`cd web && npm install`)
+- Google Chrome 浏览器
+
+**停止服务:**
+- 关闭后端和前端服务窗口
+- 或使用 `scripts/stop-digital-human.bat` 脚本
+
+---
+
+### 方式二:手动启动(开发模式)
+
+**适用场景:** 需要查看详细日志的开发调试
+
+**后端启动:**
+```bash
+# 1. 安装依赖(首次运行)
+pip install -r requirements.txt
+
+# 2. 启动后端服务
+python main.py
+```
+后端服务默认运行在:`http://0.0.0.0:8880`
+
+**前端启动:**
+```bash
+# 1. 进入前端目录
+cd web
+
+# 2. 安装依赖(首次运行)
+npm install
+
+# 3. 启动前端服务(HTTPS模式)
+npm run dev
+
+# 或使用 HTTP 模式
+npm run dev:http
+```
+前端服务默认运行在:`https://localhost:3000`(需要 SSL 证书)
+
+**SSL 证书生成:**
+```bash
+# Windows
+scripts\generate_ssl_cert.bat
+
+# Linux/Mac
+scripts/generate_ssl_cert.sh
+```
+
+---
+
+### 方式三:Docker Compose 部署(生产环境)
+
+**适用场景:** 生产环境部署,容器化运行
+
+**快速启动(使用预构建镜像):**
+```bash
+docker-compose -f docker-compose-quickStart.yaml up -d
+```
+
+**本地构建启动:**
+```bash
+# 1. 构建并启动所有服务
+docker-compose up -d
+
+# 2. 查看服务状态
+docker-compose ps
+
+# 3. 查看日志
+docker-compose logs -f
+
+# 4. 停止服务
+docker-compose down
+```
+
+**服务说明:**
+- `adh-nginx`: Nginx 反向代理(端口 8880)
+- `adh-web`: 前端 Web 服务(Next.js)
+- `adh-api`: 后端 API 服务(FastAPI)
+- `adh-funasr`: FunASR 语音识别服务(端口 10095)
+
+**环境变量配置:**
+在项目根目录创建 `.env` 文件,配置必要的环境变量:
+```env
+DASHSCOPE_API_KEY=your_api_key_here
+```
+
+---
+
+### 方式四:Android APK 构建
+
+**适用场景:** 移动端应用部署
+
+**构建步骤:**
+```bash
+# Windows
+web\build-apk.bat
+
+# Linux/Mac
+web/build-apk.sh
+```
+
+构建完成后,APK 文件位于 `web/android/app/build/outputs/apk/` 目录
+
+---
+
+## 项目目录结构详解
+
+### 根目录文件
+
+```
+Uskyhuman/
+├── main.py                    # 项目主入口文件,启动后端服务
+├── requirements.txt           # Python 依赖包列表
+├── package.json              # 项目元数据配置
+├── docker-compose.yaml       # Docker Compose 配置文件(本地构建)
+├── docker-compose-quickStart.yaml  # Docker Compose 快速启动配置(使用预构建镜像)
+├── LICENSE                   # 开源许可证
+└── README.md                 # 项目说明文档
+```
+
+---
+
+### 📁 digitalHuman/ - 后端核心代码
+
+Python 后端服务的主要代码目录,包含所有业务逻辑。
+
+```
+digitalHuman/
+├── __init__.py              # 包初始化文件
+├── protocol.py              # 协议定义文件
+│
+├── bin/                     # 启动相关
+│   └── app.py              # 服务器启动逻辑,初始化引擎池和代理池
+│
+├── agent/                   # Agent 代理模块
+│   ├── agentBase.py        # Agent 基类定义
+│   ├── agentPool.py        # Agent 池管理
+│   ├── builder.py          # Agent 构建器
+│   └── core/               # Agent 核心实现
+│       ├── agentFactory.py # Agent 工厂类
+│       ├── cozeAgent.py    # Coze Agent 实现
+│       ├── difyAgent.py    # Dify Agent 实现
+│       ├── fastgptAgent.py # FastGPT Agent 实现
+│       ├── openaiAgent.py  # OpenAI Agent 实现
+│       └── repeaterAgent.py # 测试用重复 Agent
+│
+├── engine/                  # 引擎模块(ASR/TTS/LLM)
+│   ├── engineBase.py       # 引擎基类
+│   ├── enginePool.py       # 引擎池管理
+│   ├── builder.py          # 引擎构建器
+│   ├── asr/                # 语音识别(ASR)引擎
+│   │   ├── asrFactory.py   # ASR 工厂类
+│   │   ├── cozeASR.py      # Coze ASR 实现
+│   │   ├── dashscopeASR.py # 阿里云 DashScope ASR
+│   │   ├── dashscopeStreamingASR.py # DashScope 流式 ASR
+│   │   ├── difyASR.py      # Dify ASR 实现
+│   │   ├── funasrStreamingASR.py # FunASR 流式识别
+│   │   └── tencentASR.py   # 腾讯云 ASR 实现
+│   ├── tts/                # 文本转语音(TTS)引擎
+│   │   ├── ttsFactory.py   # TTS 工厂类
+│   │   ├── aliNLSTTS.py    # 阿里云 NLS TTS
+│   │   ├── cozeTTS.py      # Coze TTS 实现
+│   │   ├── difyTTS.py      # Dify TTS 实现
+│   │   ├── edgeTTS.py      # Edge TTS(微软)
+│   │   └── tencentTTS.py   # 腾讯云 TTS 实现
+│   └── llm/                # 大语言模型(LLM)引擎
+│       └── llmFactory.py   # LLM 工厂类
+│
+├── server/                  # Web 服务器模块
+│   ├── app.py              # FastAPI 应用实例
+│   ├── router.py           # 路由配置
+│   ├── ws.py               # WebSocket 处理
+│   ├── models.py           # 数据模型定义
+│   ├── reponse.py          # 响应格式化
+│   ├── header.py           # HTTP 头处理
+│   ├── api/                # API 接口实现
+│   │   ├── agent/          # Agent 相关 API
+│   │   │   └── agent_api_v0.py
+│   │   ├── asr/            # ASR 相关 API
+│   │   │   └── asr_api_v0.py
+│   │   ├── tts/            # TTS 相关 API
+│   │   │   └── tts_api_v0.py
+│   │   ├── llm/            # LLM 相关 API
+│   │   │   └── llm_api_v0.py
+│   │   ├── face_detection/ # 人脸检测 API
+│   │   │   └── face_detection_api_v0.py
+│   │   └── common/         # 通用 API
+│   │       └── common_api_v0.py
+│   └── core/               # 服务器核心功能
+│       └── [核心处理逻辑文件]
+│
+├── core/                    # 核心功能模块
+│   ├── openai.py           # OpenAI 客户端封装
+│   └── runner.py           # 运行器核心逻辑
+│
+├── utils/                   # 工具函数模块
+│   ├── configParser.py     # 配置文件解析器
+│   ├── env.py              # 环境变量处理
+│   ├── logger.py           # 日志工具
+│   ├── audio.py            # 音频处理工具
+│   ├── func.py             # 通用函数
+│   ├── registry.py         # 注册表工具
+│   └── streamParser.py     # 流解析工具
+│
+├── handlers/               # 处理器模块(预留扩展)
+│
+└── uniface/                # UniFace 人脸处理库
+    ├── analyzer.py         # 人脸分析器
+    ├── face.py             # 人脸处理主类
+    ├── face_utils.py       # 人脸工具函数
+    ├── model_store.py      # 模型存储管理
+    ├── onnx_utils.py       # ONNX 工具函数
+    ├── detection/          # 人脸检测模块
+    ├── recognition/        # 人脸识别模块
+    ├── landmark/           # 关键点检测模块
+    └── attribute/          # 属性分析模块
+```
+
+---
+
+### 📁 web/ - 前端代码
+
+Next.js 前端应用,提供用户界面和交互。
+
+```
+web/
+├── package.json            # 前端依赖配置
+├── next.config.ts          # Next.js 配置文件
+├── tsconfig.json           # TypeScript 配置
+├── tailwind.config.ts      # Tailwind CSS 配置
+├── server.js               # HTTPS 服务器(开发模式)
+├── capacitor.config.ts     # Capacitor 移动端配置
+│
+├── app/                    # Next.js App Router 页面
+│   ├── layout.tsx          # 根布局组件
+│   ├── page.tsx            # 首页
+│   ├── not-found.tsx       # 404 页面
+│   ├── providers.tsx       # 全局 Provider
+│   └── (products)/         # 产品相关页面
+│       └── sentio/         # Sentio 数字人页面
+│           └── [页面组件文件]
+│
+├── components/             # React 组件
+│   ├── header/             # 头部组件
+│   │   └── logo.tsx
+│   ├── icons/              # 图标组件
+│   ├── slider/             # 滑块组件
+│   └── tips/               # 提示组件
+│
+├── lib/                    # 库和工具函数
+│   ├── api/                # API 调用封装
+│   │   ├── requests.ts     # HTTP 请求封装
+│   │   ├── websocket.ts    # WebSocket 封装
+│   │   └── server.ts       # 服务器配置
+│   ├── live2d/             # Live2D 相关库
+│   │   ├── Core/           # Live2D 核心库
+│   │   ├── Framework/      # Live2D 框架
+│   │   ├── src/            # Live2D 源码
+│   │   └── live2dManager.ts # Live2D 管理器
+│   ├── store/              # 状态管理(Zustand)
+│   │   ├── common.ts       # 通用状态
+│   │   └── sentio.ts       # Sentio 状态
+│   ├── utils/              # 工具函数
+│   ├── constants.ts        # 常量定义
+│   ├── protocol.ts         # 协议定义
+│   ├── path.ts             # 路径工具
+│   └── locale.ts           # 国际化工具
+│
+├── hooks/                  # React Hooks
+│   └── request.ts          # 请求 Hook
+│
+├── i18n/                   # 国际化配置
+│   ├── config.ts           # i18n 配置
+│   ├── request.ts          # 请求处理
+│   └── locales/            # 语言文件
+│       ├── zh.json         # 中文
+│       └── en.json         # 英文
+│
+├── styles/                  # 样式文件
+│   ├── globals.css         # 全局样式
+│   └── fonts/              # 字体文件
+│
+├── public/                  # 静态资源
+│   ├── sentio/             # Sentio 模型资源
+│   │   └── [Live2D 模型文件:.moc3, .json, .png 等]
+│   ├── vad/                # VAD(语音活动检测)模型
+│   │   └── [.onnx, .wasm, .js 文件]
+│   ├── images/             # 图片资源
+│   ├── image/              # 图片资源
+│   ├── embed.js            # 嵌入脚本
+│   └── index.html          # 入口 HTML
+│
+└── android/                 # Android 应用配置(Capacitor)
+    ├── app/                # Android 应用代码
+    ├── build.gradle        # Gradle 构建配置
+    ├── gradle.properties   # Gradle 属性
+    └── [其他 Android 配置文件]
+```
+
+---
+
+### 📁 configs/ - 配置文件目录
+
+所有服务的配置文件,采用 YAML 格式。
+
+```
+configs/
+├── config_template.yaml     # 主配置文件模板
+│
+├── agents/                  # Agent 代理配置
+│   ├── cozeAgent.yaml       # Coze Agent 配置
+│   ├── difyAgent.yaml       # Dify Agent 配置
+│   ├── fastgptAgent.yaml    # FastGPT Agent 配置
+│   ├── openaiAPI.yaml       # OpenAI API 配置
+│   └── repeaterAgent.yaml   # 测试用重复 Agent 配置
+│
+└── engines/                 # 引擎配置
+    ├── asr/                 # ASR 引擎配置
+    │   ├── cozeAPI.yaml
+    │   ├── dashscopeAPI.yaml
+    │   ├── dashscopeStreamingAPI.yaml
+    │   ├── difyAPI.yaml
+    │   ├── funasrStreamingAPI.yaml
+    │   └── tencentAPI.yaml
+    ├── tts/                 # TTS 引擎配置
+    │   ├── aliNLS.yaml
+    │   ├── cozeAPI.yaml
+    │   ├── difyAPI.yaml
+    │   ├── edgeAPI.yaml
+    │   └── tencentAPI.yaml
+    └── llm/                 # LLM 引擎配置
+        └── openaiAPI.yaml
+```
+
+**配置文件说明:**
+- 主配置文件:`configs/config_template.yaml` 定义服务器端口、默认引擎等
+- 引擎配置:每个 YAML 文件定义对应服务的 API 密钥、端点等参数
+- Agent 配置:定义 Agent 类型、参数和接入方式
+
+---
+
+### 📁 scripts/ - 脚本工具目录
+
+各种辅助脚本,用于自动化任务。
+
+```
+scripts/
+├── start-digital-human-chrome.bat  # Windows 一键启动脚本(Chrome 全屏)
+├── stop-digital-human.bat          # Windows 停止服务脚本
+├── test-env.bat                    # Windows 环境测试脚本
+├── generate_ssl_cert.bat           # Windows SSL 证书生成脚本
+├── generate_ssl_cert.sh            # Linux/Mac SSL 证书生成脚本
+├── hide-taskbar.ps1                # PowerShell 隐藏任务栏脚本
+├── show-taskbar.ps1                # PowerShell 显示任务栏脚本
+├── prevent-sleep.ps1               # PowerShell 防止系统休眠脚本
+└── setup-chrome-permissions.ps1    # PowerShell Chrome 权限设置脚本
+```
+
+---
+
+### 📁 docker/ - Docker 相关文件
+
+Docker 构建和部署相关文件。
+
+```
+docker/
+├── adhServer.Dockerfile     # 后端服务 Dockerfile
+├── adhWeb.Dockerfile        # 前端服务 Dockerfile
+├── ONNXRUNTIME_FIX.md       # ONNX Runtime 修复说明
+├── nginx/                   # Nginx 配置
+│   └── default.conf         # Nginx 默认配置
+└── volumes/                 # Docker 卷挂载资源
+    └── funasr-runtime-resources/  # FunASR 运行时资源
+        ├── models/          # FunASR 模型文件
+        └── sh/              # FunASR 启动脚本
+```
+
+---
+
+### 📁 build/ - 构建资源目录
+
+构建相关的资源文件。
+
+```
+build/
+├── icon.ico                 # 应用图标
+├── sdogu-08l3j-001.ico     # 备用图标
+└── README.md                # 构建说明
+```
+
+---
+
+### 📁 certs/ - 证书目录
+
+SSL/TLS 证书文件(用于 HTTPS)。
+
+```
+certs/
+├── server.key               # SSL 私钥(需生成)
+├── server.crt               # SSL 证书(需生成)
+└── README.md                # 证书说明
+```
+
+**生成证书:**
+```bash
+# Windows
+scripts\generate_ssl_cert.bat
+
+# Linux/Mac
+scripts/generate_ssl_cert.sh
+```
+
+---
+
+### 📁 images/ - 图片资源目录
+
+项目使用的图片资源。
+
+```
+images/
+└── images/                  # 产品展示图片
+    ├── 3-公司简介_01.jpg
+    ├── 4-无人机应用及服务介绍_01.jpg
+    ├── 5-智慧消防物联网产品介绍_01.jpg
+    ├── 6-智慧用电物联网产品介绍_01.jpg
+    ├── 7-智慧楼宇系统产品功能介绍_01.jpg
+    ├── 8-智慧园区系统产品功能介绍_01.jpg
+    ├── 9-智慧文旅系统产品功能介绍_01.jpg
+    └── 10-智慧政务系统产品功能介绍_01.jpg
+```
+
+---
+
 ## 部署&开发
+
 * 部署说明文档
 * Windows 部署指南(推荐)
 * 开发说明文档
 * 常见问题解答
 * Edge 展台模式使用指南
 * 启动说明文档
-* 项目结构说明文档
-
-### 快速启动(开发模式 + Chrome 全屏)
-项目提供了便捷的启动脚本,可以一键启动前端和后端服务,并自动在 Chrome 全屏模式下打开:
-
-**Windows 用户:**
-- **批处理脚本**(推荐):双击 `scripts/start-digital-human-chrome.bat` 文件
-- 详细使用说明请参考启动说明文档
-
-**功能说明:**
-1. 自动启动后端服务(Python FastAPI,端口 8880)
-2. 自动启动前端服务(Next.js,端口 3000)
-3. 自动检测服务就绪状态
-4. 服务就绪后自动使用 Chrome 全屏模式打开前端页面
-
-**使用要求:**
-- 已安装 Python 3.x 和所需依赖(运行 `pip install -r requirements.txt`)
-- 已安装 Node.js 和 npm
-- 已安装 Google Chrome 浏览器
-
-**注意事项:**
-- 首次运行会自动安装前端依赖(如果 node_modules 不存在)
-- 后端和前端服务会在独立窗口中运行,方便查看日志
-- 按 `Alt+F4` 退出 Chrome 全屏模式
-- 按 `F11` 切换全屏模式
-- 要停止服务,请关闭后端和前端服务窗口  
+* 项目结构说明文档  
 
 ## 关于永天科技
 永天科技专注于为企业提供专业的数字人解决方案,致力于打造有温度、有灵魂的智能数字人服务。