Really-amin's picture
Upload 295 files
d6d843f verified
|
raw
history blame
13.5 kB

🎉 Crypto Intelligence Hub - Complete Package

📦 محتویات Package

crypto-hf-complete.zip
│
├── admin.html                          ✨ NEW - بازنویسی کامل
├── hf_unified_server.py                ✅ 15 endpoint جدید + WebSocket
├── ai_models.py                        ✅ 10+ HF models با ensemble
├── backend/services/hf_registry.py     ✅ 14 datasets curated
├── requirements.txt                    ✅ Fixed conflicts
├── Dockerfile.optimized                ✅ Production ready
│
├── static/
│   ├── css/                            (unchanged)
│   └── js/                             (unchanged - ES6 modules)
│
└── docs/
    ├── README_HF_INTEGRATION.md        📖 HF integration
    ├── DEPLOYMENT_GUIDE.md             🚀 Deployment
    ├── ADMIN_HTML_GUIDE.md             📖 Admin.html guide
    └── SUMMARY.md                      📊 Summary

✨ admin.html - تغییرات کامل

قبل (مشکلات):

❌ 404 errors برای /api/health
❌ WebSocket connection failed  
❌ Empty tables
❌ No loading states
❌ Poor error handling
❌ Sentiment not working

بعد (حل شده):

✅ تمام API endpoints به درستی صدا زده می‌شوند
✅ WebSocket connected و real-time updates
✅ Loading states برای همه sections
✅ Error handling و user feedback
✅ Sentiment از ensemble models
✅ Responsive و accessible

تغییرات اصلی:

1. Navigation با آیکون‌های SVG

<button class="nav-button" data-nav="page-overview">
  <svg>...</svg>
  Overview
</button>

2. Loading States

<tbody data-top-coins-body>
  <tr>
    <td colspan="7">Loading top coins...</td>
  </tr>
</tbody>

3. Backend Integration

// Overview
GET /api/market/stats        → Global stats
GET /api/coins/top?limit=10Top coins
WS /ws                        → Real-time

// Market  
GET /api/coins/top?limit=50All coins
GET /api/coins/{symbol}      → Details
GET /api/charts/price/...    → Chart data

// AI
POST /api/sentiment/analyze  → Ensemble sentiment
POST /api/query              → NLP query
POST /api/charts/analyze     → Technical analysis

// News
GET /api/news/latest?limit=40News با sentiment

// ML Platform
GET /api/datasets/list       → 14 datasets
GET /api/models/list         → 10+ models
POST /api/models/test        → Test model

4. Error Handling

try {
  const res = await apiClient.get('/api/coins/top');
  if (res.ok) {
    updateUI(res.data);
  } else {
    showError(res.error);
  }
} catch (err) {
  showNetworkError(err);
}

5. Sentiment Display

<span class="chip sentiment-bullish">
  🟢 Bullish (87%)
</span>

<span class="chip sentiment-bearish">
  🔴 Bearish (72%)
</span>

<span class="chip sentiment-neutral">
  🟡 Neutral (65%)
</span>

6. Real-time Updates

wsClient.subscribe('update', (data) => {
  updateMarketData(data.market_data);
  updateSentiment(data.sentiment);
  updateNews(data.news);
});

🔌 Backend - Endpoints کامل

Core Endpoints (admin.html نیاز دارد):

✅ GET  /api/health                        - Health check
✅ GET  /api/coins/top?limit=50            - Top coins
✅ GET  /api/coins/{symbol}                - Coin details
✅ GET  /api/market/stats                  - Market overview
✅ GET  /api/charts/price/{symbol}         - Price history
✅ POST /api/charts/analyze                - Chart analysis
✅ GET  /api/news/latest?limit=40          - News + sentiment
✅ POST /api/news/summarize                - Summarize article
✅ POST /api/sentiment/analyze             - Ensemble sentiment
✅ POST /api/query                         - NLP query
✅ GET  /api/providers                     - Provider list
✅ GET  /api/datasets/list                 - HF datasets
✅ GET  /api/datasets/sample?name=...      - Dataset preview
✅ GET  /api/models/list                   - HF models
✅ POST /api/models/test                   - Test model
✅ WS   /ws                                - Real-time updates

Existing Endpoints (unchanged):

✓ GET /health
✓ GET /info
✓ GET /api/ohlcv
✓ GET /api/crypto/prices/top
✓ GET /api/crypto/price/{symbol}
✓ GET /api/crypto/market-overview
✓ ... (20+ more)

🤖 AI Models - Ensemble System

Models در کد:

CRYPTO_SENTIMENT_MODELS = [
    "ElKulako/cryptobert",
    "kk08/CryptoBERT",
    "burakutf/finetuned-finbert-crypto",
    "mathugo/crypto_news_bert"
]

SOCIAL_SENTIMENT_MODELS = [
    "svalabs/twitter-xlm-roberta-bitcoin-sentiment",
    "mayurjadhav/crypto-sentiment-model"
]

FINANCIAL_SENTIMENT_MODELS = [
    "ProsusAI/finbert",
    "cardiffnlp/twitter-roberta-base-sentiment"
]

Ensemble Function:

def ensemble_crypto_sentiment(text: str) -> Dict:
    """
    استفاده از 2-3 مدل برای sentiment analysis
    
    Returns:
        {
            "label": "bullish" | "bearish" | "neutral",
            "confidence": 0.87,
            "scores": {
                "ElKulako/cryptobert": {"label": "bullish", "score": 0.92},
                "kk08/CryptoBERT": {"label": "bullish", "score": 0.82}
            },
            "model_count": 2
        }
    """

📊 Datasets - Curated Collection

Categories:

CRYPTO_DATASETS = {
    "price": [
        "paperswithbacktest/Cryptocurrencies-Daily-Price",
        "linxy/CryptoCoin",
        "sebdg/crypto_data",
        "Farmaanaa/bitcoin_price_timeseries",
        "WinkingFace/CryptoLM-Bitcoin-BTC-USDT",
        "WinkingFace/CryptoLM-Ethereum-ETH-USDT",
        "WinkingFace/CryptoLM-Ripple-XRP-USDT"
    ],
    "news_raw": [
        "flowfree/crypto-news-headlines",
        "edaschau/bitcoin_news"
    ],
    "news_labeled": [
        "SahandNZ/cryptonews-articles-with-price-momentum-labels",
        "tahamajs/bitcoin-individual-news-dataset",
        ...
    ]
}

🚀 Quick Start

1. Extract

unzip crypto-hf-complete.zip
cd crypto-dt-source-hf-integrated

2. Install

pip install -r requirements.txt

3. Configure

export HF_TOKEN=your_huggingface_token
export PORT=7860

4. Run

uvicorn hf_unified_server:app --host 0.0.0.0 --port 7860

5. Access

http://localhost:7860/

🧪 Testing

Backend Health:

curl http://localhost:7860/api/health

# Expected:
{
  "status": "healthy",
  "uptime": 123,
  "models_loaded": 2,
  "datasets_available": 14
}

Top Coins:

curl http://localhost:7860/api/coins/top?limit=5

# Expected:
{
  "success": true,
  "coins": [
    {
      "rank": 1,
      "symbol": "BTC",
      "name": "Bitcoin",
      "price": 67432.50,
      ...
    }
  ]
}

Sentiment Analysis:

curl -X POST http://localhost:7860/api/sentiment/analyze \
  -H "Content-Type: application/json" \
  -d '{"text": "Bitcoin breaking ATH!"}'

# Expected:
{
  "success": true,
  "sentiment": "bullish",
  "confidence": 0.89,
  "details": {...}
}

WebSocket:

// در browser console:
const ws = new WebSocket('ws://localhost:7860/ws');
ws.onmessage = (e) => console.log(JSON.parse(e.data));

// Expected (هر 10 ثانیه):
{
  "type": "update",
  "payload": {
    "market_data": [...],
    "sentiment": {...},
    "timestamp": "..."
  }
}

✅ Checklist - همه چیز کار می‌کند

Frontend (admin.html):

  • Overview page - stats + top coins + sentiment
  • Market page - 50 coins + search + detail drawer
  • Chart Lab - price chart + AI analysis
  • AI Advisor - sentiment + query interface
  • News - headlines با sentiment badges
  • Providers - 95+ listed
  • Datasets & Models - 14 datasets, 10+ models
  • API Explorer - all endpoints listed
  • Diagnostics - health status + logs
  • Settings - theme + intervals
  • WebSocket - real-time updates (10s)
  • Navigation - smooth transitions
  • Loading states - همه جا
  • Error handling - user-friendly messages

Backend (hf_unified_server.py):

  • All 15 new endpoints working
  • WebSocket connection stable
  • Ensemble sentiment operational
  • Models lazy-loading
  • Datasets catalog available
  • CORS configured
  • Error responses proper
  • Health check working

AI Models (ai_models.py):

  • 10+ models registered
  • Ensemble voting implemented
  • Lazy-loading working
  • Confidence scoring
  • Error handling

HF Registry (hf_registry.py):

  • 14 datasets cataloged
  • Category organization
  • Auto-refresh from Hub
  • Metadata included

Dependencies (requirements.txt):

  • Websockets conflict fixed (>=10.4,<12.0)
  • All packages compatible
  • datasets>=3.0.0 added
  • transformers>=4.45.0

Docker (Dockerfile.optimized):

  • Multi-stage caching
  • Health check included
  • Environment variables set
  • Model cache configured

📖 Documentation

Included Files:

  1. README_HF_INTEGRATION.md - کامل‌ترین راهنما
  2. DEPLOYMENT_GUIDE.md - راه‌اندازی step-by-step
  3. ADMIN_HTML_GUIDE.md - توضیحات frontend
  4. SUMMARY.md - خلاصه تغییرات
  5. این فایل - overview کلی

🎯 نکات مهم

Sentiment Ensemble:

  • استفاده از 2-3 مدل همزمان
  • Majority voting برای label
  • Average confidence score
  • Per-model breakdown available

Dataset Sampling:

  • نیاز به authentication برای بعضی datasets
  • Preview first 20 rows
  • Category filtering
  • Metadata included

WebSocket Updates:

  • هر 10 ثانیه یک update
  • شامل market + news + sentiment
  • Auto-reconnect on disconnect
  • Backoff strategy برای retry

Model Loading:

  • اولین بار: ~30s (download)
  • بعدی: instant (cached)
  • Set HF_TOKEN for private models
  • Lazy-loading برای بهینه‌سازی memory

🐛 Common Issues

1. "checking" never changes to "healthy"

# Check backend:
curl http://localhost:7860/api/health

# Check logs:
docker logs crypto-hub

2. WebSocket shows "error"

# Test connection:
wscat -c ws://localhost:7860/ws

# Check firewall/proxy

3. Empty tables in UI

# Check API responses:
curl http://localhost:7860/api/coins/top
curl http://localhost:7860/api/market/stats

# Check browser console for errors

4. Models not loading

# Check HF_TOKEN:
echo $HF_TOKEN

# Check transformers installed:
pip show transformers

# Check disk space (models ~500MB each)
df -h

🎓 Architecture Overview

                    ┌──────────────┐
                    │  admin.html  │
                    │  (Browser)   │
                    └───────┬──────┘
                            │
                    ┌───────┴──────┐
                    │   HTTP/WS    │
                    └───────┬──────┘
                            │
        ┌───────────────────┼───────────────────┐
        │                   │                   │
    ┌───▼────┐      ┌──────▼──────┐     ┌─────▼──────┐
    │Market  │      │Sentiment    │     │Datasets    │
    │Endpoints│      │Ensemble     │     │& Models    │
    └───┬────┘      └──────┬──────┘     └─────┬──────┘
        │                  │                   │
        └──────────┬───────┴───────┬───────────┘
                   │               │
           ┌───────▼──────┐  ┌─────▼──────┐
           │ hf_unified_  │  │ WebSocket  │
           │ server.py    │  │ Manager    │
           └──────┬───────┘  └────────────┘
                  │
    ┌─────────────┼─────────────┐
    │             │             │
┌───▼───┐  ┌─────▼──────┐  ┌──▼────┐
│ai_    │  │hf_registry │  │collec-│
│models │  │.py         │  │tors   │
└───────┘  └────────────┘  └───────┘

🎉 تمام!

همه چیز آماده است:

Frontend - admin.html بازنویسی کامل ✅ Backend - 15 endpoint جدید ✅ AI - 10+ مدل با ensemble ✅ Data - 14 dataset curated ✅ Real-time - WebSocket کار می‌کند ✅ Deps - Conflicts حل شده ✅ Docs - راهنماهای کامل ✅ Docker - Production ready

آماده deployment در:

  • 🚀 HuggingFace Space
  • 🐳 Docker Container
  • 💻 Local Development
  • ☁️ Cloud Platforms

پروژه کاملاً عملیاتی و آماده production است! 🎊