TradingAgents/backend/analysis/domain/analysis.py

38 lines
1.2 KiB
Python

from pydantic import BaseModel, field_validator
from datetime import datetime, date
from typing import List, Dict, Union
from analysis.infra.db_models.analysis import AnalysisStatus
class Analysis(BaseModel):
id: str
member_id: str | None = None
ticker: str | None = None
analysis_date: date | None = None
analysts_selected: list[str] = []
research_depth: int = 3
llm_provider: str = "openai"
backend_url: str = "https://api.openai.com/v1"
shallow_thinker: str = "gpt-4o"
deep_thinker: str = "o3"
status: AnalysisStatus = AnalysisStatus.PENDING
# 개별 분석가 리포트들
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
# 실행 결과 정보
error_message: str | None = None
completed_at: datetime | None = None
created_at: datetime | None = None
updated_at: datetime | None = None