Refactor and update structure #20

Merged
Berack96 merged 22 commits from 16-refactoring-e-sanity-check into main 2025-10-08 16:21:10 +02:00
5 changed files with 67 additions and 70 deletions
Showing only changes of commit 42412406a7 - Show all commits

View File

@@ -14,7 +14,7 @@ try:
instructions="Use tables to display data.",
markdown=True,
)
result = reasoning_agent.run("Scrivi una poesia su un gatto. Sii breve.")
result = reasoning_agent.run("Scrivi una poesia su un gatto. Sii breve.") # type: ignore
print(result.content)
except Exception as e:
print(f"Si è verificato un errore: {e}")

View File

@@ -32,7 +32,7 @@ from app.markets import (
CryptoCompareWrapper,
BinanceWrapper,
YFinanceWrapper,
BaseWrapper
MarketWrapper
)
# Carica variabili d'ambiente
@@ -133,9 +133,9 @@ class ProviderTester:
self.formatter = DemoFormatter()
self.test_symbols = ["BTC", "ETH", "ADA"]
def test_provider(self, wrapper: BaseWrapper, provider_name: str) -> Dict[str, Any]:
def test_provider(self, wrapper: MarketWrapper, provider_name: str) -> Dict[str, Any]:
"""Testa un provider specifico con tutti i metodi disponibili."""
results = {
results: Dict[str, Any] = {
"provider_name": provider_name,
"tests": {},
"overall_status": "SUCCESS"
@@ -153,7 +153,7 @@ class ProviderTester:
)
if product:
print(f"📦 Product: {product.symbol} (ID: {product.id})")
print(f" Price: ${product.price:.2f}, Quote: {product.quote_currency}")
print(f" Price: ${product.price:.2f}, Quote: {product.currency}")
print(f" Volume 24h: {product.volume_24h:,.2f}")
else:
print(f"📦 Product: Nessun prodotto trovato per {symbol}")
@@ -217,9 +217,9 @@ def check_environment_variables() -> Dict[str, bool]:
}
return env_vars
def initialize_providers() -> Dict[str, BaseWrapper]:
def initialize_providers() -> Dict[str, MarketWrapper]:
"""Inizializza tutti i provider disponibili."""
providers = {}
providers: Dict[str, MarketWrapper] = {}
env_vars = check_environment_variables()
# CryptoCompareWrapper
@@ -316,7 +316,7 @@ def main():
formatter.print_header("🧪 ESECUZIONE TEST PROVIDER", "=", 80)
tester = ProviderTester()
all_results = []
all_results: List[Dict[str, Any]] = []
for provider_name, wrapper in providers.items():
try:

View File

@@ -9,6 +9,8 @@ from app.news import NewsApiWrapper
def main():
api = NewsApiWrapper()
articles = api.get_latest_news(query="bitcoin", limit=5)
assert len(articles) > 0
print("ok")
if __name__ == "__main__":

View File

@@ -1,5 +1,5 @@
import os
import requests
import ollama
from enum import Enum
from agno.agent import Agent
from agno.models.base import Model
@@ -30,19 +30,15 @@ class AppModels(Enum):
Controlla quali provider di modelli LLM locali sono disponibili.
Ritorna una lista di provider disponibili.
"""
ollama_host = os.getenv("OLLAMA_HOST", "http://localhost:11434")
result = requests.get(f"{ollama_host}/api/tags")
if result.status_code != 200:
log_warning(f"Ollama is not running or not reachable {result}")
try:
models_list = ollama.list()
availables = [model['model'] for model in models_list['models']]
app_models = [model for model in AppModels if model.name.startswith("OLLAMA")]
return [model for model in app_models if model.value in availables]
except Exception as e:
log_warning(f"Ollama is not running or not reachable: {e}")
return []
availables: list[AppModels] = []
result = result.text
for model in [model for model in AppModels if model.name.startswith("OLLAMA")]:
if model.value in result:
availables.append(model)
return availables
@staticmethod
def availables_online() -> list['AppModels']:
"""

View File

@@ -29,7 +29,6 @@ def create_team_with(models: AppModels, coordinator: AppModels | None = None) ->
members=[market_agent, news_agent, social_agent],
)
# TODO: migliorare le istruzioni del team
COORDINATOR_INSTRUCTIONS = """
You are the expert coordinator of a financial analysis team specializing in cryptocurrencies.