Spaces:
Running
Running
Commit History
-
fix(infra): chặn 502 từ gốc — uvicorn đóng kết nối rảnh quá sớm
Administrator +1: Claude Opus 5Đo thẳng lên Space: 5/20 lời gọi API trả 502. Thân của 502 là trang HTML của huggingface.co (3044 byte) và KHÔNG có header `server: uvicorn` -> request chưa hề tới app. Không phải app lỗi: router của HF không nối được tới uvicorn. Lý do: router giữ sẵn một nắm kết nối tới app rồi dùng lại, trong khi uvicorn mặc định đóng kết nối rảnh sau 5 GIÂY. Router gửi request vào kết nối vừa bị đóng -> 502. Đây chính là nguồn đẻ ra "Unexpected token '<'" mà người dùng gặp: các bản vá trước chỉ dịch nó thành câu tiếng Việt đọc được, gốc rễ nằm ở đây. - Dockerfile: uvicorn --timeout-keep-alive 120, cao hơn hẳn thời gian rảnh của router, để bên đóng kết nối là router và đóng đàng hoàng từ phía nó. - api.js: lời gọi CHỈ ĐỌC (GET/HEAD) gặp trục trặc tạm thời thì tự thử lại 2 nhịp (0.6s, 1.2s). Lệnh GHI KHÔNG tự thử lại — bấm một lần mà chạy hai job thì tai hại hơn là báo lỗi để người dùng bấm lại. Kiểm: chạy thử api.js — GET vượt qua 2 nhịp 502 rồi trả dữ liệu, POST vẫn báo lỗi sau đúng 1 lần …a04fadb
-
build(hf): cài OmniVoice trên Space, tránh gradio đè web stack
- Dockerfile cài `omnivoice` bằng --no-deps + đúng các gói đường suy luận (transformers>=5.3, accelerate, soundfile, pydub, librosa). Metadata của omnivoice khai cả `gradio`/`webdataset`/`tensorboardx` — chỉ dùng cho demo UI và huấn luyện. Dựng thử cây phụ thuộc: cài trọn bộ kéo gradio 6 -> starlette 1.x + fastapi 0.141 + pydantic 2.13 ĐÈ LÊN web stack đang chạy. - Thêm chốt an toàn ngay trong build: import fastapi/pydantic/cv2/numpy/ gradio_client/transformers/omnivoice — gãy thì HỎNG BUILD, không để chết lúc chạy trên Space. - Trọng số 3.3GB không nhúng vào ảnh: warm_voice_previews sẵn có chạy nền lúc khởi động sẽ nạp model (mạng nội bộ HF nhanh) -> job đầu tiên khỏi chờ. - Clone từ video: đưa luôn LỜI GỐC của đoạn mẫu (lấy `src` trong state.json, các câu chồng lấn cửa sổ 15s) sang OmniVoice qua ref_text. Không đưa thì nó tự tải Whisper large-v3-turbo ~1.6GB về bóc lại, trong khi transcript đã có sẵn từ bước ASR. Co-Authored-By: Claude Opus 5 <noreply@anthropic.c…4a400b2
-
fix(sub): nhúng font mã nguồn mở -> burn phụ đề KHỚP preview trên server
Server Linux không có font Microsoft nên libass fallback -> chữ lệch bản xem trước (Windows dev khớp vì có sẵn font MS = bẫy). Nhúng 6 font OSS đủ tiếng Việt (Be Vietnam Pro, Roboto, Open Sans, Montserrat, Arimo~Arial, Tinos~Times) vào backend/app/assets/fonts; trình duyệt nạp CHÍNH file này qua @font-face(/fonts) nên preview=render mọi máy. - FONTS/measureBreaks(bỏ bold)/boxStyle(fontWeight 400) đồng bộ tên+độ rộng - ASS Bold=0 (font đã đậm sẵn, tránh làm-đậm-giả lệch metric) - burn() dùng fontsdir tương đối (né dấu ":" ổ đĩa Windows làm hỏng filter ffmpeg) - main.py mount /fonts, vite proxy /fonts cho dev - Dockerfile cài fontconfig + copy font hệ thống + fc-cache Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>d4a04dd
-
feat(download): thêm PO Token provider (bgutil) để qua bot-check YouTube
YouTube chặn IP máy chủ HF -> tải YouTube fail (SSL: UNEXPECTED_EOF). Theo wiki chính chủ yt-dlp, PO Token provider được dùng để vượt "Sign in to confirm you're not a bot" khi chạy từ IP bị gắn cờ — tự động, không cần cookies/tài khoản. - Dockerfile: thêm stage build bgutil-ytdlp-pot-provider (branch 1.3.1, npm ci + npx tsc); copy node runtime + server vào image; CMD chạy provider ở NỀN cổng 4416 rồi exec uvicorn (provider lỗi -> web vẫn chạy bình thường). - requirements: thêm plugin bgutil-ytdlp-pot-provider>=1.3,<1.4. - ydl.py: khi KHÔNG có cookies, ưu tiên client 'mweb' (client mà provider cấp token), giữ android/tv/web làm dự phòng. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>0ac082e
-
perf(build): cài torch/torchaudio bản CPU-only để build nhẹ + hết treo
demucs kéo theo torch; mặc định pip tải bản CUDA ~2.5GB (vô dụng trên CPU Space) -> build cực chậm/treo trên HF free. Cài torch+torchaudio CPU-only (~200MB) TRƯỚC requirements để demucs dùng lại, không tải bản CUDA. Giữ nguyên tính năng tách nhạc/giữ nền, build nhanh hơn nhiều. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>f0e1c94
-
refactor: merge app/ vào backend/app/, xoá app/ gốc
de3a7c5
-
deploy merged code
9b53f70