File size: 2,051 Bytes
e66ee1b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Backend Scripts

## Reprocess All Documents

重新處理所有已上傳的文檔,使用新的 chunking 參數。

### 使用方式

```bash
# 確保 backend API 正在運行
python backend/scripts/reprocess_all_docs.py
```

### 功能

- 自動獲取資料庫中所有文檔
- 為每個文檔調用 `/api/ingest/reprocess/{doc_id}` endpoint
- 使用新的參數重新切割文本(chunk_size=400, overlap=80)
- 重新生成 embeddings
- 顯示詳細進度和統計數據

### 輸出範例

```
🔄 Reprocessing All Documents with New Chunk Parameters
================================================================================
   New chunk_size: 400
   New overlap: 80
================================================================================

📋 Fetching document list...
✅ Found 3 documents

[1/3] Processing: 職涯諮詢師初階培訓簡報.pdf (ID: 1)
   ✅ Success!
      Old chunks: 9
      New chunks: 28
      Embeddings: 28

[2/3] Processing: 職涯諮詢師進階培訓簡報.pdf (ID: 2)
   ✅ Success!
      Old chunks: 4
      New chunks: 15
      Embeddings: 15

================================================================================
📊 SUMMARY
================================================================================
✅ Successful: 2
❌ Failed: 0

📈 Total old chunks deleted: 13
📈 Total new chunks created: 43
📈 Chunk increase: +30 (+230.8%)
```

### 注意事項

1. **需要 API 運行**: 確保 backend API 在 `http://localhost:8000` 運行
2. **時間較長**: 處理過程需要為每個 chunk 生成 embedding,可能需要數分鐘
3. **OpenAI API**: 會消耗 OpenAI API credits
4. **無法復原**: 舊的 chunks 會被刪除,請確認後再執行

### 疑難排解

如果遇到 pgbouncer 錯誤:
1. 等待幾分鐘讓 Supabase 緩存清除
2. 確認 `.env` 中的 `DATABASE_URL` 正確
3. 重啟 backend API

如果遇到 timeout:
1. 增加 `httpx.AsyncClient(timeout=300.0)` 的 timeout 值
2. 確認網路連接穩定
3. 檢查 OpenAI API key 是否有效