docs: 批量更新历史文档中的 backend-single 引用为 server

This commit is contained in:
2026-06-27 17:27:27 +08:00
parent 5586dc5eac
commit 591f70a2f6
39 changed files with 1209 additions and 673 deletions
@@ -4,7 +4,7 @@
**Goal:** Add CPU-friendly open-source text-to-speech generation for user scripts, with cached backend tasks and mini program playback.
**Architecture:** `backend-single` creates TTS tasks, validates source ownership, cleans script text, checks audio cache, and calls a private Python FastAPI TTS service. The Python service runs on `101.200.208.45` and writes audio files under `/data/uploads/emotion-museum/tts`. The mini program requests generation from `ScriptDetailView.vue`, polls status, and plays the returned audio URL with `uni.createInnerAudioContext()`.
**Architecture:** `server` creates TTS tasks, validates source ownership, cleans script text, checks audio cache, and calls a private Python FastAPI TTS service. The Python service runs on `101.200.208.45` and writes audio files under `/data/uploads/emotion-museum/tts`. The mini program requests generation from `ScriptDetailView.vue`, polls status, and plays the returned audio URL with `uni.createInnerAudioContext()`.
**Tech Stack:** Spring Boot 2.7, MyBatis Plus, Java 17, MySQL, Python FastAPI, MeloTTS or equivalent CPU-friendly Chinese TTS engine, systemd, uni-app/Vue.
@@ -13,22 +13,22 @@
## File Structure
- Create `sql/2026-05-17-tts-task.sql`: `t_tts_task` migration.
- Create `backend-single/src/main/java/com/emotion/entity/TtsTask.java`: task entity.
- Create `backend-single/src/main/java/com/emotion/mapper/TtsTaskMapper.java`: task mapper.
- Create `backend-single/src/main/java/com/emotion/dto/request/tts/TtsTaskCreateRequest.java`: create request.
- Create `backend-single/src/main/java/com/emotion/dto/response/tts/TtsTaskResponse.java`: task response.
- Create `backend-single/src/main/java/com/emotion/service/TtsTaskService.java`: contract.
- Create `backend-single/src/main/java/com/emotion/service/impl/TtsTaskServiceImpl.java`: ownership, cache, async processing.
- Create `backend-single/src/main/java/com/emotion/service/TtsEngineClient.java`: internal engine client contract.
- Create `backend-single/src/main/java/com/emotion/service/impl/HttpTtsEngineClient.java`: calls Python service.
- Create `backend-single/src/main/java/com/emotion/controller/TtsController.java`: user-facing TTS endpoints.
- Modify `backend-single/src/main/resources/application.yml`: TTS config defaults.
- Modify `backend-single/src/main/resources/application-prod.yml`: production paths and internal URL.
- Create `backend-single/src/test/java/com/emotion/service/TtsTaskServiceTest.java`: service tests.
- Create `backend-single/tts-service/requirements.txt`: FastAPI deps; MeloTTS is installed from the official repository because the official docs use editable install plus `python -m unidic download`.
- Create `backend-single/tts-service/app.py`: FastAPI service.
- Create `backend-single/tts-service/README.md`: server setup.
- Create `backend-single/tts-service/emotion-museum-tts.service`: systemd unit.
- Create `server/src/main/java/com/emotion/entity/TtsTask.java`: task entity.
- Create `server/src/main/java/com/emotion/mapper/TtsTaskMapper.java`: task mapper.
- Create `server/src/main/java/com/emotion/dto/request/tts/TtsTaskCreateRequest.java`: create request.
- Create `server/src/main/java/com/emotion/dto/response/tts/TtsTaskResponse.java`: task response.
- Create `server/src/main/java/com/emotion/service/TtsTaskService.java`: contract.
- Create `server/src/main/java/com/emotion/service/impl/TtsTaskServiceImpl.java`: ownership, cache, async processing.
- Create `server/src/main/java/com/emotion/service/TtsEngineClient.java`: internal engine client contract.
- Create `server/src/main/java/com/emotion/service/impl/HttpTtsEngineClient.java`: calls Python service.
- Create `server/src/main/java/com/emotion/controller/TtsController.java`: user-facing TTS endpoints.
- Modify `server/src/main/resources/application.yml`: TTS config defaults.
- Modify `server/src/main/resources/application-prod.yml`: production paths and internal URL.
- Create `server/src/test/java/com/emotion/service/TtsTaskServiceTest.java`: service tests.
- Create `server/tts-service/requirements.txt`: FastAPI deps; MeloTTS is installed from the official repository because the official docs use editable install plus `python -m unidic download`.
- Create `server/tts-service/app.py`: FastAPI service.
- Create `server/tts-service/README.md`: server setup.
- Create `server/tts-service/emotion-museum-tts.service`: systemd unit.
- Create `mini-program/src/services/tts.js`: TTS API client.
- Create `mini-program/src/components/ScriptAudioPlayer.vue`: player component.
- Modify `mini-program/src/pages/main/ScriptDetailView.vue`: add player.
@@ -93,10 +93,10 @@ git commit -m "feat: add tts task table"
### Task 2: Add Backend TTS Entity, DTOs, and Mapper
**Files:**
- Create: `backend-single/src/main/java/com/emotion/entity/TtsTask.java`
- Create: `backend-single/src/main/java/com/emotion/mapper/TtsTaskMapper.java`
- Create: `backend-single/src/main/java/com/emotion/dto/request/tts/TtsTaskCreateRequest.java`
- Create: `backend-single/src/main/java/com/emotion/dto/response/tts/TtsTaskResponse.java`
- Create: `server/src/main/java/com/emotion/entity/TtsTask.java`
- Create: `server/src/main/java/com/emotion/mapper/TtsTaskMapper.java`
- Create: `server/src/main/java/com/emotion/dto/request/tts/TtsTaskCreateRequest.java`
- Create: `server/src/main/java/com/emotion/dto/response/tts/TtsTaskResponse.java`
- [ ] **Step 1: Add entity**
@@ -205,7 +205,7 @@ public class TtsTaskResponse {
- [ ] **Step 4: Compile**
```bash
cd backend-single
cd server
mvn -DskipTests compile
```
@@ -214,7 +214,7 @@ Expected: `BUILD SUCCESS`.
- [ ] **Step 5: Commit**
```bash
git add backend-single/src/main/java/com/emotion/entity/TtsTask.java backend-single/src/main/java/com/emotion/mapper/TtsTaskMapper.java backend-single/src/main/java/com/emotion/dto/request/tts backend-single/src/main/java/com/emotion/dto/response/tts
git add server/src/main/java/com/emotion/entity/TtsTask.java server/src/main/java/com/emotion/mapper/TtsTaskMapper.java server/src/main/java/com/emotion/dto/request/tts server/src/main/java/com/emotion/dto/response/tts
git commit -m "feat: add tts task model"
```
@@ -223,13 +223,13 @@ git commit -m "feat: add tts task model"
### Task 3: Add TTS Service and Engine Client
**Files:**
- Create: `backend-single/src/main/java/com/emotion/service/TtsTaskService.java`
- Create: `backend-single/src/main/java/com/emotion/service/TtsEngineClient.java`
- Create: `backend-single/src/main/java/com/emotion/service/impl/HttpTtsEngineClient.java`
- Create: `backend-single/src/main/java/com/emotion/service/impl/TtsTaskServiceImpl.java`
- Modify: `backend-single/src/main/resources/application.yml`
- Modify: `backend-single/src/main/resources/application-prod.yml`
- Test: `backend-single/src/test/java/com/emotion/service/TtsTaskServiceTest.java`
- Create: `server/src/main/java/com/emotion/service/TtsTaskService.java`
- Create: `server/src/main/java/com/emotion/service/TtsEngineClient.java`
- Create: `server/src/main/java/com/emotion/service/impl/HttpTtsEngineClient.java`
- Create: `server/src/main/java/com/emotion/service/impl/TtsTaskServiceImpl.java`
- Modify: `server/src/main/resources/application.yml`
- Modify: `server/src/main/resources/application-prod.yml`
- Test: `server/src/test/java/com/emotion/service/TtsTaskServiceTest.java`
- [ ] **Step 1: Add service contracts**
@@ -503,7 +503,7 @@ public class TtsTaskServiceImpl extends ServiceImpl<TtsTaskMapper, TtsTask> impl
- [ ] **Step 5: Run compile**
```bash
cd backend-single
cd server
mvn -DskipTests compile
```
@@ -512,7 +512,7 @@ Expected: `BUILD SUCCESS`.
- [ ] **Step 6: Commit**
```bash
git add backend-single/src/main/java/com/emotion/service/TtsTaskService.java backend-single/src/main/java/com/emotion/service/TtsEngineClient.java backend-single/src/main/java/com/emotion/service/impl/HttpTtsEngineClient.java backend-single/src/main/java/com/emotion/service/impl/TtsTaskServiceImpl.java backend-single/src/main/resources/application.yml backend-single/src/main/resources/application-prod.yml
git add server/src/main/java/com/emotion/service/TtsTaskService.java server/src/main/java/com/emotion/service/TtsEngineClient.java server/src/main/java/com/emotion/service/impl/HttpTtsEngineClient.java server/src/main/java/com/emotion/service/impl/TtsTaskServiceImpl.java server/src/main/resources/application.yml server/src/main/resources/application-prod.yml
git commit -m "feat: add tts backend service"
```
@@ -521,7 +521,7 @@ git commit -m "feat: add tts backend service"
### Task 4: Add TTS Controller
**Files:**
- Create: `backend-single/src/main/java/com/emotion/controller/TtsController.java`
- Create: `server/src/main/java/com/emotion/controller/TtsController.java`
- [ ] **Step 1: Add controller**
@@ -569,7 +569,7 @@ public class TtsController {
- [ ] **Step 2: Run compile**
```bash
cd backend-single
cd server
mvn -DskipTests compile
```
@@ -578,7 +578,7 @@ Expected: `BUILD SUCCESS`.
- [ ] **Step 3: Commit**
```bash
git add backend-single/src/main/java/com/emotion/controller/TtsController.java
git add server/src/main/java/com/emotion/controller/TtsController.java
git commit -m "feat: expose tts task APIs"
```
@@ -587,10 +587,10 @@ git commit -m "feat: expose tts task APIs"
### Task 5: Add Python TTS Service Skeleton
**Files:**
- Create: `backend-single/tts-service/requirements.txt`
- Create: `backend-single/tts-service/app.py`
- Create: `backend-single/tts-service/README.md`
- Create: `backend-single/tts-service/emotion-museum-tts.service`
- Create: `server/tts-service/requirements.txt`
- Create: `server/tts-service/app.py`
- Create: `server/tts-service/README.md`
- Create: `server/tts-service/emotion-museum-tts.service`
- [ ] **Step 1: Add requirements**
@@ -717,7 +717,7 @@ curl http://127.0.0.1:19110/health
- [ ] **Step 5: Run local syntax check**
```bash
python -m py_compile backend-single/tts-service/app.py
python -m py_compile server/tts-service/app.py
```
Expected: no output and exit code 0.
@@ -725,7 +725,7 @@ Expected: no output and exit code 0.
- [ ] **Step 6: Commit**
```bash
git add backend-single/tts-service
git add server/tts-service
git commit -m "feat: add private tts service scaffold"
```
@@ -960,7 +960,7 @@ git commit -m "feat: add tts control to script detail"
- [ ] **Step 1: Upload service directory**
```bash
scp -r backend-single/tts-service root@101.200.208.45:/data/programs/emotion-museum/tts-service
scp -r server/tts-service root@101.200.208.45:/data/programs/emotion-museum/tts-service
```
Expected: files are copied.
@@ -988,7 +988,7 @@ Expected:
- [ ] **Step 4: Install systemd unit after health passes**
```bash
scp backend-single/tts-service/emotion-museum-tts.service root@101.200.208.45:/etc/systemd/system/emotion-museum-tts.service
scp server/tts-service/emotion-museum-tts.service root@101.200.208.45:/etc/systemd/system/emotion-museum-tts.service
ssh root@101.200.208.45 "systemctl daemon-reload && systemctl enable emotion-museum-tts && systemctl restart emotion-museum-tts && systemctl status emotion-museum-tts --no-pager"
```
@@ -997,7 +997,7 @@ Expected: service status is active.
- [ ] **Step 5: Commit deployment doc tweaks if needed**
```bash
git add backend-single/tts-service/README.md
git add server/tts-service/README.md
git commit -m "docs: update tts deployment notes"
```
@@ -1013,7 +1013,7 @@ Only run this commit if README changed.
- [ ] **Step 1: Run backend tests**
```bash
cd backend-single
cd server
mvn test
```