TradingAgents/backend/analysis/interface/dto.py

52 lines
1.4 KiB
Python

from pydantic import BaseModel
from datetime import date
from typing import List
from analysis.infra.db_models.analysis import AnalysisStatus
from enum import Enum
class AnalystType(str, Enum):
MARKET = "market"
SOCIAL = "social"
NEWS = "news"
FUNDAMENTALS = "fundamentals"
class TradingAnalysisRequest(BaseModel):
ticker: str
analysis_date: str
analysts: List[AnalystType]
research_depth: int = 3
llm_provider: str = "openai"
backend_url: str = "https://api.openai.com/v1"
shallow_thinker: str = "gpt-4o-mini"
deep_thinker: str = "gpt-4o"
class AnalysisSessionResponse(BaseModel):
id : str
ticker : str
status : AnalysisStatus
class AnalysisProgressUpdate(BaseModel):
analysis_id: str
current_agent: str
status: str
progress_percentage: float
current_report_section: str | None = None
message: str | None = None
class AnalysisResultResponse(BaseModel):
id: str
ticker: str
analysis_date: str
status: AnalysisStatus
market_report: str | None = None
sentiment_report: str | None = None
news_report: str | None = None
fundamentals_report: str | None = None
investment_debate_state: dict | None = None
trader_investment_plan: str | None = None
risk_debate_state: dict | None = None
final_trade_decision: str | None = None
final_report: str | None = None
created_at: str
completed_at: str | None = None
error_message: str | None = None