Cursor Agent
Archive historical documentation - safe cleanup
ce3bb07

🔧 راهنمای اصلاح فایل‌های سرور

📋 فایل‌هایی که باید اصلاح شوند

✅ فایل اصلی: hf_unified_server.py

این فایل اصلی است که Space شما از آن استفاده می‌کند (از طریق main.py).

مسیر: hf_unified_server.py

مشکل: Router unified_service_api ممکن است با خطا load شود یا register نشود.

راه حل:

  1. چک کنید router import شده:

    # خط 26 باید این باشد:
    from backend.routers.unified_service_api import router as service_router
    
  2. چک کنید 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
    
  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)، اضافه کنید:

# ===== 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_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، تست کنید:

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()

🚀 بعد از اصلاحات

  1. Space را restart کنید
  2. لاگ‌ها را چک کنید:
    • باید ببینید: ✅ Unified Service API Router loaded
  3. تست کنید:
    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 را چک کنید:
    pip list | grep fastapi
    pip list | grep backend
    
  4. فایل router را چک کنید:
    • آیا backend/routers/unified_service_api.py وجود دارد؟
    • آیا router = APIRouter(...) در آن تعریف شده؟

موفق باشید! 🚀