|
- from magentic_one_helper import MagenticOneHelper
- import asyncio
- import json
- import argparse
- import os
-
-
- async def main(task, logs_dir):
- magnetic_one = MagenticOneHelper(logs_dir=logs_dir)
- await magnetic_one.initialize()
- print("MagenticOne initialized.")
-
- # Create task and log streaming tasks
- task_future = asyncio.create_task(magnetic_one.run_task(task))
- final_answer = None
-
- # Stream and process logs
- async for log_entry in magnetic_one.stream_logs():
- print(json.dumps(log_entry, indent=2))
-
- # Wait for task to complete
- await task_future
-
- # Get the final answer
- final_answer = magnetic_one.get_final_answer()
-
- if final_answer is not None:
- print(f"Final answer: {final_answer}")
- else:
- print("No final answer found in logs.")
-
-
- if __name__ == "__main__":
- parser = argparse.ArgumentParser(description="Run a task with MagenticOneHelper.")
- parser.add_argument("task", type=str, help="The task to run")
- parser.add_argument("--logs_dir", type=str, default="./logs", help="Directory to store logs")
- args = parser.parse_args()
- if not os.path.exists(args.logs_dir):
- os.makedirs(args.logs_dir)
- asyncio.run(main(args.task, args.logs_dir))
|