49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
import asyncio
|
||
import time
|
||
|
||
from app.agent.data_analysis import DataAnalysis
|
||
from app.agent.manus import Manus
|
||
from app.flow.base import FlowType
|
||
from app.flow.flow_factory import FlowFactory
|
||
from app.logger import logger
|
||
|
||
|
||
async def run_flow():
|
||
agents = {
|
||
# "manus": Manus(),
|
||
"visactor": DataAnalysis(),
|
||
}
|
||
|
||
try:
|
||
prompt = """Here's last month's sales data from my Amazon store in './data/amazon_sales_jan2025.xlsx'. Could you analyze it?"""
|
||
|
||
flow = FlowFactory.create_flow(
|
||
flow_type=FlowType.PLANNING,
|
||
agents=agents,
|
||
)
|
||
logger.warning("Processing your request...")
|
||
|
||
try:
|
||
start_time = time.time()
|
||
result = await asyncio.wait_for(
|
||
flow.execute(prompt),
|
||
timeout=3600, # 60 minute timeout for the entire execution
|
||
)
|
||
elapsed_time = time.time() - start_time
|
||
logger.info(f"Request processed in {elapsed_time:.2f} seconds")
|
||
logger.info(result)
|
||
except asyncio.TimeoutError:
|
||
logger.error("Request processing timed out after 1 hour")
|
||
logger.info(
|
||
"Operation terminated due to timeout. Please try a simpler request."
|
||
)
|
||
|
||
except KeyboardInterrupt:
|
||
logger.info("Operation cancelled by user.")
|
||
except Exception as e:
|
||
logger.error(f"Error: {str(e)}")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
asyncio.run(run_flow())
|