ming commited on
Commit
dd29a6d
·
1 Parent(s): a36f560

Fix bitsandbytes UID error with getpass patch

Browse files

- Added getpass.getuser() mock in structured_summarizer.py
- Mock catches KeyError and returns USER env var or 'user'
- Added HOME=/tmp and USER=user to Dockerfile
- Fixes 'getpwuid(): uid not found: 1000' error in HF Spaces
- Allows bitsandbytes 4-bit NF4 quantization to initialize

Dockerfile CHANGED
@@ -5,6 +5,8 @@ FROM python:3.9-slim
5
  ENV PYTHONDONTWRITEBYTECODE=1 \
6
  PYTHONUNBUFFERED=1 \
7
  PYTHONPATH=/app \
 
 
8
  ENABLE_V1_WARMUP=false \
9
  ENABLE_V2_WARMUP=false \
10
  ENABLE_V4_WARMUP=true \
 
5
  ENV PYTHONDONTWRITEBYTECODE=1 \
6
  PYTHONUNBUFFERED=1 \
7
  PYTHONPATH=/app \
8
+ HOME=/tmp \
9
+ USER=user \
10
  ENABLE_V1_WARMUP=false \
11
  ENABLE_V2_WARMUP=false \
12
  ENABLE_V4_WARMUP=true \
app/services/structured_summarizer.py CHANGED
@@ -13,6 +13,23 @@ from app.core.logging import get_logger
13
 
14
  logger = get_logger(__name__)
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  # Try to import transformers
17
  try:
18
  import torch
 
13
 
14
  logger = get_logger(__name__)
15
 
16
+ # CRITICAL: Patch getpass.getuser() before importing bitsandbytes or transformers
17
+ # HF Spaces containers don't have UID 1000 in /etc/passwd, causing KeyError
18
+ import getpass
19
+ import os
20
+
21
+ _original_getuser = getpass.getuser
22
+
23
+ def _mock_getuser():
24
+ """Mock getuser for HF Spaces compatibility."""
25
+ try:
26
+ return _original_getuser()
27
+ except KeyError:
28
+ # Fallback for containerized environments without proper user database
29
+ return os.environ.get("USER", os.environ.get("USERNAME", "user"))
30
+
31
+ getpass.getuser = _mock_getuser
32
+
33
  # Try to import transformers
34
  try:
35
  import torch