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:**
```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:**
```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:**
```bash
curl "https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate?pair=BTC/USDT"
```
---
### 1.2 دریافت نرخ چند جفت ارز (Batch)
**Endpoint:** `GET /api/service/rate/batch`
**مثال JavaScript:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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:**
```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 کامل:**
```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
```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های خارجی نیست!** 🚀