Spaces:
Sleeping
Sleeping
| # v1770344785.591725 | |
| """ | |
| Data models for Deep Research AI. | |
| """ | |
| from dataclasses import dataclass, field | |
| from datetime import datetime | |
| from typing import List, Optional, Dict, Any | |
| from enum import Enum | |
| import uuid | |
| class QueryComplexity(Enum): | |
| """Query complexity levels.""" | |
| SIMPLE = "simple" | |
| MEDIUM = "medium" | |
| COMPLEX = "complex" | |
| class OutputFormat(Enum): | |
| """Output format options.""" | |
| TEXT = "text" | |
| MARKDOWN = "markdown" | |
| HTML = "html" | |
| JSON = "json" | |
| class CitationStyle(Enum): | |
| """Citation style options.""" | |
| APA = "APA" | |
| MLA = "MLA" | |
| CHICAGO = "CHICAGO" | |
| IEEE = "IEEE" | |
| HARVARD = "HARVARD" | |
| class SubQuery: | |
| """A sub-query derived from the main query.""" | |
| query: str | |
| purpose: str | |
| priority: int = 1 | |
| class SearchResult: | |
| """Search result from web search.""" | |
| title: str | |
| url: str | |
| snippet: str | |
| domain: str | |
| relevance_score: float = 0.5 | |
| class ContentExtraction: | |
| """Extracted content from a source.""" | |
| main_content: str = "" | |
| title: str = "" | |
| author: str = "" | |
| date: str = "" | |
| summary: str = "" | |
| class ReasoningStep: | |
| """A step in the reasoning chain.""" | |
| step_number: int | |
| thought: str | |
| evidence: str = "" | |
| conclusion: str = "" | |
| class ResearchStatus(Enum): | |
| """Research operation status.""" | |
| PENDING = "pending" | |
| PROCESSING = "processing" | |
| COMPLETED = "completed" | |
| FAILED = "failed" | |
| PARTIAL = "partial" | |
| class ConfidenceLevel(Enum): | |
| """Confidence level categories.""" | |
| VERY_HIGH = "very_high" | |
| HIGH = "high" | |
| MEDIUM = "medium" | |
| LOW = "low" | |
| VERY_LOW = "very_low" | |
| class VerificationStatus(Enum): | |
| """Verification status for claims.""" | |
| VERIFIED = "verified" | |
| PARTIALLY_VERIFIED = "partially_verified" | |
| UNVERIFIED = "unverified" | |
| DISPUTED = "disputed" | |
| class Entity: | |
| """Entity extracted from query.""" | |
| name: str = "" | |
| entity_type: str = "" # PERSON, ORG, LOCATION, DATE, CONCEPT, PRODUCT, EVENT | |
| context: Optional[str] = None | |
| relevance: str = "primary" # primary, secondary | |
| # Alias for backwards compatibility | |
| def text(self) -> str: | |
| return self.name | |
| def type(self) -> str: | |
| return self.entity_type | |
| class QueryAnalysis: | |
| """Analyzed query structure.""" | |
| id: str = field(default_factory=lambda: str(uuid.uuid4())) | |
| raw_query: str = "" | |
| intent: str = "" | |
| domain: str = "" | |
| entities: List[Entity] = field(default_factory=list) | |
| temporal_scope: Optional[str] = None | |
| geographic_scope: Optional[str] = None | |
| complexity: QueryComplexity = QueryComplexity.MEDIUM | |
| output_type: str = "report" | |
| sub_queries: List["SubQuery"] = field(default_factory=list) | |
| created_at: datetime = field(default_factory=datetime.now) | |
| class Source: | |
| """Web source information.""" | |
| source_id: str = field(default_factory=lambda: str(uuid.uuid4())) | |
| url: str = "" | |
| title: str = "" | |
| content: str = "" | |
| domain: str = "" | |
| credibility_score: float = 0.5 | |
| snippet: str = "" | |
| author: Optional[str] = None | |
| publication_date: Optional[str] = None | |
| credibility_level: str = "medium" | |
| retrieved_at: datetime = field(default_factory=datetime.now) | |
| metadata: Dict[str, Any] = field(default_factory=dict) | |
| # Alias for backwards compatibility | |
| def id(self) -> str: | |
| return self.source_id | |
| class ExtractedInfo: | |
| """Information extracted from a source.""" | |
| source_id: str = "" | |
| content: str = "" | |
| info_type: str = "" # fact, data, quote, claim, context | |
| relevance: str = "medium" | |
| location: str = "" | |
| class Claim: | |
| """A claim extracted from research.""" | |
| id: str = field(default_factory=lambda: str(uuid.uuid4())) | |
| content: str = "" | |
| source_ids: List[str] = field(default_factory=list) | |
| verification_status: VerificationStatus = VerificationStatus.UNVERIFIED | |
| confidence_score: float = 0.5 | |
| supporting_evidence: List[str] = field(default_factory=list) | |
| contradicting_evidence: List[str] = field(default_factory=list) | |
| class Finding: | |
| """A research finding.""" | |
| id: str = field(default_factory=lambda: str(uuid.uuid4())) | |
| title: str = "" | |
| content: str = "" | |
| category: str = "" | |
| confidence_score: float = 0.5 | |
| confidence_level: ConfidenceLevel = ConfidenceLevel.MEDIUM | |
| source_ids: List[str] = field(default_factory=list) | |
| claims: List[Claim] = field(default_factory=list) | |
| reasoning_chain: List[str] = field(default_factory=list) | |
| caveats: List[str] = field(default_factory=list) | |
| class Conflict: | |
| """Conflicting information from sources.""" | |
| id: str = field(default_factory=lambda: str(uuid.uuid4())) | |
| topic: str = "" | |
| conflict_type: str = "" # factual, interpretive, temporal, scope | |
| positions: List[Dict[str, str]] = field(default_factory=list) | |
| severity: str = "medium" | |
| resolution: Optional[str] = None | |
| class Citation: | |
| """A source citation.""" | |
| source_id: str = "" | |
| style: CitationStyle = CitationStyle.APA | |
| formatted_citation: str = "" | |
| in_text_citation: str = "" | |
| metadata: Dict[str, Any] = field(default_factory=dict) | |
| url: str = "" | |
| title: str = "" | |
| author: Optional[str] = None | |
| date: Optional[str] = None | |
| formatted: str = "" | |
| class VerificationResult: | |
| """Result of verification process.""" | |
| overall_confidence: float = 0.5 | |
| trust_level: str = "medium" | |
| verified_claims: List[Claim] = field(default_factory=list) | |
| conflicts: List[Conflict] = field(default_factory=list) | |
| caveats: List[str] = field(default_factory=list) | |
| flags: List[Dict[str, str]] = field(default_factory=list) | |
| class ResearchResult: | |
| """Complete research result.""" | |
| query: str = "" | |
| answer: str = "" | |
| confidence: float = 0.5 | |
| sources: List[Source] = field(default_factory=list) | |
| reasoning_steps: List[ReasoningStep] = field(default_factory=list) | |
| verification_status: str = "unverified" | |
| metadata: Dict[str, Any] = field(default_factory=dict) | |
| # Legacy fields for backwards compatibility | |
| id: str = field(default_factory=lambda: str(uuid.uuid4())) | |
| status: ResearchStatus = ResearchStatus.PENDING | |
| summary: str = "" | |
| findings: List[Finding] = field(default_factory=list) | |
| citations: List[Citation] = field(default_factory=list) | |
| created_at: datetime = field(default_factory=datetime.now) | |
| class ResearchRequest: | |
| """Incoming research request.""" | |
| query: str | |
| mode: str = "standard" # quick, standard, deep | |
| max_sources: int = 10 | |
| output_format: str = "markdown" | |
| include_sources: bool = True | |
| domain_hint: Optional[str] = None | |