Spaces:
Sleeping
Sleeping
| from typing import Iterator, List, Optional | |
| from enum import Enum | |
| from pydantic import BaseModel, Field | |
| class InputModel(BaseModel): | |
| problem_statement: str = Field( | |
| default=None, | |
| description="Contains the description of the problem statement or task" | |
| ) | |
| class MLTaskType(str, Enum): | |
| CLASSIFICATION = "classification" | |
| REGRESSION = "regression" | |
| CLUSTERING = "clustering" | |
| NLP = "natural_language_processing" | |
| COMPUTER_VISION = "computer_vision" | |
| TIME_SERIES = "time_series" | |
| ANOMALY_DETECTION = "anomaly_detection" | |
| RECOMMENDATION = "recommendation" | |
| OTHER = "other" | |
| class ModelResponseStatus(BaseModel): | |
| """Technical specification for ML implementation""" | |
| data_source: str = Field( | |
| # default="...", | |
| description="Required data sources and their characteristics" | |
| ) | |
| data_format: str = Field( | |
| # default="...", | |
| description="Expected format of input data" | |
| ) | |
| additional_data_requirement: bool = Field( | |
| # default=False, | |
| description="Whether additional data is needed" | |
| ) | |
| constraints: str = Field( | |
| # default="...", | |
| description="Business and technical constraints" | |
| ) | |
| task: MLTaskType = Field( | |
| # default=MLTaskType.OTHER, | |
| description="Type of ML task" | |
| ) | |
| models: List[str] = Field( | |
| # default=["..."], | |
| description="Suggested ML models" | |
| ) | |
| hyperparameters: List[str] = Field( | |
| # default=["..."], | |
| description="Key hyperparameters to consider" | |
| ) | |
| eval_metrics: List[str] = Field( | |
| # default=["..."], | |
| description="Evaluation metrics for the solution" | |
| ) | |
| technical_requirements: str = Field( | |
| # default="...", | |
| description="Technical implementation requirements" | |
| ) | |
| class RequirementsAnalysis(BaseModel): | |
| """Initial analysis of business requirements""" | |
| model_response: ModelResponseStatus | |
| unclear_points: List[str] = Field( | |
| default_factory=list, | |
| description="Points needing clarification" | |
| ) | |
| search_queries: List[str] = Field( | |
| default_factory=list, | |
| description="Topics to research" | |
| ) | |
| business_understanding: str = Field( | |
| description="Summary of business problem understanding" | |
| ) | |
| class TechnicalResearch(BaseModel): | |
| """Results from technical research""" | |
| model_response: ModelResponseStatus | |
| research_findings: str = Field( | |
| description="Key findings from research" | |
| ) | |
| reference_implementations: List[str] = Field( | |
| default_factory=list, | |
| description="Similar implementation examples found" | |
| ) | |
| sources: List[str] = Field( | |
| default_factory=list, | |
| description="Sources of information" | |
| ) | |
| # Implementation Planning Models | |
| class ComponentType(str, Enum): | |
| DATA_PIPELINE = "data_pipeline" | |
| PREPROCESSOR = "preprocessor" | |
| MODEL = "model" | |
| EVALUATOR = "evaluator" | |
| INFERENCE = "inference" | |
| MONITORING = "monitoring" | |
| UTILITY = "utility" | |
| class ParameterSpec(BaseModel): | |
| """Specification for a single parameter""" | |
| name: str = Field(description="Name of the parameter") | |
| param_type: str = Field(description="Type of the parameter") | |
| description: str = Field(description="Description of the parameter") | |
| default_value: str = Field(description="Default value if any") | |
| required: bool = Field(description="Whether the parameter is required") | |
| class ConfigParam(BaseModel): | |
| """Specification for a configuration parameter""" | |
| name: str = Field(description="Name of the configuration parameter") | |
| value_type: str = Field(description="Type of value expected") | |
| description: str = Field(description="Description of the configuration parameter") | |
| default: str = Field(description="Default value if any") | |
| class FunctionSpec(BaseModel): | |
| """Detailed specification for a single function""" | |
| name: str = Field(description="Name of the function") | |
| description: str = Field(description="Detailed description of function's purpose") | |
| input_params: List[ParameterSpec] = Field( | |
| description="List of input parameters and their specifications" | |
| ) | |
| return_type: str = Field(description="Return type and description") | |
| dependencies: List[str] = Field( | |
| description="Required dependencies/imports" | |
| ) | |
| error_handling: List[str] = Field( | |
| description="Expected errors and handling strategies" | |
| ) | |
| class ComponentSpec(BaseModel): | |
| """Specification for a component (module) of the system""" | |
| name: str = Field(description="Name of the component") | |
| type: ComponentType = Field(description="Type of component") | |
| description: str = Field(description="Detailed description of component's purpose") | |
| functions: List[FunctionSpec] = Field(description="Functions within this component") | |
| dependencies: List[str] = Field( | |
| description="External package dependencies" | |
| ) | |
| config_params: List[ConfigParam] = Field( | |
| description="Configuration parameters needed" | |
| ) | |
| class ImplementationPlan(BaseModel): | |
| """Complete implementation plan for the ML system""" | |
| components: List[ComponentSpec] = Field(description="System components") | |
| system_requirements: List[str] = Field( | |
| description="System-level requirements and dependencies" | |
| ) | |
| deployment_notes: str = Field( | |
| description="Notes on deployment and infrastructure" | |
| ) | |
| testing_strategy: str = Field( | |
| description="Strategy for testing components" | |
| ) | |
| implementation_order: List[str] = Field( | |
| description="Suggested order of implementation" | |
| ) | |