# 🔧 راهنمای اصلاح فایل‌های سرور ## 📋 فایل‌هایی که باید اصلاح شوند ### ✅ فایل اصلی: `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(...)` در آن تعریف شده؟ --- **موفق باشید! 🚀**