Cursor Agent
Fix AI models pages and add monitoring system
426ef14

راهنمای استفاده از سرویس‌های API

🔗 مشخصات HuggingFace Space

Space URL: https://really-amin-datasourceforcryptocurrency.hf.space
WebSocket URL: wss://really-amin-datasourceforcryptocurrency.hf.space/ws
API Base: https://really-amin-datasourceforcryptocurrency.hf.space/api


📋 1. سرویس‌های جفت ارز (Trading Pairs)

1.1 دریافت نرخ یک جفت ارز

Endpoint: GET /api/service/rate

مثال JavaScript:

// دریافت نرخ BTC/USDT
const response = await fetch(
  'https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate?pair=BTC/USDT'
);
const data = await response.json();
console.log(data);
// خروجی:
// {
//   "data": {
//     "pair": "BTC/USDT",
//     "price": 50234.12,
//     "quote": "USDT",
//     "ts": "2025-01-15T12:00:00Z"
//   },
//   "meta": {
//     "source": "hf",
//     "generated_at": "2025-01-15T12:00:00Z",
//     "cache_ttl_seconds": 10
//   }
// }

مثال Python:

import requests

url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate"
params = {"pair": "BTC/USDT"}

response = requests.get(url, params=params)
data = response.json()
print(f"قیمت BTC/USDT: ${data['data']['price']}")

مثال cURL:

curl "https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate?pair=BTC/USDT"

1.2 دریافت نرخ چند جفت ارز (Batch)

Endpoint: GET /api/service/rate/batch

مثال JavaScript:

const pairs = "BTC/USDT,ETH/USDT,BNB/USDT";
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate/batch?pairs=${pairs}`
);
const data = await response.json();
console.log(data.data); // آرایه‌ای از نرخ‌ها

مثال Python:

import requests

url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate/batch"
params = {"pairs": "BTC/USDT,ETH/USDT,BNB/USDT"}

response = requests.get(url, params=params)
data = response.json()

for rate in data['data']:
    print(f"{rate['pair']}: ${rate['price']}")

1.3 دریافت اطلاعات کامل یک جفت ارز

Endpoint: GET /api/service/pair/{pair}

مثال JavaScript:

const pair = "BTC-USDT"; // یا BTC/USDT
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/service/pair/${pair}`
);
const data = await response.json();
console.log(data);

1.4 دریافت داده‌های OHLC (کندل)

Endpoint: GET /api/market/ohlc

مثال JavaScript:

const symbol = "BTC";
const interval = "1h"; // 1m, 5m, 15m, 1h, 4h, 1d
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/market/ohlc?symbol=${symbol}&interval=${interval}`
);
const data = await response.json();
console.log(data.data); // آرایه‌ای از کندل‌ها

مثال Python:

import requests

url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/market/ohlc"
params = {
    "symbol": "BTC",
    "interval": "1h"
}

response = requests.get(url, params=params)
data = response.json()

for candle in data['data']:
    print(f"Open: {candle['open']}, High: {candle['high']}, Low: {candle['low']}, Close: {candle['close']}")

1.5 دریافت لیست تیکرها

Endpoint: GET /api/market/tickers

مثال JavaScript:

const response = await fetch(
  'https://really-amin-datasourceforcryptocurrency.hf.space/api/market/tickers?limit=100&sort=market_cap'
);
const data = await response.json();
console.log(data.data); // لیست 100 ارز برتر

📰 2. سرویس‌های اخبار (News)

2.1 دریافت آخرین اخبار

Endpoint: GET /api/news/latest

مثال JavaScript:

const symbol = "BTC";
const limit = 10;
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/news/latest?symbol=${symbol}&limit=${limit}`
);
const data = await response.json();
console.log(data.data); // آرایه‌ای از اخبار

مثال Python:

import requests

url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/news/latest"
params = {
    "symbol": "BTC",
    "limit": 10
}

response = requests.get(url, params=params)
data = response.json()

for article in data['data']:
    print(f"Title: {article['title']}")
    print(f"Source: {article['source']}")
    print(f"URL: {article['url']}\n")

2.2 خلاصه‌سازی اخبار با AI

Endpoint: POST /api/news/summarize

مثال JavaScript:

const articleText = "Bitcoin reached new all-time high..."; // متن خبر

const response = await fetch(
  'https://really-amin-datasourceforcryptocurrency.hf.space/api/news/summarize',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      text: articleText
    })
  }
);
const data = await response.json();
console.log(data.summary); // خلاصه تولید شده

مثال Python:

import requests

url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/news/summarize"
payload = {
    "text": "Bitcoin reached new all-time high..."
}

response = requests.post(url, json=payload)
data = response.json()
print(f"خلاصه: {data['summary']}")

2.3 دریافت تیترهای مهم

Endpoint: GET /api/news/headlines

مثال JavaScript:

const response = await fetch(
  'https://really-amin-datasourceforcryptocurrency.hf.space/api/news/headlines?limit=10'
);
const data = await response.json();
console.log(data.data);

🐋 3. سرویس‌های نهنگ‌ها (Whale Tracking)

3.1 دریافت تراکنش‌های نهنگ‌ها

Endpoint: GET /api/service/whales

مثال JavaScript:

const chain = "ethereum";
const minAmount = 1000000; // حداقل 1 میلیون دلار
const limit = 50;

const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/service/whales?chain=${chain}&min_amount_usd=${minAmount}&limit=${limit}`
);
const data = await response.json();
console.log(data.data); // لیست تراکنش‌های نهنگ

مثال Python:

import requests

url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/service/whales"
params = {
    "chain": "ethereum",
    "min_amount_usd": 1000000,
    "limit": 50
}

response = requests.get(url, params=params)
data = response.json()

for tx in data['data']:
    print(f"از: {tx['from']}")
    print(f"به: {tx['to']}")
    print(f"مقدار: ${tx['amount_usd']:,.2f} USD")
    print(f"زمان: {tx['ts']}\n")

3.2 دریافت آمار نهنگ‌ها

Endpoint: GET /api/whales/stats

مثال JavaScript:

const hours = 24; // آمار 24 ساعت گذشته
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/whales/stats?hours=${hours}`
);
const data = await response.json();
console.log(data);
// خروجی شامل: تعداد تراکنش‌ها، حجم کل، میانگین و...

💭 4. سرویس‌های تحلیل احساسات (Sentiment)

4.1 تحلیل احساسات برای یک ارز

Endpoint: GET /api/service/sentiment

مثال JavaScript:

const symbol = "BTC";
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/service/sentiment?symbol=${symbol}`
);
const data = await response.json();
console.log(data);
// خروجی: score (امتیاز), label (مثبت/منفی/خنثی)

4.2 تحلیل احساسات متن

Endpoint: POST /api/sentiment/analyze

مثال JavaScript:

const text = "Bitcoin is going to the moon! 🚀";

const response = await fetch(
  'https://really-amin-datasourceforcryptocurrency.hf.space/api/sentiment/analyze',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      text: text
    })
  }
);
const data = await response.json();
console.log(`احساسات: ${data.label}, امتیاز: ${data.score}`);

مثال Python:

import requests

url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/sentiment/analyze"
payload = {
    "text": "Bitcoin is going to the moon! 🚀"
}

response = requests.post(url, json=payload)
data = response.json()
print(f"احساسات: {data['label']}")
print(f"امتیاز: {data['score']}")

4.3 شاخص ترس و طمع (Fear & Greed)

Endpoint: GET /api/v1/alternative/fng

مثال JavaScript:

const response = await fetch(
  'https://really-amin-datasourceforcryptocurrency.hf.space/api/v1/alternative/fng'
);
const data = await response.json();
console.log(`شاخص ترس و طمع: ${data.value} (${data.classification})`);

⛓️ 5. سرویس‌های بلاکچین (Blockchain)

5.1 دریافت تراکنش‌های یک آدرس

Endpoint: GET /api/service/onchain

مثال JavaScript:

const address = "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb";
const chain = "ethereum";
const limit = 50;

const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/service/onchain?address=${address}&chain=${chain}&limit=${limit}`
);
const data = await response.json();
console.log(data.data); // لیست تراکنش‌ها

5.2 دریافت قیمت گس

Endpoint: GET /api/blockchain/gas

مثال JavaScript:

const chain = "ethereum";
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/blockchain/gas?chain=${chain}`
);
const data = await response.json();
console.log(data);
// خروجی: slow, standard, fast (در gwei)

مثال Python:

import requests

url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/blockchain/gas"
params = {"chain": "ethereum"}

response = requests.get(url, params=params)
data = response.json()
print(f"Slow: {data['slow']} gwei")
print(f"Standard: {data['standard']} gwei")
print(f"Fast: {data['fast']} gwei")

5.3 دریافت تراکنش‌های ETH

Endpoint: GET /api/v1/blockchain/eth/transactions

مثال JavaScript:

const address = "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb";
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/v1/blockchain/eth/transactions?address=${address}`
);
const data = await response.json();
console.log(data.data);

5.4 دریافت موجودی ETH

Endpoint: GET /api/v1/blockchain/eth/balance

مثال JavaScript:

const address = "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb";
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/v1/blockchain/eth/balance?address=${address}`
);
const data = await response.json();
console.log(`موجودی: ${data.balance} ETH`);

🤖 6. سرویس‌های AI و مدل‌ها

6.1 پیش‌بینی با مدل AI

Endpoint: POST /api/models/{model_key}/predict

مثال JavaScript:

const modelKey = "cryptobert_elkulako";
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/models/${modelKey}/predict`,
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      input: "Bitcoin price analysis",
      context: {}
    })
  }
);
const data = await response.json();
console.log(data.prediction);

6.2 دریافت لیست مدل‌های موجود

Endpoint: GET /api/models/list

مثال JavaScript:

const response = await fetch(
  'https://really-amin-datasourceforcryptocurrency.hf.space/api/models/list'
);
const data = await response.json();
console.log(data.models); // لیست مدل‌های موجود

📊 7. سرویس‌های عمومی

7.1 وضعیت کلی بازار

Endpoint: GET /api/service/market-status

مثال JavaScript:

const response = await fetch(
  'https://really-amin-datasourceforcryptocurrency.hf.space/api/service/market-status'
);
const data = await response.json();
console.log(data);
// خروجی: حجم کل بازار، تعداد ارزها، تغییرات و...

7.2 10 ارز برتر

Endpoint: GET /api/service/top

مثال JavaScript:

const n = 10; // یا 50
const response = await fetch(
  `https://really-amin-datasourceforcryptocurrency.hf.space/api/service/top?n=${n}`
);
const data = await response.json();
console.log(data.data); // لیست 10 ارز برتر

7.3 سلامت سیستم

Endpoint: GET /api/health

مثال JavaScript:

const response = await fetch(
  'https://really-amin-datasourceforcryptocurrency.hf.space/api/health'
);
const data = await response.json();
console.log(data.status); // "healthy" یا "degraded"

7.4 سرویس عمومی (Generic Query)

Endpoint: POST /api/service/query

مثال JavaScript:

const response = await fetch(
  'https://really-amin-datasourceforcryptocurrency.hf.space/api/service/query',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      type: "rate", // یا: history, sentiment, econ, whales, onchain, pair
      payload: {
        pair: "BTC/USDT"
      },
      options: {
        prefer_hf: true,
        persist: true
      }
    })
  }
);
const data = await response.json();
console.log(data);

🔌 8. WebSocket (داده‌های Real-time)

8.1 اتصال WebSocket

مثال JavaScript:

const ws = new WebSocket('wss://really-amin-datasourceforcryptocurrency.hf.space/ws');

ws.onopen = () => {
  console.log('متصل شد!');
  
  // Subscribe به داده‌های بازار
  ws.send(JSON.stringify({
    action: "subscribe",
    service: "market_data",
    symbols: ["BTC", "ETH", "BNB"]
  }));
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log('داده جدید:', data);
  
  // مثال خروجی:
  // {
  //   "type": "update",
  //   "service": "market_data",
  //   "symbol": "BTC",
  //   "data": {
  //     "price": 50234.12,
  //     "volume": 1234567.89,
  //     "change_24h": 2.5
  //   },
  //   "timestamp": "2025-01-15T12:00:00Z"
  // }
};

ws.onerror = (error) => {
  console.error('خطا:', error);
};

ws.onclose = () => {
  console.log('اتصال بسته شد');
};

8.2 Subscribe به اخبار

مثال JavaScript:

const ws = new WebSocket('wss://really-amin-datasourceforcryptocurrency.hf.space/ws');

ws.onopen = () => {
  ws.send(JSON.stringify({
    action: "subscribe",
    service: "news",
    filters: {
      symbols: ["BTC", "ETH"]
    }
  }));
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  if (data.type === "news") {
    console.log('خبر جدید:', data.article);
  }
};

8.3 Subscribe به نهنگ‌ها

مثال JavaScript:

const ws = new WebSocket('wss://really-amin-datasourceforcryptocurrency.hf.space/ws');

ws.onopen = () => {
  ws.send(JSON.stringify({
    action: "subscribe",
    service: "whale_tracking",
    filters: {
      chain: "ethereum",
      min_amount_usd: 1000000
    }
  }));
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  if (data.type === "whale_transaction") {
    console.log('تراکنش نهنگ:', data.transaction);
  }
};

📝 نکات مهم

  1. Base URL: همیشه از https://really-amin-datasourceforcryptocurrency.hf.space استفاده کنید
  2. WebSocket: از wss:// برای اتصال امن استفاده کنید
  3. Rate Limiting: درخواست‌ها محدود هستند (حدود 1200 در دقیقه)
  4. Cache: پاسخ‌ها cache می‌شوند (TTL در فیلد meta.cache_ttl_seconds)
  5. Error Handling: همیشه خطاها را handle کنید

🔍 مثال کامل (Full Example)

مثال JavaScript کامل:

class CryptoAPIClient {
  constructor() {
    this.baseURL = 'https://really-amin-datasourceforcryptocurrency.hf.space';
  }

  async getRate(pair) {
    const response = await fetch(`${this.baseURL}/api/service/rate?pair=${pair}`);
    if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
    return await response.json();
  }

  async getNews(symbol = 'BTC', limit = 10) {
    const response = await fetch(
      `${this.baseURL}/api/news/latest?symbol=${symbol}&limit=${limit}`
    );
    if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
    return await response.json();
  }

  async getWhales(chain = 'ethereum', minAmount = 1000000) {
    const response = await fetch(
      `${this.baseURL}/api/service/whales?chain=${chain}&min_amount_usd=${minAmount}`
    );
    if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
    return await response.json();
  }

  async analyzeSentiment(text) {
    const response = await fetch(
      `${this.baseURL}/api/sentiment/analyze`,
      {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ text })
      }
    );
    if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
    return await response.json();
  }
}

// استفاده:
const client = new CryptoAPIClient();

// دریافت نرخ
const rate = await client.getRate('BTC/USDT');
console.log(`قیمت BTC: $${rate.data.price}`);

// دریافت اخبار
const news = await client.getNews('BTC', 5);
news.data.forEach(article => {
  console.log(`- ${article.title}`);
});

// دریافت نهنگ‌ها
const whales = await client.getWhales('ethereum', 1000000);
console.log(`تعداد تراکنش‌های نهنگ: ${whales.data.length}`);

🐍 مثال کامل Python

import requests
from typing import Optional, Dict, Any

class CryptoAPIClient:
    def __init__(self):
        self.base_url = "https://really-amin-datasourceforcryptocurrency.hf.space"
    
    def get_rate(self, pair: str) -> Dict[str, Any]:
        """دریافت نرخ یک جفت ارز"""
        url = f"{self.base_url}/api/service/rate"
        params = {"pair": pair}
        response = requests.get(url, params=params)
        response.raise_for_status()
        return response.json()
    
    def get_news(self, symbol: str = "BTC", limit: int = 10) -> Dict[str, Any]:
        """دریافت اخبار"""
        url = f"{self.base_url}/api/news/latest"
        params = {"symbol": symbol, "limit": limit}
        response = requests.get(url, params=params)
        response.raise_for_status()
        return response.json()
    
    def get_whales(self, chain: str = "ethereum", min_amount: int = 1000000) -> Dict[str, Any]:
        """دریافت تراکنش‌های نهنگ‌ها"""
        url = f"{self.base_url}/api/service/whales"
        params = {
            "chain": chain,
            "min_amount_usd": min_amount
        }
        response = requests.get(url, params=params)
        response.raise_for_status()
        return response.json()
    
    def analyze_sentiment(self, text: str) -> Dict[str, Any]:
        """تحلیل احساسات"""
        url = f"{self.base_url}/api/sentiment/analyze"
        payload = {"text": text}
        response = requests.post(url, json=payload)
        response.raise_for_status()
        return response.json()

# استفاده:
client = CryptoAPIClient()

# دریافت نرخ
rate = client.get_rate("BTC/USDT")
print(f"قیمت BTC: ${rate['data']['price']}")

# دریافت اخبار
news = client.get_news("BTC", 5)
for article in news['data']:
    print(f"- {article['title']}")

# دریافت نهنگ‌ها
whales = client.get_whales("ethereum", 1000000)
print(f"تعداد تراکنش‌های نهنگ: {len(whales['data'])}")

تمام این سرویس‌ها از HuggingFace Space شما سرو می‌شوند و نیازی به اتصال مستقیم به APIهای خارجی نیست! 🚀