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