Datasourceforcryptocurrency / static /SERVER_FIXES_GUIDE.md
Really-amin's picture
Upload 577 files
b190b45 verified
# 🔧 راهنمای اصلاح فایل‌های سرور
## 📋 فایل‌هایی که باید اصلاح شوند
### ✅ فایل اصلی: `hf_unified_server.py`
این فایل اصلی است که Space شما از آن استفاده می‌کند (از طریق `main.py`).
**مسیر:** `hf_unified_server.py`
**مشکل:** Router `unified_service_api` ممکن است با خطا load شود یا register نشود.
**راه حل:**
1. **چک کنید router import شده:**
```python
# خط 26 باید این باشد:
from backend.routers.unified_service_api import router as service_router
```
2. **چک کنید router register شده:**
```python
# خط 173-176 باید این باشد:
try:
app.include_router(service_router) # Main unified service
logger.info("✅ Unified Service API Router loaded")
except Exception as e:
logger.error(f"Failed to include service_router: {e}")
import traceback
traceback.print_exc() # اضافه کنید برای debug
```
3. **اگر router load نمی‌شود، چک کنید:**
- آیا فایل `backend/routers/unified_service_api.py` وجود دارد؟
- آیا dependencies نصب شده‌اند؟
- آیا import errors وجود دارد؟
---
### ✅ فایل جایگزین: `api_server_extended.py`
اگر Space شما از این فایل استفاده می‌کند:
**مسیر:** `api_server_extended.py`
**مشکل:** Router `unified_service_api` در این فایل register نشده.
**راه حل:**
در فایل `api_server_extended.py`، بعد از خط 825 (بعد از resources_router)، اضافه کنید:
```python
# ===== Include Unified Service API Router =====
try:
from backend.routers.unified_service_api import router as unified_service_router
app.include_router(unified_service_router)
print("✓ ✅ Unified Service API Router loaded")
except Exception as unified_error:
print(f"⚠ Failed to load Unified Service API Router: {unified_error}")
import traceback
traceback.print_exc()
```
---
## 🔍 تشخیص اینکه Space از کدام فایل استفاده می‌کند
### روش 1: چک کردن `main.py`
```python
# main.py را باز کنید
# اگر این خط را دارد:
from hf_unified_server import app
# پس از hf_unified_server.py استفاده می‌کند
# اگر این خط را دارد:
from api_server_extended import app
# پس از api_server_extended.py استفاده می‌کند
```
### روش 2: چک کردن لاگ‌های Space
به Space logs بروید و ببینید:
- اگر می‌گوید: `✅ Loaded hf_unified_server` → از `hf_unified_server.py` استفاده می‌کند
- اگر می‌گوید: `✅ FastAPI app loaded` → از `api_server_extended.py` استفاده می‌کند
---
## 📝 تغییرات دقیق
### تغییر 1: `hf_unified_server.py`
**خط 173-176 را به این تغییر دهید:**
```python
# Include routers
try:
app.include_router(service_router) # Main unified service
logger.info("✅ Unified Service API Router loaded successfully")
except Exception as e:
logger.error(f"❌ Failed to include service_router: {e}")
import traceback
traceback.print_exc() # برای debug
# اما ادامه دهید - fallback نکنید
```
**نکته:** اگر router load نمی‌شود، خطا را در لاگ ببینید و مشکل را fix کنید.
---
### تغییر 2: `api_server_extended.py` (اگر استفاده می‌شود)
**بعد از خط 825 اضافه کنید:**
```python
# ===== Include Unified Service API Router =====
try:
from backend.routers.unified_service_api import router as unified_service_router
app.include_router(unified_service_router)
print("✓ ✅ Unified Service API Router loaded - /api/service/* endpoints available")
except Exception as unified_error:
print(f"⚠ Failed to load Unified Service API Router: {unified_error}")
import traceback
traceback.print_exc()
```
---
## 🐛 Fix کردن مشکلات HuggingFace Models
### مشکل: مدل‌ها پیدا نمی‌شوند
**فایل:** `backend/services/direct_model_loader.py` یا فایل مشابه
**تغییر:**
```python
# مدل‌های جایگزین
SENTIMENT_MODELS = {
"cryptobert_elkulako": "ProsusAI/finbert", # جایگزین
"default": "cardiffnlp/twitter-roberta-base-sentiment"
}
SUMMARIZATION_MODELS = {
"bart": "facebook/bart-large", # جایگزین
"default": "google/pegasus-xsum"
}
```
یا در فایل config:
```python
# config.py یا ai_models.py
HUGGINGFACE_MODELS = {
"sentiment_twitter": "cardiffnlp/twitter-roberta-base-sentiment-latest",
"sentiment_financial": "ProsusAI/finbert",
"summarization": "facebook/bart-large", # تغییر از bart-large-cnn
"crypto_sentiment": "ProsusAI/finbert", # تغییر از ElKulako/cryptobert
}
```
---
## ✅ چک‌لیست اصلاحات
### مرحله 1: تشخیص فایل اصلی
- [ ] `main.py` را باز کنید
- [ ] ببینید از کدام فایل import می‌کند
- [ ] فایل اصلی را مشخص کنید
### مرحله 2: اصلاح Router Registration
- [ ] فایل اصلی را باز کنید (`hf_unified_server.py` یا `api_server_extended.py`)
- [ ] چک کنید `service_router` import شده
- [ ] چک کنید `app.include_router(service_router)` وجود دارد
- [ ] اگر نیست، اضافه کنید
- [ ] Error handling اضافه کنید
### مرحله 3: Fix کردن Models
- [ ] فایل config مدل‌ها را پیدا کنید
- [ ] مدل‌های جایگزین را تنظیم کنید
- [ ] یا از مدل‌های معتبر استفاده کنید
### مرحله 4: تست
- [ ] Space را restart کنید
- [ ] لاگ‌ها را چک کنید
- [ ] تست کنید: `GET /api/service/rate?pair=BTC/USDT`
- [ ] باید 200 برگرداند (نه 404)
---
## 🔍 Debug Steps
### 1. چک کردن Router Load
در Space logs ببینید:
```
✅ Unified Service API Router loaded successfully
```
اگر این پیام را نمی‌بینید، router load نشده.
### 2. چک کردن Endpointها
بعد از restart، تست کنید:
```bash
curl https://your-space.hf.space/api/service/rate?pair=BTC/USDT
```
اگر 404 می‌دهد، router register نشده.
### 3. چک کردن Import Errors
در لاگ‌ها دنبال این خطاها بگردید:
```
Failed to include service_router: [error]
ImportError: cannot import name 'router' from 'backend.routers.unified_service_api'
```
---
## 📝 مثال کامل تغییرات
### برای `hf_unified_server.py`:
```python
# خط 26 - Import (باید وجود داشته باشد)
from backend.routers.unified_service_api import router as service_router
# خط 173-180 - Registration (به این تغییر دهید)
try:
app.include_router(service_router) # Main unified service
logger.info("✅ Unified Service API Router loaded - /api/service/* endpoints available")
except ImportError as e:
logger.error(f"❌ Import error for service_router: {e}")
logger.error("Check if backend/routers/unified_service_api.py exists")
import traceback
traceback.print_exc()
except Exception as e:
logger.error(f"❌ Failed to include service_router: {e}")
import traceback
traceback.print_exc()
```
---
## 🚀 بعد از اصلاحات
1. **Space را restart کنید**
2. **لاگ‌ها را چک کنید:**
- باید ببینید: `✅ Unified Service API Router loaded`
3. **تست کنید:**
```bash
curl https://your-space.hf.space/api/service/rate?pair=BTC/USDT
```
4. **اگر هنوز 404 می‌دهد:**
- لاگ‌ها را دوباره چک کنید
- مطمئن شوید router import شده
- مطمئن شوید router register شده
---
## 📞 اگر مشکل حل نشد
1. **لاگ‌های کامل Space را ببینید**
2. **Import errors را پیدا کنید**
3. **Dependencies را چک کنید:**
```bash
pip list | grep fastapi
pip list | grep backend
```
4. **فایل router را چک کنید:**
- آیا `backend/routers/unified_service_api.py` وجود دارد؟
- آیا `router = APIRouter(...)` در آن تعریف شده؟
---
**موفق باشید! 🚀**