Fade0510's picture
Cleaned up code before reimplementing semantic cache
6710fbe
Raw
History Blame Contribute Delete
1.5 kB
import logging
from src.core.AgentCommand import AgentCommand
from src.core.FinanceState import FinanceState
from src.core.errors import add_error
from src.rag.CcxtRag import CcxtRag
logger = logging.getLogger(__name__)
class CryptoAgent(AgentCommand):
def __init__(self, state: FinanceState):
self.state = state
self.rag = CcxtRag()
def process(self):
trace_id = str(self.state.get("trace_id") or "")
logger.info("[trace=%s] CryptoAgent.start", trace_id)
symbol = self.state.get("crypto_symbol")
if symbol:
crypto_details = self.rag.get_crypto_details(symbol)
logger.info("[trace=%s] CryptoAgent.details=%s", trace_id, crypto_details)
if crypto_details.get("error"):
add_error(
self.state,
code="crypto_data_error",
message=str(crypto_details.get("error")),
agent="crypto_agent",
detail={"symbol": symbol},
)
self.state["response"] = (
f"Error retrieving crypto details for {symbol}: {crypto_details['error']}"
)
else:
self.state["response"] = (
f"Price Details for {symbol}:\n"
f"Last Price: {crypto_details.get('last', 'N/A')}\n"
f"24h Volume: {crypto_details.get('baseVolume', 'N/A')}"
)
return self.state