feat: Initial v0.9 release with API Key authentication
## v0.9.20260325_144654 ### Features - API Key Authentication System - Job Worker System - V2 Backup Versioning ### Bug Fixes - get_processor_results_by_job column mapping Co-authored-by: OpenCode
This commit is contained in:
@@ -1,5 +1,22 @@
|
||||
# Python 開發規範
|
||||
|
||||
| 項目 | 內容 |
|
||||
|------|------|
|
||||
| 建立者 | Warren |
|
||||
| 建立時間 | 2026-03-16 |
|
||||
| 文件版本 | V1.0 |
|
||||
|
||||
---
|
||||
|
||||
## 版本歷史
|
||||
|
||||
| 版本 | 日期 | 目的 | 操作人 | 工具/模型 |
|
||||
|------|------|------|--------|-----------|
|
||||
| V1.0 | 2026-03-16 | 創建文件 | Warren | OpenCode / MiniMax M2.5 |
|
||||
| V1.1 | 2026-03-21 | 新增 RedisPublisher API 文檔 | OpenCode | - |
|
||||
|
||||
---
|
||||
|
||||
## 概述
|
||||
|
||||
本文檔定義 Momentry 專案中 Python 程式碼的開發標準與最佳實踐。
|
||||
@@ -229,6 +246,63 @@ Pillow>=10.0.0
|
||||
|
||||
---
|
||||
|
||||
## RedisPublisher 進度發布
|
||||
|
||||
### 概述
|
||||
|
||||
`redis_publisher.py` 提供統一的進度發布介面,用於 Python 處理器向 Rust 端的 TUI 即時回報進度。
|
||||
|
||||
### 基本用法
|
||||
|
||||
```python
|
||||
#!/opt/homebrew/bin/python3.11
|
||||
import sys
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
from redis_publisher import RedisPublisher
|
||||
|
||||
def process_video(video_path: str, uuid: str):
|
||||
pub = RedisPublisher(uuid)
|
||||
|
||||
pub.info("asr", "Starting ASR processing")
|
||||
pub.progress("asr", current=50, total=100, message="Processing segment")
|
||||
pub.complete("asr", "Transcription complete")
|
||||
```
|
||||
|
||||
### API 參考
|
||||
|
||||
| 方法 | 說明 | 範例 |
|
||||
|------|------|------|
|
||||
| `info(proc, msg)` | 發布資訊訊息 | `pub.info("asr", "Model loaded")` |
|
||||
| `progress(proc, cur, tot, msg)` | 發布進度 | `pub.progress("asr", 50, 100, "...")` |
|
||||
| `complete(proc, msg)` | 發布完成 | `pub.complete("asr", "Done")` |
|
||||
| `error(proc, msg)` | 發布錯誤 | `pub.error("asr", "Failed")` |
|
||||
| `warning(proc, msg)` | 發布警告 | `pub.warning("asr", "Retry...")` |
|
||||
| `percentage(proc, pct, msg)` | 發布百分比 | `pub.percentage("asr", 50.5, "50%")` |
|
||||
|
||||
### 結構化訊息格式
|
||||
|
||||
```python
|
||||
from redis_publisher import MessageType, ProgressContext
|
||||
|
||||
# 使用 Context Manager
|
||||
with ProgressContext(pub, "asr"):
|
||||
# 自動發布開始/完成/錯誤
|
||||
run_asr()
|
||||
|
||||
# 帶 extra 資料
|
||||
pub.progress("asr", current=50, total=100, message="...",
|
||||
extra={"fps": 30.5, "model": "tiny"})
|
||||
```
|
||||
|
||||
### 環境變數
|
||||
|
||||
| 變數 | 預設值 | 說明 |
|
||||
|------|--------|------|
|
||||
| `REDIS_URL` | `redis://:accusys@localhost:6379` | Redis 連線 URL |
|
||||
| `REDIS_PASSWORD` | `accusys` | Redis 密碼 |
|
||||
|
||||
---
|
||||
|
||||
## 程式碼規範
|
||||
|
||||
### Import 排序
|
||||
|
||||
Reference in New Issue
Block a user