pulizia veloce
This commit is contained in:
255
docs/App_Architecture_Diagrams.md
Normal file
255
docs/App_Architecture_Diagrams.md
Normal file
@@ -0,0 +1,255 @@
|
||||
# 📊 Architettura e Flussi dell'App upo-appAI
|
||||
|
||||
## 🏗️ Diagramma Architettura Generale
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 🌐 GRADIO UI │
|
||||
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
|
||||
│ │ User Input │ │ Provider │ │ Style │ │
|
||||
│ │ (Query) │ │ (Model) │ │ (Conservative/ │ │
|
||||
│ │ │ │ │ │ Aggressive) │ │
|
||||
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
|
||||
└─────────────────────────┬───────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 🔧 TOOL AGENT │
|
||||
│ (Central Orchestrator) │
|
||||
│ │
|
||||
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
|
||||
│ │ 1. Collect Data │ │ 2. Analyze │ │ 3. Predict & │ │
|
||||
│ │ │ │ Sentiment │ │ Recommend │ │
|
||||
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
|
||||
└─────────────────────────┬───────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 📊 AGENT ECOSYSTEM │
|
||||
│ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌───────────┐│
|
||||
│ │ MARKET │ │ NEWS │ │ SOCIAL │ │ PREDICTOR ││
|
||||
│ │ AGENT │ │ AGENT │ │ AGENT │ │ AGENT ││
|
||||
│ │ │ │ │ │ │ │ ││
|
||||
│ │ 📈 Coinbase │ │ 📰 News API │ │ 🐦 Social │ │ 🤖 LLM ││
|
||||
│ │ 📊 CryptoCmp│ │ │ │ Media │ │ Analysis ││
|
||||
│ │ 🟡 Binance │ │ │ │ │ │ ││
|
||||
│ └─────────────┘ └─────────────┘ └─────────────┘ └───────────┘│
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 🔄 Flusso di Esecuzione Dettagliato
|
||||
|
||||
```
|
||||
👤 USER REQUEST
|
||||
│
|
||||
│ "Analizza Bitcoin con strategia aggressiva"
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ 🔧 TOOL AGENT │
|
||||
│ │
|
||||
│ def interact(query, provider, style): │
|
||||
│ │ │
|
||||
│ ├── 📊 market_data = market_agent.analyze(query) │
|
||||
│ ├── 📰 news_sentiment = news_agent.analyze(query) │
|
||||
│ ├── 🐦 social_sentiment = social_agent.analyze(query) │
|
||||
│ │ │
|
||||
│ └── 🤖 prediction = predictor_agent.predict(...) │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
📊 MARKET AGENT - Parallel Data Collection
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ │
|
||||
│ 🔍 Auto-detect Available Providers: │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ Coinbase │ │ CryptoComp │ │ Binance │ │
|
||||
│ │ REST │ │ API │ │ Mock │ │
|
||||
│ │ │ │ │ │ │ │
|
||||
│ │ ✅ Active │ │ ✅ Active │ │ ✅ Active │ │
|
||||
│ │ $63,500 BTC │ │ $63,450 BTC │ │ $63,600 BTC │ │
|
||||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||||
│ │
|
||||
│ 📈 Aggregated Result: │
|
||||
│ { │
|
||||
│ "aggregated_data": { │
|
||||
│ "BTC_USD": { │
|
||||
│ "price": 63516.67, │
|
||||
│ "confidence": 0.94, │
|
||||
│ "sources_count": 3 │
|
||||
│ } │
|
||||
│ }, │
|
||||
│ "individual_sources": {...}, │
|
||||
│ "market_signals": {...} │
|
||||
│ } │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
📰 NEWS AGENT + 🐦 SOCIAL AGENT
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ │
|
||||
│ 📰 News Sentiment: "Positive momentum, institutional │
|
||||
│ adoption increasing..." │
|
||||
│ │
|
||||
│ 🐦 Social Sentiment: "Bullish sentiment on Reddit, │
|
||||
│ Twitter mentions up 15%..." │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
🤖 PREDICTOR AGENT
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ │
|
||||
│ Input: │
|
||||
│ ├── 📊 Market Data (aggregated + confidence) │
|
||||
│ ├── 📰🐦 Combined Sentiment │
|
||||
│ ├── 🎯 Style: "aggressive" │
|
||||
│ └── 🤖 Provider: "openai/anthropic/google..." │
|
||||
│ │
|
||||
│ 🧠 LLM Processing: │
|
||||
│ "Based on high confidence market data (0.94) showing │
|
||||
│ $63,516 BTC with positive sentiment across news and │
|
||||
│ social channels, aggressive strategy recommendation..." │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
📋 FINAL OUTPUT
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ 📊 Market Data Summary │
|
||||
│ 📰🐦 Sentiment Analysis │
|
||||
│ 📈 Final Recommendation: │
|
||||
│ "Strong BUY signal with 85% confidence..." │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 🏛️ Architettura dei Provider (Market Agent)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 📊 MARKET AGENT │
|
||||
│ │
|
||||
│ 🔍 Provider Detection Logic: │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐│
|
||||
│ │ def _setup_providers(): ││
|
||||
│ │ ├── 🔑 Check CDP_API_KEY_NAME + CDP_API_PRIVATE_KEY ││
|
||||
│ │ │ └── ✅ Setup Coinbase Advanced Trade ││
|
||||
│ │ ├── 🔑 Check CRYPTOCOMPARE_API_KEY ││
|
||||
│ │ │ └── ✅ Setup CryptoCompare ││
|
||||
│ │ └── 🔑 Check BINANCE_API_KEY (future) ││
|
||||
│ │ └── ✅ Setup Binance API ││
|
||||
│ └─────────────────────────────────────────────────────────────┘│
|
||||
│ │
|
||||
│ 📡 Data Flow: │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ Provider 1 │───▶│ │◀───│ Provider 2 │ │
|
||||
│ │ Coinbase │ │ AGGREGATOR │ │ CryptoComp │ │
|
||||
│ │ │ │ │ │ │ │
|
||||
│ │ Real-time │ │ ┌─────────┐ │ │ Real-time │ │
|
||||
│ │ Market Data │ │ │Confidence│ │ │ Market Data │ │
|
||||
│ └─────────────┘ │ │Scoring │ │ └─────────────┘ │
|
||||
│ │ │ │ │ │
|
||||
│ ┌─────────────┐ │ │ Spread │ │ ┌─────────────┐ │
|
||||
│ │ Provider 3 │───▶│ │Analysis │ │◀───│ Provider N │ │
|
||||
│ │ Binance │ │ │ │ │ │ Future │ │
|
||||
│ │ │ │ └─────────┘ │ │ │ │
|
||||
│ │ Mock Data │ │ │ │ │ │
|
||||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 🔧 Signers Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 🔐 SIGNERS ECOSYSTEM │
|
||||
│ │
|
||||
│ 📁 src/app/signers/market_signers/ │
|
||||
│ │ │
|
||||
│ ├── 🏦 coinbase_rest_signer.py │
|
||||
│ │ ├── 🔑 Uses: CDP_API_KEY_NAME + CDP_API_PRIVATE_KEY │
|
||||
│ │ ├── 📡 RESTClient from coinbase.rest │
|
||||
│ │ ├── 📊 get_asset_info() → Real Coinbase data │
|
||||
│ │ └── 📈 get_multiple_assets() → Bulk data │
|
||||
│ │ │
|
||||
│ ├── 📊 cryptocompare_signer.py │
|
||||
│ │ ├── 🔑 Uses: CRYPTOCOMPARE_API_KEY │
|
||||
│ │ ├── 📡 Direct HTTP requests │
|
||||
│ │ ├── 💰 get_crypto_prices() → Multi-currency │
|
||||
│ │ └── 🏆 get_top_cryptocurrencies() → Market cap │
|
||||
│ │ │
|
||||
│ └── 🟡 binance_signer.py │
|
||||
│ ├── 🔑 Uses: BINANCE_API_KEY (future) │
|
||||
│ ├── 📡 Mock implementation │
|
||||
│ ├── 🎭 Simulated market data │
|
||||
│ └── 📈 Compatible interface │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 🚀 Future Enhancement: Async Flow
|
||||
|
||||
```
|
||||
📱 USER REQUEST
|
||||
│
|
||||
▼
|
||||
🔧 TOOL AGENT (async)
|
||||
│
|
||||
┌────────────────┼────────────────┐
|
||||
│ │ │
|
||||
▼ ▼ ▼
|
||||
📊 Market 📰 News 🐦 Social
|
||||
Agent (async) Agent (async) Agent (async)
|
||||
│ │ │
|
||||
┌────┼────┐ │ │
|
||||
▼ ▼ ▼ │ │
|
||||
Coinbase │ Binance │ │
|
||||
CC │ │ │
|
||||
▼▼▼ ▼ ▼
|
||||
🔄 Parallel 📰 Sentiment 🐦 Sentiment
|
||||
Aggregation Analysis Analysis
|
||||
│ │ │
|
||||
└────────────────┼────────────────┘
|
||||
▼
|
||||
🤖 PREDICTOR AGENT
|
||||
(LLM Analysis)
|
||||
│
|
||||
▼
|
||||
📋 FINAL RESULT
|
||||
(JSON + Confidence)
|
||||
```
|
||||
|
||||
## 📊 Data Flow Example
|
||||
|
||||
```
|
||||
Input: "Analyze Bitcoin aggressive strategy"
|
||||
│
|
||||
├── 📊 Market Agent Output:
|
||||
│ {
|
||||
│ "aggregated_data": {
|
||||
│ "BTC_USD": {"price": 63516.67, "confidence": 0.94}
|
||||
│ },
|
||||
│ "individual_sources": {
|
||||
│ "coinbase": {"price": 63500, "volume": "1.2M"},
|
||||
│ "cryptocompare": {"price": 63450, "volume": "N/A"},
|
||||
│ "binance": {"price": 63600, "volume": "2.1M"}
|
||||
│ },
|
||||
│ "market_signals": {
|
||||
│ "spread_analysis": "Low spread (0.24%) - healthy liquidity",
|
||||
│ "price_divergence": "Max deviation: 0.24% - Normal range"
|
||||
│ }
|
||||
│ }
|
||||
│
|
||||
├── 📰 News Sentiment: "Positive institutional adoption news..."
|
||||
├── 🐦 Social Sentiment: "Bullish Reddit sentiment, +15% mentions"
|
||||
│
|
||||
└── 🤖 Predictor Output:
|
||||
"📈 Strong BUY recommendation based on:
|
||||
- High confidence market data (94%)
|
||||
- Positive news sentiment
|
||||
- Bullish social indicators
|
||||
- Low spread indicates healthy liquidity
|
||||
|
||||
Aggressive Strategy: Consider 15-20% portfolio allocation"
|
||||
```
|
||||
|
||||
---
|
||||
*Diagrammi creati: 2025-09-23*
|
||||
*Sistema: upo-appAI Market Analysis Platform*
|
||||
203
docs/Async_Implementation_Detail.md
Normal file
203
docs/Async_Implementation_Detail.md
Normal file
@@ -0,0 +1,203 @@
|
||||
# 🚀 Diagramma Dettaglio: Implementazione Asincrona
|
||||
|
||||
## ⚡ Async Market Data Collection (Fase 3)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 🔧 TOOL AGENT │
|
||||
│ │
|
||||
│ async def interact(query, provider, style): │
|
||||
│ │ │
|
||||
│ ├── 📊 market_data = await market_agent.analyze_async() │
|
||||
│ ├── 📰 news_data = await news_agent.analyze_async() │
|
||||
│ ├── 🐦 social_data = await social_agent.analyze_async() │
|
||||
│ │ │
|
||||
│ └── 🤖 prediction = await predictor.predict_async(...) │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 📊 MARKET AGENT - ASYNC IMPLEMENTATION │
|
||||
│ │
|
||||
│ async def analyze_async(self, query): │
|
||||
│ symbols = extract_symbols(query) # ["BTC", "ETH"] │
|
||||
│ │ │
|
||||
│ └── 🔄 tasks = [ │
|
||||
│ │ self._query_coinbase_async(symbols), │
|
||||
│ │ self._query_cryptocompare_async(symbols), │
|
||||
│ │ self._query_binance_async(symbols) │
|
||||
│ │ ] │
|
||||
│ │ │
|
||||
│ └── 📊 results = await asyncio.gather(*tasks) │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ 🧮 aggregate_results(results) │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ ⏱️ TIMING DIAGRAM │
|
||||
│ │
|
||||
│ Time: 0ms 500ms 1000ms 1500ms 2000ms │
|
||||
│ │ │ │ │ │ │
|
||||
│ 📡 Start all requests │
|
||||
│ ├─────────────────────────────────────────┐ │
|
||||
│ │ 🏦 Coinbase Request │ │
|
||||
│ │ ✅ Response │ (1.2s) │
|
||||
│ ├─────────────────────────────┐ │ │
|
||||
│ │ 📊 CryptoCompare Request │ │ │
|
||||
│ │ ✅ Response (0.8s) │ │
|
||||
│ ├─────────────┐ │ │ │
|
||||
│ │ 🟡 Binance │ │ │ │
|
||||
│ │ ✅ Response (0.3s - mock) │ │ │
|
||||
│ │ │ │ │ │
|
||||
│ └─────────────┼───────────────┼───────────┘ │
|
||||
│ │ │ │
|
||||
│ Wait for all... │ │
|
||||
│ │ │
|
||||
│ 🧮 Aggregate (1.2s total) │
|
||||
│ │
|
||||
│ 📈 Performance Gain: │
|
||||
│ Sequential: 1.2s + 0.8s + 0.3s = 2.3s │
|
||||
│ Parallel: max(1.2s, 0.8s, 0.3s) = 1.2s │
|
||||
│ Improvement: ~48% faster! 🚀 │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 🧮 Aggregation Algorithm Detail
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 🔬 DATA AGGREGATION LOGIC │
|
||||
│ │
|
||||
│ def aggregate_market_data(results): │
|
||||
│ │ │
|
||||
│ ├── 📊 Input Data: │
|
||||
│ │ ┌─────────────────────────────────────────────────┐ │
|
||||
│ │ │ coinbase: {"BTC": 63500, "ETH": 4150} │ │
|
||||
│ │ │ cryptocomp: {"BTC": 63450, "ETH": 4160} │ │
|
||||
│ │ │ binance: {"BTC": 63600, "ETH": 4140} │ │
|
||||
│ │ └─────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ├── 🧮 Price Calculation: │
|
||||
│ │ ┌─────────────────────────────────────────────────┐ │
|
||||
│ │ │ BTC_prices = [63500, 63450, 63600] │ │
|
||||
│ │ │ BTC_avg = 63516.67 │ │
|
||||
│ │ │ BTC_std = 75.83 │ │
|
||||
│ │ │ BTC_spread = (max-min)/avg = 0.24% │ │
|
||||
│ │ └─────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ├── 🎯 Confidence Scoring: │
|
||||
│ │ ┌─────────────────────────────────────────────────┐ │
|
||||
│ │ │ confidence = 1 - (std_dev / mean) │ │
|
||||
│ │ │ if spread < 0.5%: confidence += 0.1 │ │
|
||||
│ │ │ if sources >= 3: confidence += 0.05 │ │
|
||||
│ │ │ BTC_confidence = 0.94 (excellent!) │ │
|
||||
│ │ └─────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ └── 📈 Market Signals: │
|
||||
│ ┌─────────────────────────────────────────────────┐ │
|
||||
│ │ spread_analysis: │ │
|
||||
│ │ "Low spread (0.24%) indicates healthy liq." │ │
|
||||
│ │ volume_trend: │ │
|
||||
│ │ "Combined volume: 4.1M USD" │ │
|
||||
│ │ price_divergence: │ │
|
||||
│ │ "Max deviation: 0.24% - Normal range" │ │
|
||||
│ └─────────────────────────────────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 🔄 Error Handling & Resilience
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ 🛡️ RESILIENCE STRATEGY │
|
||||
│ │
|
||||
│ Scenario 1: One Provider Fails │
|
||||
│ ┌─────────────────────────────────────────────────────────┐ │
|
||||
│ │ 🏦 Coinbase: ✅ Success (BTC: $63500) │ │
|
||||
│ │ 📊 CryptoComp: ❌ Timeout/Error │ │
|
||||
│ │ 🟡 Binance: ✅ Success (BTC: $63600) │ │
|
||||
│ │ │ │
|
||||
│ │ Result: Continue with 2 sources │ │
|
||||
│ │ Confidence: 0.89 (slightly reduced) │ │
|
||||
│ │ Note: "CryptoCompare unavailable" │ │
|
||||
│ └─────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ Scenario 2: Multiple Providers Fail │
|
||||
│ ┌─────────────────────────────────────────────────────────┐ │
|
||||
│ │ 🏦 Coinbase: ❌ API Limit │ │
|
||||
│ │ 📊 CryptoComp: ✅ Success (BTC: $63450) │ │
|
||||
│ │ 🟡 Binance: ❌ Network Error │ │
|
||||
│ │ │ │
|
||||
│ │ Result: Single source data │ │
|
||||
│ │ Confidence: 0.60 (low - warn user) │ │
|
||||
│ │ Note: "Limited data - consider waiting" │ │
|
||||
│ └─────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ Scenario 3: All Providers Fail │
|
||||
│ ┌─────────────────────────────────────────────────────────┐ │
|
||||
│ │ 🏦 Coinbase: ❌ Maintenance │ │
|
||||
│ │ 📊 CryptoComp: ❌ API Down │ │
|
||||
│ │ 🟡 Binance: ❌ Rate Limit │ │
|
||||
│ │ │ │
|
||||
│ │ Result: Graceful degradation │ │
|
||||
│ │ Message: "Market data temporarily unavailable" │ │
|
||||
│ │ Fallback: Cached data (if available) │ │
|
||||
│ └─────────────────────────────────────────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 📊 JSON Output Schema
|
||||
|
||||
```json
|
||||
{
|
||||
"aggregated_data": {
|
||||
"BTC_USD": {
|
||||
"price": 63516.67,
|
||||
"confidence": 0.94,
|
||||
"sources_count": 3,
|
||||
"last_updated": "2025-09-23T17:30:00Z"
|
||||
},
|
||||
"ETH_USD": {
|
||||
"price": 4150.33,
|
||||
"confidence": 0.91,
|
||||
"sources_count": 3,
|
||||
"last_updated": "2025-09-23T17:30:00Z"
|
||||
}
|
||||
},
|
||||
"individual_sources": {
|
||||
"coinbase": {
|
||||
"BTC": {"price": 63500, "volume": "1.2M", "status": "online"},
|
||||
"ETH": {"price": 4150, "volume": "25.6M", "status": "online"}
|
||||
},
|
||||
"cryptocompare": {
|
||||
"BTC": {"price": 63450, "volume": "N/A", "status": "active"},
|
||||
"ETH": {"price": 4160, "volume": "N/A", "status": "active"}
|
||||
},
|
||||
"binance": {
|
||||
"BTC": {"price": 63600, "volume": "2.1M", "status": "mock"},
|
||||
"ETH": {"price": 4140, "volume": "18.3M", "status": "mock"}
|
||||
}
|
||||
},
|
||||
"market_signals": {
|
||||
"spread_analysis": "Low spread (0.24%) indicates healthy liquidity",
|
||||
"volume_trend": "Combined BTC volume: 3.3M USD (+12% from avg)",
|
||||
"price_divergence": "Max deviation: 0.24% - Normal range",
|
||||
"data_quality": "High - 3 sources, low variance",
|
||||
"recommendation": "Data suitable for trading decisions"
|
||||
},
|
||||
"metadata": {
|
||||
"query_time_ms": 1247,
|
||||
"sources_queried": ["coinbase", "cryptocompare", "binance"],
|
||||
"sources_successful": ["coinbase", "cryptocompare", "binance"],
|
||||
"sources_failed": [],
|
||||
"aggregation_method": "weighted_average",
|
||||
"confidence_threshold": 0.75
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
*Diagramma dettaglio asincrono: 2025-09-23*
|
||||
*Focus: Performance, Resilienza, Qualità Dati*
|
||||
Reference in New Issue
Block a user