Spaces:
Running
Running
| import os | |
| import tempfile | |
| from datetime import datetime, timedelta | |
| from typing import Annotated | |
| import geocoder | |
| from pydantic import AfterValidator, BaseModel, ConfigDict, FutureDatetime, PositiveInt | |
| from rich.prompt import Prompt | |
| from any_agent import AgentFramework | |
| from any_agent.config import AgentConfig | |
| from any_agent.logging import logger | |
| INPUT_PROMPT_TEMPLATE = """ | |
| According to the forecast, what will be the best spot to surf around {LOCATION}, | |
| in a {MAX_DRIVING_HOURS} hour driving radius, | |
| at {DATE}?" | |
| """.strip() | |
| def validate_prompt(value) -> str: | |
| for placeholder in ("{LOCATION}", "{MAX_DRIVING_HOURS}", "{DATE}"): | |
| if placeholder not in value: | |
| raise ValueError(f"prompt must contain {placeholder}") | |
| return value | |
| class Config(BaseModel): | |
| model_config = ConfigDict(extra="forbid") | |
| location: str | |
| max_driving_hours: PositiveInt | |
| date: FutureDatetime | |
| input_prompt_template: Annotated[str, AfterValidator(validate_prompt)] = ( | |
| INPUT_PROMPT_TEMPLATE | |
| ) | |
| framework: AgentFramework | |
| main_agent: AgentConfig | |
| evaluation_model: str | None = None | |
| evaluation_criteria: list[dict[str, str]] | None = None | |