any-agent-demo / config.py
github-actions[bot]
Sync with https://github.com/mozilla-ai/any-agent-demo
7e103cf
raw
history blame
1.19 kB
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