Spaces:
Running
Running
import yaml | |
from pathlib import Path | |
from fire import Fire | |
from loguru import logger | |
from surf_spot_finder.config import ( | |
Config, | |
) | |
from any_agent import load_agent, run_agent | |
from any_agent.tracing import get_tracer_provider, setup_tracing | |
def find_surf_spot( | |
config_file: str, | |
) -> str: | |
"""Find the best surf spot based on the given criteria. | |
Args: | |
config_file: Path to a YAML config file. | |
See [Config][surf_spot_finder.config.Config] | |
""" | |
logger.info(f"Loading {config_file}") | |
config = Config.model_validate(yaml.safe_load(Path(config_file).read_text())) | |
logger.info("Setting up tracing") | |
tracer_provider, tracing_path = get_tracer_provider(project_name="surf-spot-finder") | |
setup_tracing(tracer_provider, config.framework) | |
logger.info(f"Loading {config.framework} agent") | |
logger.info(f"{config.managed_agents}") | |
agent = load_agent( | |
framework=config.framework, | |
main_agent=config.main_agent, | |
managed_agents=config.managed_agents, | |
) | |
query = config.input_prompt_template.format( | |
LOCATION=config.location, | |
MAX_DRIVING_HOURS=config.max_driving_hours, | |
DATE=config.date, | |
) | |
logger.info(f"Running agent with query:\n{query}") | |
run_agent(agent, query) | |
logger.success("Done!") | |
return tracing_path | |
def main(): | |
Fire(find_surf_spot) | |
if __name__ == "__main__": | |
main() | |