🔧 راهنمای اصلاح فایلهای سرور
📋 فایلهایی که باید اصلاح شوند
✅ فایل اصلی: hf_unified_server.py
این فایل اصلی است که Space شما از آن استفاده میکند (از طریق main.py).
مسیر: hf_unified_server.py
مشکل: Router unified_service_api ممکن است با خطا load شود یا register نشود.
راه حل:
چک کنید router import شده:
# خط 26 باید این باشد: from backend.routers.unified_service_api import router as service_routerچک کنید router register شده:
# خط 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اگر 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)، اضافه کنید:
# ===== 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
# 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 را به این تغییر دهید:
# 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 اضافه کنید:
# ===== 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 یا فایل مشابه
تغییر:
# مدلهای جایگزین
SENTIMENT_MODELS = {
"cryptobert_elkulako": "ProsusAI/finbert", # جایگزین
"default": "cardiffnlp/twitter-roberta-base-sentiment"
}
SUMMARIZATION_MODELS = {
"bart": "facebook/bart-large", # جایگزین
"default": "google/pegasus-xsum"
}
یا در فایل config:
# 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_routerimport شده - چک کنید
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، تست کنید:
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:
# خط 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()
🚀 بعد از اصلاحات
- Space را restart کنید
- لاگها را چک کنید:
- باید ببینید:
✅ Unified Service API Router loaded
- باید ببینید:
- تست کنید:
curl https://your-space.hf.space/api/service/rate?pair=BTC/USDT - اگر هنوز 404 میدهد:
- لاگها را دوباره چک کنید
- مطمئن شوید router import شده
- مطمئن شوید router register شده
📞 اگر مشکل حل نشد
- لاگهای کامل Space را ببینید
- Import errors را پیدا کنید
- Dependencies را چک کنید:
pip list | grep fastapi pip list | grep backend - فایل router را چک کنید:
- آیا
backend/routers/unified_service_api.pyوجود دارد؟ - آیا
router = APIRouter(...)در آن تعریف شده؟
- آیا
موفق باشید! 🚀