diff --git a/src/app.py b/src/app.py index 39ac09c..eb147f0 100644 --- a/src/app.py +++ b/src/app.py @@ -21,7 +21,7 @@ if __name__ == "__main__": response = chat.send_message(message) history.append({"role": "user", "content": message}) history.append({"role": "assistant", "content": response}) - return history, history + return history, history, "" def save_current_chat(): chat.save_chat("chat.json") @@ -69,7 +69,7 @@ if __name__ == "__main__": load_btn = gr.Button("📂 Carica Chat") # Invio messaggio - msg.submit(respond, inputs=[msg, chatbot], outputs=[chatbot, chatbot]) + msg.submit(respond, inputs=[msg, chatbot], outputs=[chatbot, chatbot, msg]) # Reset clear_btn.click(reset_chat, inputs=None, outputs=[chatbot, chatbot]) # Salvataggio @@ -78,5 +78,5 @@ if __name__ == "__main__": load_btn.click(load_previous_chat, inputs=None, outputs=[chatbot, chatbot]) server, port = ("127.0.0.1", 8000) - log_info(f"Starting UPO AppAI Chat on http://{server}:{port}") + log_info(f"Starting UPO AppAI Chat on http://{server}:{port}") # noqa demo.launch(server_name=server, server_port=port, quiet=True) diff --git a/src/app/agents/market_agent.py b/src/app/agents/market_agent.py index 060a0c4..d442751 100644 --- a/src/app/agents/market_agent.py +++ b/src/app/agents/market_agent.py @@ -4,8 +4,8 @@ from agno.models.message import Message from agno.run.agent import RunOutput, RunOutputEvent from pydantic import BaseModel -from src.app.toolkits.market_toolkit import MarketToolkit -from src.app.markets.base import ProductInfo # modello dati già definito nel tuo progetto +from app.toolkits.market_toolkit import MarketToolkit +from app.markets.base import ProductInfo # modello dati già definito nel tuo progetto class MarketAgent(Agent): diff --git a/src/app/chat_manager.py b/src/app/chat_manager.py index 26ac268..d7525aa 100644 --- a/src/app/chat_manager.py +++ b/src/app/chat_manager.py @@ -1,7 +1,7 @@ import os import json from typing import List, Dict -from src.app.pipeline import Pipeline +from pipeline import Pipeline SAVE_DIR = os.path.join(os.path.dirname(__file__), "..", "saves") os.makedirs(SAVE_DIR, exist_ok=True) diff --git a/src/app/markets/binance.py b/src/app/markets/binance.py index 8bc1101..bcd1ff8 100644 --- a/src/app/markets/binance.py +++ b/src/app/markets/binance.py @@ -2,8 +2,8 @@ import os from typing import Optional from datetime import datetime, timedelta from binance.client import Client -from .base import ProductInfo, BaseWrapper, Price -from .error_handler import retry_on_failure, handle_api_errors, MarketAPIError +from base import ProductInfo, BaseWrapper, Price +from error_handler import retry_on_failure, handle_api_errors, MarketAPIError class BinanceWrapper(BaseWrapper): diff --git a/src/app/markets/binance_public.py b/src/app/markets/binance_public.py index 598840b..b059808 100644 --- a/src/app/markets/binance_public.py +++ b/src/app/markets/binance_public.py @@ -8,8 +8,8 @@ con l'architettura del modulo markets. from typing import Optional, Dict, Any from datetime import datetime, timedelta from binance.client import Client -from .base import BaseWrapper, ProductInfo, Price -from .error_handler import retry_on_failure, handle_api_errors, MarketAPIError +from base import BaseWrapper, ProductInfo, Price +from error_handler import retry_on_failure, handle_api_errors, MarketAPIError class PublicBinanceAgent(BaseWrapper): diff --git a/src/app/markets/coinbase.py b/src/app/markets/coinbase.py index 7d2b2d2..0bba6e1 100644 --- a/src/app/markets/coinbase.py +++ b/src/app/markets/coinbase.py @@ -2,8 +2,8 @@ import os from typing import Optional from datetime import datetime, timedelta from coinbase.rest import RESTClient -from .base import ProductInfo, BaseWrapper, Price -from .error_handler import retry_on_failure, handle_api_errors, MarketAPIError, RateLimitError +from base import ProductInfo, BaseWrapper, Price +from error_handler import retry_on_failure, handle_api_errors, MarketAPIError, RateLimitError class CoinBaseWrapper(BaseWrapper): """ diff --git a/src/app/markets/cryptocompare.py b/src/app/markets/cryptocompare.py index 5b84843..51e4bc0 100644 --- a/src/app/markets/cryptocompare.py +++ b/src/app/markets/cryptocompare.py @@ -1,8 +1,8 @@ import os import requests from typing import Optional, Dict, Any -from .base import ProductInfo, BaseWrapper, Price -from .error_handler import retry_on_failure, handle_api_errors, MarketAPIError +from base import ProductInfo, BaseWrapper, Price +from error_handler import retry_on_failure, handle_api_errors, MarketAPIError BASE_URL = "https://min-api.cryptocompare.com" diff --git a/src/app/pipeline.py b/src/app/pipeline.py index 279473c..15011a2 100644 --- a/src/app/pipeline.py +++ b/src/app/pipeline.py @@ -1,11 +1,11 @@ from agno.run.agent import RunOutput from agno.team import Team -from src.app.agents.market_agent import MarketAgent -from src.app.agents.news_agent import NewsAgent -from src.app.agents.social_agent import SocialAgent -from src.app.models import AppModels -from src.app.predictor import PredictorInput, PredictorOutput, PredictorStyle, PREDICTOR_INSTRUCTIONS +from agents.market_agent import MarketAgent +from agents.news_agent import NewsAgent +from agents.social_agent import SocialAgent +from models import AppModels +from predictor import PredictorInput, PredictorOutput, PredictorStyle, PREDICTOR_INSTRUCTIONS class Pipeline: diff --git a/src/app/predictor.py b/src/app/predictor.py index 101b4ac..ae6eec6 100644 --- a/src/app/predictor.py +++ b/src/app/predictor.py @@ -2,7 +2,7 @@ from enum import Enum from pydantic import BaseModel, Field -from src.app.markets.base import ProductInfo +from markets.base import ProductInfo class PredictorStyle(Enum): diff --git a/src/app/toolkits/market_toolkit.py b/src/app/toolkits/market_toolkit.py index 06bcaf0..e326e14 100644 --- a/src/app/toolkits/market_toolkit.py +++ b/src/app/toolkits/market_toolkit.py @@ -1,6 +1,6 @@ from agno.tools import Toolkit -from src.app.markets import MarketAPIs +from app.markets import MarketAPIs # TODO (?) in futuro fare in modo che la LLM faccia da sé per il mercato diff --git a/tests/agents/test_market.py b/tests/agents/test_market.py index 9fd5732..7ea0c9b 100644 --- a/tests/agents/test_market.py +++ b/tests/agents/test_market.py @@ -6,17 +6,17 @@ e verifica la conformità all'interfaccia definita in base.py. """ import os -import pytest -from unittest.mock import Mock, patch, MagicMock -from typing import Type, List +from unittest.mock import Mock, patch +import pytest + +from app.markets import MarketAPIs # Import delle classi da testare from app.markets.base import BaseWrapper, ProductInfo, Price -from app.markets.coinbase import CoinBaseWrapper -from app.markets.cryptocompare import CryptoCompareWrapper from app.markets.binance import BinanceWrapper from app.markets.binance_public import PublicBinanceAgent -from app.markets import MarketAPIs +from app.markets.coinbase import CoinBaseWrapper +from app.markets.cryptocompare import CryptoCompareWrapper class TestBaseWrapperInterface: