Enhance documentation
This commit is contained in:
@@ -2,6 +2,10 @@ from coinbase.rest.types.product_types import Candle, GetProductResponse
|
||||
|
||||
|
||||
class BaseWrapper:
|
||||
"""
|
||||
Interfaccia per i wrapper delle API di mercato.
|
||||
Implementa i metodi di base che ogni wrapper deve avere.
|
||||
"""
|
||||
def get_product(self, asset_id: str) -> 'ProductInfo':
|
||||
raise NotImplementedError
|
||||
def get_products(self, asset_ids: list[str]) -> list['ProductInfo']:
|
||||
@@ -12,6 +16,10 @@ class BaseWrapper:
|
||||
raise NotImplementedError
|
||||
|
||||
class ProductInfo:
|
||||
"""
|
||||
Informazioni sul prodotto, come ottenute dalle API di mercato.
|
||||
Implementa i metodi di conversione dai dati grezzi delle API.
|
||||
"""
|
||||
id: str
|
||||
symbol: str
|
||||
price: float
|
||||
@@ -39,6 +47,10 @@ class ProductInfo:
|
||||
return product
|
||||
|
||||
class Price:
|
||||
"""
|
||||
Rappresenta i dati di prezzo per un asset, come ottenuti dalle API di mercato.
|
||||
Implementa i metodi di conversione dai dati grezzi delle API.
|
||||
"""
|
||||
high: float
|
||||
low: float
|
||||
open: float
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
# Versione pubblica senza autenticazione
|
||||
from binance.client import Client
|
||||
|
||||
# TODO fare l'aggancio con API in modo da poterlo usare come wrapper di mercato
|
||||
# TODO implementare i metodi di BaseWrapper
|
||||
|
||||
class PublicBinanceAgent:
|
||||
def __init__(self):
|
||||
# Client pubblico (senza credenziali)
|
||||
|
||||
@@ -2,6 +2,10 @@ from coinbase.rest import RESTClient
|
||||
from app.markets.base import ProductInfo, BaseWrapper, Price
|
||||
|
||||
class CoinBaseWrapper(BaseWrapper):
|
||||
"""
|
||||
Wrapper per le API di Coinbase.
|
||||
La documentazione delle API è disponibile qui: https://docs.cdp.coinbase.com/api-reference/advanced-trade-api/rest-api/introduction
|
||||
"""
|
||||
def __init__(self, api_key:str, api_private_key:str, currency: str = "USD"):
|
||||
assert api_key is not None, "API key is required"
|
||||
assert api_private_key is not None, "API private key is required"
|
||||
|
||||
@@ -4,6 +4,11 @@ from app.markets.base import ProductInfo, BaseWrapper, Price
|
||||
BASE_URL = "https://min-api.cryptocompare.com"
|
||||
|
||||
class CryptoCompareWrapper(BaseWrapper):
|
||||
"""
|
||||
Wrapper per le API pubbliche di CryptoCompare.
|
||||
La documentazione delle API è disponibile qui: https://developers.coindesk.com/documentation/legacy/Price/SingleSymbolPriceEndpoint
|
||||
!!ATTENZIONE!! sembra essere una API legacy e potrebbe essere deprecata in futuro.
|
||||
"""
|
||||
def __init__(self, api_key:str, currency:str='USD'):
|
||||
assert api_key is not None, "API key is required"
|
||||
|
||||
|
||||
@@ -7,7 +7,16 @@ from app.models import Models
|
||||
|
||||
|
||||
class ToolAgent:
|
||||
"""
|
||||
Classe principale che coordina gli agenti per rispondere alle richieste dell'utente.
|
||||
available_models: lista dei modelli disponibili (Models.availables()).
|
||||
all_styles: lista degli stili di previsione disponibili (PredictorStyle).
|
||||
"""
|
||||
|
||||
def __init__(self, available_models: list[Models], all_styles: list[PredictorStyle]):
|
||||
"""
|
||||
Inizializza l'agente con i modelli e gli stili disponibili.
|
||||
"""
|
||||
self.available_models = available_models
|
||||
self.all_styles = all_styles
|
||||
|
||||
@@ -15,6 +24,10 @@ class ToolAgent:
|
||||
self.choose_provider(0) # Default to the first model
|
||||
|
||||
def choose_provider(self, index: int):
|
||||
"""
|
||||
Sceglie il modello LLM da utilizzare in base all'indice fornito.
|
||||
index: indice del modello nella lista available_models.
|
||||
"""
|
||||
# TODO Utilizzare AGNO per gestire i modelli... è molto più semplice e permette di cambiare modello facilmente
|
||||
# TODO https://docs.agno.com/introduction
|
||||
# Inoltre permette di creare dei team e workflow di agenti più facilmente
|
||||
@@ -26,6 +39,8 @@ class ToolAgent:
|
||||
def interact(self, query: str, style_index: int):
|
||||
"""
|
||||
Funzione principale che coordina gli agenti per rispondere alla richiesta dell'utente.
|
||||
query: richiesta dell'utente (es. "Qual è la previsione per Bitcoin?")
|
||||
style_index: indice dello stile di previsione nella lista all_styles.
|
||||
"""
|
||||
|
||||
# Step 1: raccolta analisi
|
||||
|
||||
Reference in New Issue
Block a user