upprize commited on
Commit
4faf4e5
·
1 Parent(s): 21ac63b
Files changed (8) hide show
  1. DEPLOYMENT.md +24 -1
  2. FIX_SUMMARY.md +186 -0
  3. HF_TOKEN_SETUP.md +121 -0
  4. QUICK_FIX_FA.md +120 -0
  5. README.md +22 -0
  6. START_HERE.md +67 -0
  7. app.py +24 -2
  8. requirements.txt +1 -0
DEPLOYMENT.md CHANGED
@@ -45,6 +45,29 @@ git push
45
 
46
  ### 3. تنظیمات Space
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  #### فعال‌سازی GPU (ضروری):
49
 
50
  1. در صفحه Space، روی "Settings" بروید
@@ -55,7 +78,7 @@ git push
55
  #### تنظیمات اضافی:
56
 
57
  - **Sleep time**: می‌توانید روی "Always running" تنظیم کنید (نیاز به اشتراک)
58
- - **Secrets**: در صورت نیاز به API keys
59
 
60
  ### 4. اولین اجرا
61
 
 
45
 
46
  ### 3. تنظیمات Space
47
 
48
+ #### ⚠️ مهم: تنظیم HF Token (ضروری!)
49
+
50
+ مدل dots.ocr نیاز به احراز هویت دارد:
51
+
52
+ 1. **ایجاد Token**:
53
+ - به https://huggingface.co/settings/tokens بروید
54
+ - یک توکن با دسترسی Read ایجاد کنید
55
+ - توکن را کپی کنید
56
+
57
+ 2. **درخواست دسترسی**:
58
+ - به https://huggingface.co/rednote-hilab/DotsOCR بروید
59
+ - روی "Request Access" کلیک کنید (در صورت وجود)
60
+ - منتظر تایید بمانید
61
+
62
+ 3. **اضافه کردن Token به Space**:
63
+ - Settings → Repository secrets
64
+ - Add a secret:
65
+ - Name: `HF_TOKEN`
66
+ - Value: توکن کپی شده
67
+ - Save
68
+
69
+ 📖 **راهنمای کامل**: `HF_TOKEN_SETUP.md` یا `QUICK_FIX_FA.md`
70
+
71
  #### فعال‌سازی GPU (ضروری):
72
 
73
  1. در صفحه Space، روی "Settings" بروید
 
78
  #### تنظیمات اضافی:
79
 
80
  - **Sleep time**: می‌توانید روی "Always running" تنظیم کنید (نیاز به اشتراک)
81
+ - **Secrets**: HF_TOKEN را اضافه کنید (الزامی!)
82
 
83
  ### 4. اولین اجرا
84
 
FIX_SUMMARY.md ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🔧 خلاصه تغییرات برای رفع خطای 401
2
+
3
+ ## ✅ آنچه انجام شد:
4
+
5
+ ### 1. آپدیت `app.py`
6
+ - اضافه شدن پشتیبانی از HF Token
7
+ - استفاده از `huggingface_hub.login()`
8
+ - ارسال token به `from_pretrained()`
9
+ - مدیریت خطا با پیام‌های مفید
10
+
11
+ ### 2. آپدیت `requirements.txt`
12
+ - اضافه شدن `huggingface-hub>=0.20.0`
13
+
14
+ ### 3. ایجاد راهنماها
15
+ - **HF_TOKEN_SETUP.md**: راهنمای کامل انگلیسی
16
+ - **QUICK_FIX_FA.md**: راهنمای سریع فارسی (شما اینجا هستید!)
17
+ - آپدیت **README.md** با اطلاعات Token
18
+ - آپدیت **DEPLOYMENT.md** با مراحل تنظیم Token
19
+
20
+ ---
21
+
22
+ ## 🚀 مراحل حل مشکل (3 قدم ساده):
23
+
24
+ ### قدم 1: ساخت Hugging Face Token
25
+
26
+ ```
27
+ 1. برو به: https://huggingface.co/settings/tokens
28
+ 2. کلیک: "Create new token"
29
+ 3. نام: dots-ocr
30
+ 4. نوع: Read
31
+ 5. کپی کن توکن را
32
+ ```
33
+
34
+ ### قدم 2: درخواست دسترسی به مدل
35
+
36
+ ```
37
+ 1. برو به: https://huggingface.co/rednote-hilab/DotsOCR
38
+ 2. اگر دکمه "Request Access" دیدی → کلیک کن
39
+ 3. صبر کن تا تایید شه (چند دقیقه تا چند ساعت)
40
+ ```
41
+
42
+ ### قدم 3: اضافه کردن Token به Space
43
+
44
+ ```
45
+ 1. Space خودت در HuggingFace → Settings
46
+ 2. پیدا کن: "Repository secrets"
47
+ 3. کلیک: "Add a secret"
48
+ 4. وارد کن:
49
+ Name: HF_TOKEN
50
+ Value: [توکن کپی شده]
51
+ 5. کلیک: "Add"
52
+ 6. Space خودکار rebuild میشه
53
+ ```
54
+
55
+ ---
56
+
57
+ ## 📋 چک‌لیست قبل از استقرار:
58
+
59
+ - [ ] HF Token ساخته شده
60
+ - [ ] دسترسی به مدل درخواست شده (اگر gated بود)
61
+ - [ ] Token به Secrets اضافه شده (نام دقیق: `HF_TOKEN`)
62
+ - [ ] GPU در Space فعال شده (حداقل T4)
63
+ - [ ] فایل‌های پروژه آپلود شده
64
+
65
+ ---
66
+
67
+ ## 🎯 تست موفقیت:
68
+
69
+ بعد از rebuild، در لاگ‌های Space باید ببینی:
70
+
71
+ ### ✅ موفق:
72
+ ```
73
+ Authenticating with Hugging Face token...
74
+ Loading model and processor...
75
+ Model loaded successfully!
76
+ Running on local URL: http://0.0.0.0:7860
77
+ ```
78
+
79
+ ### ❌ ناموفق (همچنان خطا):
80
+ ```
81
+ 401 Client Error: Unauthorized
82
+ ```
83
+
84
+ **راه حل:**
85
+ - چک کن نام Secret دقیقاً `HF_TOKEN` باشه
86
+ - مطمئن شو توکن صحیح کپی شده
87
+ - ببین دسترسی به مدل تایید شده یا نه
88
+
89
+ ---
90
+
91
+ ## 🔄 مدل‌های جایگزین (اگر dots.ocr کار نکرد):
92
+
93
+ اگر نتونستی به مدل دسترسی پیدا کنی، می‌تونی از این مدل‌ها استفاده کنی:
94
+
95
+ ### گزینه 1: GOT-OCR 2.0 (توصیه می‌شود)
96
+ ```python
97
+ # در app.py خط 12:
98
+ MODEL_PATH = "stepfun-ai/GOT-OCR2_0"
99
+ ```
100
+ - ✅ Public (نیازی به Token نداره)
101
+ - ✅ OCR قوی
102
+ - ✅ پشتیبانی از چند زبان
103
+
104
+ ### گزینه 2: Qwen2-VL
105
+ ```python
106
+ # در app.py خط 12:
107
+ MODEL_PATH = "Qwen/Qwen2-VL-2B-Instruct"
108
+ ```
109
+ - ✅ Public
110
+ - ✅ سبک‌تر (2B parameters)
111
+ - ✅ سریع‌تر
112
+
113
+ ### گزینه 3: Nougat (برای اسناد علمی)
114
+ ```python
115
+ # در app.py خط 12:
116
+ MODEL_PATH = "facebook/nougat-base"
117
+ ```
118
+ - ✅ Public
119
+ - ✅ مخصوص اسناد آکادمیک
120
+ - ✅ فرمول‌های ریاضی
121
+
122
+ ---
123
+
124
+ ## 📁 فایل‌های مهم:
125
+
126
+ | فایل | توضیح |
127
+ |------|-------|
128
+ | `app.py` | ✅ آپدیت شده (پشتیبانی از Token) |
129
+ | `requirements.txt` | ✅ آپدیت شده (huggingface-hub اضافه شد) |
130
+ | `README.md` | ✅ آپدیت شده (راهنمای Token) |
131
+ | `HF_TOKEN_SETUP.md` | 🆕 راهنمای کامل Token |
132
+ | `QUICK_FIX_FA.md` | 🆕 راهنمای سریع فارسی |
133
+ | `DEPLOYMENT.md` | ✅ آپدیت شده |
134
+
135
+ ---
136
+
137
+ ## 💡 نکات مهم:
138
+
139
+ 1. **امنیت Token**:
140
+ - ❌ هرگز توکن رو در کد commit نکن
141
+ - ✅ فقط از Secrets استفاده کن
142
+ - ✅ توکن رو با کسی شریک نشو
143
+
144
+ 2. **نام Secret**:
145
+ - حتماً `HF_TOKEN` باشه (دقیقاً همینطور)
146
+ - حساس به حروف بزرگ/کوچکه!
147
+
148
+ 3. **GPU**:
149
+ - حتماً GPU رو فعال کن
150
+ - بدون GPU مدل لود نمیشه
151
+
152
+ 4. **اولین بار**:
153
+ - دانلود مدل 10-15 دقیقه طول میکشه
154
+ - صبور باش!
155
+
156
+ ---
157
+
158
+ ## 🆘 کمک بیشتر:
159
+
160
+ ### مستندات:
161
+ - `QUICK_FIX_FA.md` - راهنمای سریع فارسی ⭐
162
+ - `HF_TOKEN_SETUP.md` - راهنمای کامل انگلیسی
163
+ - `DEPLOYMENT.md` - راهنمای استقرار
164
+ - `USAGE_GUIDE.md` - راهنمای استفاده
165
+
166
+ ### لینک‌های مفید:
167
+ - HF Tokens: https://huggingface.co/settings/tokens
168
+ - مدل dots.ocr: https://huggingface.co/rednote-hilab/DotsOCR
169
+ - مستندات: https://huggingface.co/docs/hub/security-tokens
170
+
171
+ ### پشتیبانی:
172
+ - GitHub: https://github.com/rednote-hilab/dots.ocr/issues
173
+ - HF Forums: https://discuss.huggingface.co/
174
+
175
+ ---
176
+
177
+ ## ✨ آماده‌ای!
178
+
179
+ همه چیز آماده شده. فقط:
180
+ 1. Token بساز
181
+ 2. دسترسی بگیر
182
+ 3. به Space اضافه کن
183
+ 4. منتظر rebuild باش
184
+
185
+ **موفق باشی! 🚀**
186
+
HF_TOKEN_SETUP.md ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # راهنمای تنظیم Hugging Face Token
2
+
3
+ ## مشکل: 401 Unauthorized Error
4
+
5
+ مدل `dots.ocr` یک **gated model** است و برای استفاده از آن نیاز به احراز هویت دارید.
6
+
7
+ ## راه حل: تنظیم HF Token در Space
8
+
9
+ ### مرحله 1: ایجاد Hugging Face Token
10
+
11
+ 1. به https://huggingface.co/settings/tokens بروید
12
+ 2. روی **"Create new token"** کلیک کنید
13
+ 3. اطلاعات را پر کنید:
14
+ - **Name**: `dots-ocr-space` (یا نام دلخواه)
15
+ - **Type**: **Read** (کافی است)
16
+ 4. روی **"Generate token"** کلیک کنید
17
+ 5. **توکن را کپی کنید** (مهم: فقط یک بار نمایش داده می‌شود!)
18
+
19
+ ### مرحله 2: درخواست دسترسی به مدل (در صورت لزوم)
20
+
21
+ 1. به صفحه مدل بروید: https://huggingface.co/rednote-hilab/DotsOCR
22
+ 2. اگر مدل **gated** است، روی **"Request Access"** کلیک کنید
23
+ 3. فرم را پر کنید و ارسال کنید
24
+ 4. منتظر تایید بمانید (معمولاً چند دقیقه تا چند ساعت)
25
+
26
+ ### مرحله 3: اضافه کردن Token به Space
27
+
28
+ #### روش 1: استفاده از Secrets (توصیه می‌شود)
29
+
30
+ 1. به Space خود در Hugging Face بروید
31
+ 2. روی **"Settings"** کلیک کنید
32
+ 3. پایین بروید تا بخش **"Repository secrets"**
33
+ 4. روی **"Add a secret"** کلیک کنید
34
+ 5. اطلاعات را وارد کنید:
35
+ - **Name**: `HF_TOKEN`
36
+ - **Value**: توکنی که در مرحله 1 کپی کردید
37
+ 6. روی **"Add"** کلیک کنید
38
+
39
+ #### روش 2: استفاده از Environment Variable (در صورت نیاز)
40
+
41
+ اگر روش 1 کار نکرد، می‌توانید مستقیماً در کد تنظیم کنید (توصیه نمی‌شود):
42
+
43
+ ```python
44
+ import os
45
+ os.environ["HF_TOKEN"] = "hf_xxxxxxxxxxxxxxxxxxxx"
46
+ ```
47
+
48
+ ⚠️ **هشدار**: توکن خود را هرگز به صورت عمومی commit نکنید!
49
+
50
+ ### مرحله 4: راه‌اندازی مجدد Space
51
+
52
+ 1. بعد از اضافه کردن Secret، Space به صورت خودکار rebuild می‌شود
53
+ 2. یا می‌توانید به صورت دستی restart کنید:
54
+ - Settings → Factory Rebuild
55
+
56
+ ### مرحله 5: تست
57
+
58
+ 1. منتظر بمانید تا Space build شود
59
+ 2. تصویری آپلود کنید و تست کنید
60
+ 3. اگر موفق بود، مدل باید بدون خطا لود شود! ✅
61
+
62
+ ## عیب‌یابی
63
+
64
+ ### خطا: 401 Unauthorized همچنان وجود دارد
65
+
66
+ **راه حل:**
67
+ - مطمئن شوید که نام secret دقیقاً `HF_TOKEN` است (حساس به حروف بزرگ/کوچک)
68
+ - بررسی کنید که توکن صحیح است
69
+ - مطمئن شوید که دسترسی به مدل را درخواست کرده‌اید و تایید شده است
70
+
71
+ ### خطا: Token has expired
72
+
73
+ **راه حل:**
74
+ - یک توکن جدید ایجاد کنید
75
+ - توکن قدیمی را در Secrets با توکن جدید جایگزین کنید
76
+
77
+ ### خطا: Repository Not Found
78
+
79
+ **راه حل:**
80
+ - بررسی کنید که نام مدل صحیح است
81
+ - مطمئن شوید که از مدل درخواست دسترسی کرده‌اید
82
+
83
+ ## نکات امنیتی
84
+
85
+ 1. ❌ **هرگز توکن را در کد commit نکنید**
86
+ 2. ✅ همیشه از Secrets استفاده کنید
87
+ 3. ✅ توکن‌های قدیمی را حذف کنید
88
+ 4. ✅ فقط دسترسی Read برای توکن تنظیم کنید
89
+
90
+ ## مدل‌های جایگزین (در صورتی که دسترسی به dots.ocr ندارید)
91
+
92
+ اگر نمی‌توانید به مدل `dots.ocr` دسترسی پیدا کنید، می‌توانید از این مدل‌های جایگزین استفاده کنید:
93
+
94
+ ### 1. GOT-OCR 2.0
95
+ ```python
96
+ MODEL_PATH = "stepfun-ai/GOT-OCR2_0"
97
+ ```
98
+
99
+ ### 2. Qwen2-VL
100
+ ```python
101
+ MODEL_PATH = "Qwen/Qwen2-VL-7B-Instruct"
102
+ ```
103
+
104
+ ### 3. Nougat (برای اسناد علمی)
105
+ ```python
106
+ MODEL_PATH = "facebook/nougat-base"
107
+ ```
108
+
109
+ برای استفاده از مدل‌های جایگزین، فقط `MODEL_PATH` را در `app.py` تغییر دهید.
110
+
111
+ ## پشتیبانی
112
+
113
+ اگر همچنان مشکل دارید:
114
+ - GitHub Issues: https://github.com/rednote-hilab/dots.ocr/issues
115
+ - Hugging Face Forums: https://discuss.huggingface.co/
116
+ - مستندات HF: https://huggingface.co/docs/hub/security-tokens
117
+
118
+ ---
119
+
120
+ **موفق باشید! 🚀**
121
+
QUICK_FIX_FA.md ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🔧 راهنمای سریع رفع خطای 401
2
+
3
+ ## مشکل شما:
4
+ ```
5
+ 401 Client Error: Unauthorized
6
+ Repository Not Found for url: https://huggingface.co/rednote-hilab/DotsOCR
7
+ ```
8
+
9
+ ## دلیل:
10
+ مدل `dots.ocr` یک **gated model** است و نیاز به احراز هویت دارد.
11
+
12
+ ## راه حل (3 قدم):
13
+
14
+ ### قدم 1️⃣: ساخت Token
15
+
16
+ 1. به این لینک بروید:
17
+ ```
18
+ https://huggingface.co/settings/tokens
19
+ ```
20
+
21
+ 2. روی **"Create new token"** کلیک کنید
22
+
23
+ 3. تنظیمات:
24
+ - نام: `dots-ocr`
25
+ - نوع: **Read**
26
+
27
+ 4. **کپی کنید** توکن را! (فقط یکبار نمایش می‌شود)
28
+
29
+ ### قدم 2️⃣: درخواست دسترسی به مدل
30
+
31
+ 1. به این لینک بروید:
32
+ ```
33
+ https://huggingface.co/rednote-hilab/DotsOCR
34
+ ```
35
+
36
+ 2. اگر دکمه **"Request Access"** دیدید، روی آن کلیک کنید
37
+
38
+ 3. منتظر تایید بمانید (معمولاً چند دقیقه)
39
+
40
+ ### قدم 3️⃣: اضافه کردن Token به Space
41
+
42
+ 1. به Space خود بروید در Hugging Face
43
+
44
+ 2. **Settings** → **Repository secrets**
45
+
46
+ 3. روی **"Add a secret"** کلیک کنید
47
+
48
+ 4. وارد کنید:
49
+ ```
50
+ Name: HF_TOKEN
51
+ Value: [توکنی که کپی کردید]
52
+ ```
53
+
54
+ 5. روی **Add** کلیک کنید
55
+
56
+ 6. Space به صورت خودکار **rebuild** می‌شود
57
+
58
+ ## بررسی نتیجه:
59
+
60
+ ✅ بعد از rebuild، اگر پیام زیر را دیدید، موفق شده‌اید:
61
+ ```
62
+ Authenticating with Hugging Face token...
63
+ Loading model and processor...
64
+ Model loaded successfully!
65
+ ```
66
+
67
+ ❌ اگر همچنان خطا می‌گیرید:
68
+ - نام Secret باید دقیقاً `HF_TOKEN` باشد
69
+ - توکن را درست کپی کرده باشید
70
+ - دسترسی به مدل تایید شده باشد
71
+
72
+ ## تصویر راهنما:
73
+
74
+ ### ساخت Token:
75
+ ```
76
+ HuggingFace → Settings → Access Tokens → Create new token
77
+ ```
78
+
79
+ ### اضافه کردن Secret:
80
+ ```
81
+ Space → Settings → Repository secrets → Add a secret
82
+ Name: HF_TOKEN
83
+ Value: hf_xxxxxxxxxxxxxx
84
+ ```
85
+
86
+ ## مشکل دارید؟
87
+
88
+ ### اگر نمی‌توانید به مدل دسترسی پیدا کنید:
89
+
90
+ می‌توانید از مدل‌های جایگزین استفاده کنید:
91
+
92
+ #### روش 1: استفاده از GOT-OCR
93
+ در فایل `app.py` خط 12 را تغییر دهید:
94
+ ```python
95
+ MODEL_PATH = "stepfun-ai/GOT-OCR2_0"
96
+ ```
97
+
98
+ #### روش 2: استفاده از Qwen2-VL
99
+ ```python
100
+ MODEL_PATH = "Qwen/Qwen2-VL-2B-Instruct"
101
+ ```
102
+
103
+ این مدل‌ها public هستند و نیازی به token ندارند!
104
+
105
+ ## نکات مهم:
106
+
107
+ ⚠️ **هرگز توکن را در کد commit نکنید**
108
+ ⚠️ **فقط از Secrets استفاده کنید**
109
+ ⚠️ **توکن را با کسی به اشتراک نگذارید**
110
+
111
+ ## کمک بیشتر:
112
+
113
+ - راهنمای کامل: `HF_TOKEN_SETUP.md`
114
+ - راهنمای استقرار: `DEPLOYMENT.md`
115
+ - مستندات: https://huggingface.co/docs/hub/security-tokens
116
+
117
+ ---
118
+
119
+ **با موفقیت راه‌اندازی کنید! 🚀**
120
+
README.md CHANGED
@@ -45,6 +45,28 @@ This Hugging Face Space provides an easy-to-use interface for the [dots.ocr](htt
45
  - Text
46
  - Title
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  ## Usage
49
 
50
  1. **Upload an Image**: Upload a document image (photo, scan, or screenshot)
 
45
  - Text
46
  - Title
47
 
48
+ ## ⚠️ Important: Hugging Face Token Required
49
+
50
+ The `dots.ocr` model is **gated** and requires authentication. To use this Space:
51
+
52
+ 1. **Get a Hugging Face Token**:
53
+ - Go to https://huggingface.co/settings/tokens
54
+ - Create a new token with **Read** access
55
+
56
+ 2. **Request Access to the Model**:
57
+ - Visit https://huggingface.co/rednote-hilab/DotsOCR
58
+ - Click "Request Access" (if gated)
59
+ - Wait for approval
60
+
61
+ 3. **Add Token to Space**:
62
+ - Go to your Space → Settings
63
+ - Add a new Secret:
64
+ - Name: `HF_TOKEN`
65
+ - Value: Your HF token
66
+ - Rebuild the Space
67
+
68
+ 📖 **Full guide**: See `HF_TOKEN_SETUP.md` for detailed instructions
69
+
70
  ## Usage
71
 
72
  1. **Upload an Image**: Upload a document image (photo, scan, or screenshot)
START_HERE.md ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🚀 شروع از اینجا - راهنمای سریع
2
+
3
+ ## ⚠️ مشکل فعلی شما:
4
+
5
+ خطای **401 Unauthorized** هنگام لود کردن مدل `dots.ocr`
6
+
7
+ ---
8
+
9
+ ## ✅ راه حل (فقط 3 مرحله):
10
+
11
+ ### 1️⃣ ساخت Token
12
+
13
+ https://huggingface.co/settings/tokens
14
+ - کلیک: **Create new token**
15
+ - نوع: **Read**
16
+ - **کپی کن** توکن را!
17
+
18
+ ### 2️⃣ درخواست دسترسی
19
+
20
+ https://huggingface.co/rednote-hilab/DotsOCR
21
+ - اگر دکمه **"Request Access"** دیدی → کلیک کن
22
+ - صبر کن تا تایید شه
23
+
24
+ ### 3️⃣ اضافه کردن به Space
25
+
26
+ در Space خودت:
27
+ ```
28
+ Settings → Repository secrets → Add a secret
29
+ Name: HF_TOKEN
30
+ Value: [توکن کپی شده]
31
+ ```
32
+
33
+ ---
34
+
35
+ ## 📖 راهنماهای کامل:
36
+
37
+ | فایل | برای چی؟ |
38
+ |------|----------|
39
+ | **QUICK_FIX_FA.md** ⭐ | راه حل سریع خطای 401 (فارسی) |
40
+ | **FIX_SUMMARY.md** | خلاصه تغییرات و راه حل |
41
+ | **HF_TOKEN_SETUP.md** | راهنمای کامل Token (انگلیسی) |
42
+ | **DEPLOYMENT.md** | راهنمای استقرار در HF Space |
43
+ | **README.md** | مستندات اصلی |
44
+
45
+ ---
46
+
47
+ ## 🎯 بعد از اضافه کردن Token:
48
+
49
+ 1. Space خودکار rebuild میشه
50
+ 2. صبر کن 10-15 دقیقه (اولین بار)
51
+ 3. تست کن!
52
+
53
+ ---
54
+
55
+ ## 🔄 اگر کار نکرد:
56
+
57
+ می‌تونی از مدل‌های public استفاده کنی (بدون Token):
58
+
59
+ ```python
60
+ # در app.py خط 12:
61
+ MODEL_PATH = "stepfun-ai/GOT-OCR2_0"
62
+ ```
63
+
64
+ ---
65
+
66
+ **شروع کن از: QUICK_FIX_FA.md** 👈
67
+
app.py CHANGED
@@ -2,15 +2,36 @@ import gradio as gr
2
  import torch
3
  import json
4
  import spaces
 
5
  from PIL import Image
6
  from transformers import AutoModelForCausalLM, AutoProcessor
7
  from qwen_vl_utils import process_vision_info
 
8
 
9
  # Model configuration
10
  MODEL_PATH = "rednote-hilab/DotsOCR"
11
 
 
 
 
 
 
 
12
  print("Loading model and processor...")
13
- processor = AutoProcessor.from_pretrained(MODEL_PATH, trust_remote_code=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
  # Model will be loaded on GPU when decorated function is called
16
  model = None
@@ -23,7 +44,8 @@ def load_model():
23
  MODEL_PATH,
24
  torch_dtype=torch.bfloat16,
25
  device_map="auto",
26
- trust_remote_code=True
 
27
  )
28
  return model
29
 
 
2
  import torch
3
  import json
4
  import spaces
5
+ import os
6
  from PIL import Image
7
  from transformers import AutoModelForCausalLM, AutoProcessor
8
  from qwen_vl_utils import process_vision_info
9
+ from huggingface_hub import login
10
 
11
  # Model configuration
12
  MODEL_PATH = "rednote-hilab/DotsOCR"
13
 
14
+ # Try to login with HF token if available (for gated models)
15
+ HF_TOKEN = os.environ.get("HF_TOKEN", None)
16
+ if HF_TOKEN:
17
+ print("Authenticating with Hugging Face token...")
18
+ login(token=HF_TOKEN)
19
+
20
  print("Loading model and processor...")
21
+ try:
22
+ processor = AutoProcessor.from_pretrained(
23
+ MODEL_PATH,
24
+ trust_remote_code=True,
25
+ token=HF_TOKEN
26
+ )
27
+ except Exception as e:
28
+ print(f"Error loading model: {e}")
29
+ print("\n⚠️ The dots.ocr model may be gated or not publicly available yet.")
30
+ print("Please check: https://huggingface.co/rednote-hilab/DotsOCR")
31
+ print("\nAlternatives:")
32
+ print("1. Request access to the gated model and add HF_TOKEN to Secrets")
33
+ print("2. Use an alternative OCR model (see README.md)")
34
+ raise
35
 
36
  # Model will be loaded on GPU when decorated function is called
37
  model = None
 
44
  MODEL_PATH,
45
  torch_dtype=torch.bfloat16,
46
  device_map="auto",
47
+ trust_remote_code=True,
48
+ token=HF_TOKEN
49
  )
50
  return model
51
 
requirements.txt CHANGED
@@ -1,6 +1,7 @@
1
  gradio>=5.0.0
2
  torch>=2.0.0
3
  transformers>=4.37.0
 
4
  pillow
5
  qwen-vl-utils
6
  accelerate
 
1
  gradio>=5.0.0
2
  torch>=2.0.0
3
  transformers>=4.37.0
4
+ huggingface-hub>=0.20.0
5
  pillow
6
  qwen-vl-utils
7
  accelerate