Spaces:
Build error
Build error
| from pydantic import BaseModel, ConfigDict | |
| from uuid import UUID | |
| from typing import Optional, Dict, Any, List | |
| # --- Schemas for Intelligence Briefing --- | |
| class NewsArticle(BaseModel): | |
| title: str | |
| url: str | |
| source: str | |
| sentiment: str | |
| sentiment_score: float | |
| class SentimentSummary(BaseModel): | |
| total_items: int | |
| positive: int | |
| negative: int | |
| neutral: int | |
| error: Optional[str] = None | |
| class IntelligenceBriefing(BaseModel): | |
| articles: List[NewsArticle] | |
| sentiment_summary: SentimentSummary | |
| # --- Schema for our LLM Analysis --- | |
| class LLMReport(BaseModel): | |
| llm_report: str | |
| error: Optional[str] = None | |
| # --- Main Schema for the 'result' field --- | |
| class JobResult(BaseModel): | |
| # Data Agent fields | |
| ticker: Optional[str] = None | |
| company_name: Optional[str] = None | |
| current_price: Optional[float] = None | |
| previous_close: Optional[float] = None | |
| market_cap: Optional[int] = None | |
| pe_ratio: Optional[float] = None | |
| pb_ratio: Optional[float] = None | |
| dividend_yield: Optional[float] = None | |
| sector: Optional[str] = None | |
| industry: Optional[str] = None | |
| summary: Optional[str] = None | |
| website: Optional[str] = None | |
| # Intelligence Agent field | |
| intelligence_briefing: Optional[IntelligenceBriefing] = None | |
| # LLM Analyst field - THIS IS THE FIX | |
| llm_analysis: Optional[LLMReport] = None | |
| # General error field | |
| error: Optional[str] = None | |
| # --- Main Job Schemas for API endpoints --- | |
| class JobCreate(BaseModel): | |
| ticker: str | |
| class Job(BaseModel): | |
| id: UUID | |
| ticker: str | |
| status: str | |
| result: Optional[JobResult] = None | |
| model_config = ConfigDict(from_attributes=True) |