| | from pydantic import BaseModel, Field |
| | from typing import List, Dict, Any, Optional |
| | from datetime import datetime |
| |
|
| |
|
| | class FileInfo(BaseModel): |
| | """Information about the file being processed.""" |
| | name: str = Field(description="File name") |
| | type: str = Field(description="File type/extension") |
| | size_mb: float = Field(description="File size in MB") |
| | path: str = Field(description="Full file path") |
| |
|
| |
|
| | class SimplifiedAgentConfig(BaseModel): |
| | """Simplified configuration for agent creation without complex nesting.""" |
| | instructions: str = Field(description="Single string instructions") |
| | requirement_type: str = Field(default="standard", description="Type of requirements") |
| | custom_notes: List[str] = Field(default_factory=list, description="Simple notes") |
| |
|
| |
|
| | class ProcessingPlan(BaseModel): |
| | """Simplified processing plan for document analysis.""" |
| | |
| | document_type: str = Field(description="Document type (financial, legal, technical, etc.)") |
| | analysis_objective: str = Field(description="Primary analysis objective") |
| | complexity: str = Field(default="moderate", description="Complexity level") |
| | processing_strategy: str = Field(description="Overall processing strategy") |
| | |
| | |
| | agent_configs: Dict[str, str] = Field( |
| | default_factory=dict, |
| | description="Simple agent configuration summaries" |
| | ) |
| | |
| | |
| | data_fields: List[str] = Field(description="List of suggested data fields to extract") |
| | validation_rules: List[str] = Field(default_factory=list, description="Validation rules") |
| | output_formats: List[str] = Field(default_factory=list, description="Required output formats") |
| | |
| | |
| | requirements: List[str] = Field(default_factory=list, description="Processing requirements") |
| | notes: str = Field(default="", description="Additional notes") |
| |
|
| |
|
| | class AgentConfiguration(BaseModel): |
| | """Configuration for a dynamically created agent.""" |
| | instructions: List[str] = Field(description="Specific instructions for this agent") |
| | custom_prompt_template: Optional[str] = Field(default="", description="Custom prompt template for this agent") |
| | special_requirements: List[str] = Field(default_factory=list, description="Special requirements or constraints") |
| |
|
| |
|
| | class DataPoint(BaseModel): |
| | """Individual data point extracted from document.""" |
| | field_name: str = Field(description="Name of the data field") |
| | value: str = Field(description="Value of the field") |
| | data_type: Optional[str] = Field(default="", description="Type of data (text, number, date, etc.)") |
| | category: Optional[str] = Field(default="", description="Category or section this data belongs to") |
| | unit: Optional[str] = Field(default="", description="Unit of measurement if applicable") |
| | period: Optional[str] = Field(default="", description="Time period if applicable") |
| | confidence_score: float = Field(description="Confidence score for the extraction (0-1)") |
| | source_location: Optional[str] = Field(default="", description="Location in document where data was found") |
| |
|
| |
|
| | class ExtractedData(BaseModel): |
| | """Structured data extracted from the document.""" |
| | data_points: List[DataPoint] = Field(description="List of extracted data points") |
| | extraction_notes: str = Field(default="", description="Notes about the extraction process") |
| | confidence_score: float = Field(description="Overall confidence score for the extraction") |
| | extraction_timestamp: datetime = Field(default_factory=datetime.now, description="When extraction was performed") |
| | document_summary: Optional[str] = Field(default="", description="Brief summary of the document content") |
| |
|
| |
|
| | class DataInsight(BaseModel): |
| | """Individual insight from data analysis.""" |
| | insight_type: str = Field(description="Type of insight (trend, comparison, etc.)") |
| | description: str = Field(description="Description of the insight") |
| | supporting_data: List[str] = Field(description="Data points that support this insight") |
| | importance_level: str = Field(description="Importance level (high, medium, low)") |
| |
|
| |
|
| | class DataCategory(BaseModel): |
| | """A category of organized data.""" |
| | category_name: str = Field(description="Name of the data category") |
| | data_points: Dict[str, str] = Field(description="Key-value pairs of data in this category") |
| | |
| | class ArrangedData(BaseModel): |
| | """Organized and analyzed data.""" |
| | organized_categories: List[DataCategory] = Field( |
| | description="Data organized into logical categories" |
| | ) |
| | insights: List[DataInsight] = Field(description="Insights generated from the data") |
| | summary: str = Field(description="Summary of the arranged data") |
| | arrangement_notes: str = Field(description="Notes about the arrangement process") |
| |
|
| |
|
| | class CodeGenerationResult(BaseModel): |
| | """Result of code generation and execution.""" |
| | generated_code: str = Field(description="The generated Python code") |
| | execution_result: str = Field(description="Result of code execution") |
| | output_files: List[str] = Field(description="List of output files created") |
| | execution_success: bool = Field(description="Whether code execution was successful") |
| | error_messages: List[str] = Field(default_factory=list, description="Any error messages encountered") |
| |
|
| |
|
| | class DocumentAnalysisResult(BaseModel): |
| | """Complete result of document analysis team workflow.""" |
| | document_type: str = Field(description="Type of document analyzed") |
| | analysis_objective: str = Field(description="Original analysis objective") |
| | processing_summary: str = Field(description="Summary of the entire processing workflow") |
| | |
| | |
| | planning_notes: str = Field(description="Notes from the planning stage") |
| | prompts_created: str = Field(description="Summary of prompts and schemas created") |
| | data_extracted: str = Field(description="Summary of data extraction results") |
| | data_arranged: str = Field(description="Summary of data arrangement and insights") |
| | code_generated: str = Field(description="Summary of code generation and execution") |
| | |
| | |
| | key_findings: List[str] = Field(description="Key findings from the analysis") |
| | output_files_created: List[str] = Field(description="List of output files created") |
| | success: bool = Field(description="Whether the analysis completed successfully") |
| | recommendations: List[str] = Field(default_factory=list, description="Recommendations based on analysis") |
| |
|
| |
|
| | class ExtractionField(BaseModel): |
| | """Individual field specification for data extraction.""" |
| | field_name: str = Field(description="Name of the field to extract") |
| | field_type: str = Field(description="Type of data (text, number, date, etc.)") |
| | description: str = Field(description="Description of what this field represents") |
| | required: bool = Field(default=True, description="Whether this field is required") |
| |
|
| | class AgentPrompt(BaseModel): |
| | """Prompt configuration for a specific agent.""" |
| | agent_name: str = Field(description="Name of the agent") |
| | specialized_instructions: List[str] = Field(description="Specialized instructions for this agent") |
| | input_requirements: List[str] = Field(description="What input this agent needs") |
| | output_requirements: List[str] = Field(description="What output this agent should produce") |
| | success_criteria: List[str] = Field(description="Criteria for successful completion") |
| |
|
| | class PromptsAndSchemas(BaseModel): |
| | """Prompts and schemas for all agents in the workflow.""" |
| | |
| | extraction_prompt: str = Field(description="Optimized prompt for data extraction") |
| | extraction_fields: List[ExtractionField] = Field( |
| | description="List of fields to extract from the document" |
| | ) |
| | arrangement_rules: List[str] = Field(description="Rules for organizing extracted data") |
| | validation_criteria: List[str] = Field(description="Criteria for validating extracted data") |
| | |
| | |
| | agent_prompts: List[AgentPrompt] = Field(description="Specialized prompts for each agent") |
| | workflow_coordination: List[str] = Field(description="Instructions for coordinating between agents") |
| | quality_assurance: List[str] = Field(description="Quality assurance guidelines for all agents") |